@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap";:root{color:#25302b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f7f8f5;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}#root{min-height:100vh}.login-container{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);justify-content:center;align-items:center;min-height:100vh;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex}.login-card{background:#fff;border-radius:12px;width:100%;max-width:400px;padding:40px;animation:.3s ease-out slideUp;box-shadow:0 20px 60px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:30px}.login-header .lock-icon{color:#667eea;margin-bottom:15px}.login-header h1{color:#333;margin:0;font-size:28px;font-weight:600}.login-form{flex-direction:column;display:flex}.form-group{margin-bottom:20px}.form-group label{color:#555;margin-bottom:8px;font-size:14px;font-weight:500;display:block}.form-group input{box-sizing:border-box;border:2px solid #e0e0e0;border-radius:8px;width:100%;padding:12px 15px;font-size:14px;transition:border-color .3s}.form-group input:focus{border-color:#667eea;outline:none;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{cursor:not-allowed;background-color:#f5f5f5}.error-message{color:#c33;background-color:#fee;border-left:4px solid #f44;border-radius:6px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 15px;font-size:14px;animation:.3s ease-in-out shake;display:flex}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.success-message{color:#3a3;background-color:#efe;border-left:4px solid #4f4;border-radius:6px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 15px;font-size:14px;display:flex}.success-message svg{color:#4f4}.login-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:8px;margin-top:10px;padding:12px 20px;font-size:16px;font-weight:600;transition:transform .2s,box-shadow .2s}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.7;cursor:not-allowed}:root{--ink:#25302b;--muted:#8a8d95;--line:#e0e5ef;--green:#3d6afe}.app-shell{background:#f7f8f5;height:100vh;overflow:hidden}.topbar{border-bottom:1px solid var(--line);background:#ffffffbf;justify-content:space-between;align-items:center;height:80px;padding:0 4vw;display:flex}.menu-toggle{color:var(--green);background:0 0;border:0;place-items:center;padding:7px;display:grid}.brand{color:var(--ink);align-items:center;gap:9px;font-family:Playfair Display,serif;font-size:1.55rem;display:flex}.brand small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-self:flex-end;margin:0 0 3px 2px;font-family:DM Mono,monospace;font-size:.55rem}.brand-mark{color:#fff;background:var(--green);border-radius:9px 9px 9px 2px;place-items:center;width:29px;height:29px;font-family:Playfair Display,serif;font-size:1.25rem;display:grid}.top-actions{align-items:center;gap:22px;display:flex}.saved{color:var(--muted);align-items:center;font-size:.76rem;display:inline-flex}.saved.status-error{color:#ef4444}.saved.status-saving{color:#d97706}.saved-dot{background:#10b981;border-radius:50%;width:6px;height:6px;margin-right:7px;transition:background .3s;display:inline-block}.saved-dot.status-saving{background:#f59e0b;animation:1.2s ease-in-out infinite syncPulse}.saved-dot.status-error{background:#ef4444}.saved-dot.status-saved{background:#10b981}@keyframes syncPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}.avatar{width:33px;height:33px;color:var(--green);cursor:pointer;background:#eef2ff;border:1px solid #dbe4f4;border-radius:50%;font-size:.68rem;font-weight:700;transition:all .2s}.avatar:hover{border-color:var(--green);transform:scale(1.05)}.profile-menu-wrapper{position:relative}.profile-menu{z-index:1000;background:#fff;border-radius:12px;min-width:180px;animation:.15s ease-out fadeIn;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 10px 40px #00000026}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.profile-menu-item{width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:12px 16px;font-size:.85rem;transition:background .15s;display:flex}.profile-menu-item:hover{background:#f5f5f5}.profile-menu-item:first-child{border-radius:12px 12px 0 0}.profile-menu-item:last-child{border-radius:0 0 12px 12px}.profile-menu-divider{background:var(--line);height:1px;margin:4px 0}.toggle-item{justify-content:space-between;align-items:center;width:100%;display:flex}.toggle-switch{width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:#d1d5db;border-radius:24px;transition:all .3s;position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background-color:var(--green)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.logout-item{color:#ef4444;align-items:center;gap:10px;display:flex}.logout-item:hover{background:#fef2f2}.workspace{grid-template-columns:290px 290px minmax(0,1fr);height:calc(100vh - 80px);min-height:0;display:grid;overflow:hidden}.course-rail,.module-rail{border-right:1px solid var(--line);scrollbar-width:thin;min-height:0;padding:39px 27px;overflow-y:auto}.course-rail{background:#fff}.module-rail{background:#f7f8f5}.rail-heading{justify-content:space-between;align-items:flex-end;margin-bottom:26px;display:flex}h1,h2,p{margin:0}h1,h2{font-family:Playfair Display,serif;font-weight:500}h1{margin-top:4px;font-size:2rem}.kicker,.module-label{color:var(--muted);letter-spacing:.11em;text-transform:uppercase;font-family:DM Mono,monospace;font-size:.62rem}.add-button{width:30px;height:30px;color:var(--green);background:#eef2ff;border:1px solid #d8e2f4;border-radius:9px;font-size:1.3rem;line-height:1}.sidebar-actions,.module-nav-actions{align-items:center;gap:5px;display:flex}.sidebar-toggle{width:30px;height:30px;color:var(--muted);background:0 0;border:1px solid #d8e2f4;border-radius:9px;place-items:center;display:grid}.sidebar-toggle:hover{color:var(--green);background:#eef2ff}.search{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:9px;padding:0 2px 11px;display:flex}.search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:.78rem}.search input::placeholder{color:#b5bdb6}.course-list{gap:5px;margin-top:20px;display:grid}.course-row{border-radius:12px}.course-row.selected{box-shadow:inset 3px 0 var(--green);background:#eef2ff}.course-card{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:11px;padding:11px 9px;display:flex}.course-card:hover{background:#eef2ff}.course-icon{color:#fff;border-radius:10px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-family:Playfair Display,serif;font-size:1.15rem;display:grid}.course-icon.mint{background:#4d7eff}.course-icon.sun{background:#d99d4e}.course-icon.lavender{background:#9b8db0}.course-icon.large{width:42px;height:42px;margin-bottom:19px;font-size:1.3rem}.course-copy{gap:3px;min-width:0;display:grid}.course-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.course-copy small,.module-item small{color:var(--muted);font-size:.67rem}.chevron{color:#bec8c0;margin-left:auto;font-size:1.2rem}.course-home-card{min-height:0;color:var(--ink);text-align:left;background:#fff;border:2px solid #fff;border-radius:22px;flex-direction:column;align-items:stretch;gap:0;padding:0;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;overflow:hidden;box-shadow:0 4px 20px #3d5aa01a,0 0 0 1px #3d5aa00f}.course-home-card:hover{background:#fff;border-color:#dce4f8;transform:translateY(-3px);box-shadow:0 16px 34px #3d5aa024,0 0 0 1px #3d5aa014}.course-card-hero{background:linear-gradient(#e9f0ff 0%,#fff 100%);place-items:center;height:168px;padding:18px 16px 8px;display:grid;position:relative}.course-card-hero.phone{background:linear-gradient(#dce6ff 0%,#fff 100%)}.course-card-hero.code{background:linear-gradient(#e6e9f0 0%,#fff 100%)}.course-card-badge{color:#3d6afe;align-items:center;gap:6px;font-size:.72rem;font-weight:600;display:inline-flex;position:absolute;top:14px;left:14px}.course-card-quick-edit{z-index:3;color:#55627a;cursor:pointer;background:#ffffffe6;border:1px solid #3d5aa02e;border-radius:7px;place-items:center;width:26px;height:26px;transition:all .15s;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 2px 5px #3d5aa014}.course-card-quick-edit:hover{color:#fff;background:#3d6afe;border-color:#3d6afe;transform:scale(1.08)}.course-art-svg{width:148px;height:118px}.course-card-body{flex-direction:column;flex:1;gap:8px;min-width:0;padding:4px 20px 20px;display:flex}.course-home-card strong{font-family:DM Sans,sans-serif;font-size:1.12rem;font-weight:700;line-height:1.25}.course-card-tags{color:#8b93a7;font-size:.78rem}.course-card-meta{color:#5d6578;align-items:center;gap:16px;margin-top:6px;font-size:.78rem;font-weight:600;display:flex}.course-card-meta span{align-items:center;gap:6px;display:inline-flex}.course-card-meta svg{color:#3d6afe}.course-card-cta{color:#3d6afe;border:1.5px solid #3d6afe;border-radius:14px;justify-content:space-between;align-items:center;margin-top:auto;padding:13px 18px;font-size:.85rem;font-weight:600;transition:background .18s,color .18s;display:flex}.course-home-card:hover .course-card-cta{color:#fff;background:#3d6afe}.course-rail .course-icon{display:grid!important}.row-actions,.course-management,.module-actions{gap:5px;display:flex}.row-actions{padding:0 9px 8px 54px}.row-actions button,.course-management button,.module-actions button{color:var(--muted);background:0 0;border:0;padding:3px 5px;font-size:.62rem}.row-actions button:hover,.course-management button:hover,.module-actions button:hover{color:var(--green)}.course-management{margin-top:15px}.rail-footer{margin-top:100px}.progress-label{color:var(--muted);justify-content:space-between;margin-bottom:9px;font-size:.67rem;display:flex}.progress-label b{color:var(--green);font-weight:500}.library-progress{background:#edf0eb;border-radius:8px;height:5px;overflow:hidden}.library-progress span{background:var(--green);border-radius:8px;width:34%;height:100%;display:block}.rail-footer p{color:#a1aaa3;margin-top:14px;font-size:.69rem;line-height:1.5}.module-rail{position:relative}.module-sidebar-toggle{z-index:3;position:absolute;top:20px;right:12px}.module-intro{border-bottom:1px solid var(--line);padding-bottom:31px}.module-intro h2{margin:7px 0 8px;font-size:1.3rem;line-height:1.15}.module-intro p{color:var(--muted);font-size:.72rem;line-height:1.55}.module-label{justify-content:space-between;margin:27px 3px 10px;display:flex}.module-label span{color:var(--green)}.module-list{gap:3px;display:grid}.module-item{border-radius:10px}.module-item:hover,.module-item.active{background:#eef2ff}.module-select{width:100%;color:var(--ink);text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:27px 1fr auto;align-items:start;gap:9px;padding:12px 8px 5px;display:grid}.module-number{color:#a7b2aa;align-items:center;font-family:DM Mono,monospace;font-size:.65rem;display:flex}.module-select span:nth-child(2){gap:4px;display:grid}.module-select strong{font-size:.74rem;font-weight:600}.module-done{color:var(--green);font-size:.8rem}.module-actions{padding:0 8px 7px 44px}.new-module,.new-submodule{width:100%;color:var(--green);background:0 0;border:1px dashed #c9d4ed;border-radius:9px;margin-top:20px;padding:10px;font-size:.7rem}.new-submodule{background:#fff;border-style:solid;margin-top:7px}.submodule-list{border-left:1px solid #c9d4ed;gap:2px;margin:3px 8px 8px 36px;padding-left:10px;display:grid}.submodule-row{border-radius:7px;align-items:center;gap:4px;display:flex}.submodule-row.selected{background:#e5ebfe}.submodule-select{color:#66746b;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;flex:1;min-width:0;padding:7px 6px;font-size:.68rem;overflow:hidden}.submodule-actions{gap:2px;padding-right:5px;display:flex}.submodule-actions button{color:var(--muted);background:0 0;border:0;padding:2px;font-size:.58rem}.back-to-courses{color:var(--green);background:0 0;border:0;align-items:center;gap:5px;margin:0 0 17px;padding:0;font-size:.7rem;display:flex}.nav-courses .module-rail,.nav-courses .course-rail,.nav-modules .course-rail,.nav-none .course-rail,.nav-none .module-rail{display:none}.nav-courses .workspace{grid-template-columns:minmax(0,1fr)}.nav-modules .workspace{grid-template-columns:300px minmax(0,1fr)}.nav-none .workspace{grid-template-columns:minmax(0,1fr)}.nav-modules .module-rail{grid-column:1}.nav-modules .notes-pane{grid-column:2}.notes-pane{scrollbar-width:thin;background:#fff;width:100%;min-width:0;max-width:none;min-height:0;padding:56px clamp(16px,5vw,92px);position:relative;overflow:hidden auto}.nav-reopen{z-index:4;border:1px solid var(--line);width:34px;height:34px;color:var(--green);cursor:pointer;background:#eef2ff;border-radius:8px;place-items:center;transition:background .15s,transform .15s;display:grid;position:absolute;top:24px;left:24px;box-shadow:0 2px 8px #25302b0f}.nav-reopen:hover{background:#e3eaff;transform:scale(1.04)}.nav-courses .notes-pane>:not(.course-home){display:none}.nav-courses .notes-pane{background:linear-gradient(#f4f7ff 0%,#f7f8f5 42%);justify-content:center;width:100%;max-width:none;min-height:calc(100vh - 80px);display:flex}.course-home{width:min(100%,1180px);margin:auto;padding:36px 0 60px}.course-home-topbar{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;padding-bottom:18px;display:flex}.course-home h2{color:var(--ink);margin:6px 0;font-size:2.2rem}.course-home>p,.course-home-topbar p{color:var(--muted);margin:0;font-size:.88rem}.course-home-top-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.home-add-category-btn{color:#3d6afe;cursor:pointer;background:#fff;border:1px solid #c8d7f9;border-radius:9px;align-items:center;gap:7px;padding:10px 15px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 2px 6px #3d5aa00f}.home-add-category-btn:hover{background:#eef2ff;border-color:#3d6afe;transform:translateY(-1px)}.home-add-course{color:#fff;background:var(--green);cursor:pointer;border:0;border-radius:9px;align-items:center;gap:7px;padding:10px 16px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex;box-shadow:0 4px 12px #3d6afe40}.home-add-course:hover{background:#2f55d9;transform:translateY(-1px);box-shadow:0 6px 16px #3d6afe52}.category-nav-bar{justify-content:space-between;align-items:center;gap:16px;width:100%;margin:10px 0 30px;display:flex}.category-pills-scroll{scrollbar-width:none;-ms-overflow-style:none;flex:1;align-items:center;gap:10px;min-width:0;padding:6px 2px;display:flex;overflow-x:auto}.category-pills-scroll::-webkit-scrollbar{display:none}.category-nav-pill{color:#475569;white-space:nowrap;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:999px;flex-shrink:0;align-items:center;gap:7px;padding:8px 18px;font-family:DM Sans,sans-serif;font-size:.84rem;font-weight:600;transition:all .18s;display:inline-flex;box-shadow:0 2px 5px #00000008}.category-nav-pill:hover{color:#1e293b;background:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px)}.category-nav-pill.active{color:#fff;background:#0052ff;border-color:#0052ff;box-shadow:0 4px 14px #0052ff59}.category-nav-pill svg{flex-shrink:0}.category-nav-search{background:#fff;border:1.5px solid #e2e8f0;border-radius:999px;flex-shrink:0;align-items:center;min-width:220px;max-width:260px;padding:3px 4px 3px 16px;transition:border-color .15s,box-shadow .15s;display:inline-flex;box-shadow:0 2px 5px #00000008}.category-nav-search:focus-within{border-color:#0052ff;box-shadow:0 0 0 3px #0052ff1f}.category-nav-search input{color:#1e293b;background:0 0;border:0;outline:none;width:100%;min-width:0;font-family:DM Sans,sans-serif;font-size:.84rem}.category-nav-search input::placeholder{color:#94a3b8}.category-search-clear{color:#94a3b8;cursor:pointer;background:#f1f5f9;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;margin-right:4px;transition:all .15s;display:grid}.category-search-clear:hover{color:#0f172a;background:#e2e8f0}.category-search-btn{color:#fff;cursor:pointer;background:#0f172a;border:0;border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;margin-left:2px;transition:background .15s;display:grid}.category-search-btn:hover{background:#1e293b}.search-empty-state{text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;margin:20px 0;padding:50px 20px;display:flex}.empty-search-icon{color:#64748b;background:#f1f5f9;border-radius:50%;place-items:center;width:60px;height:60px;margin-bottom:16px;display:grid}.search-empty-state h3{color:#1e293b;margin:0 0 8px;font-family:DM Sans,sans-serif;font-size:1.25rem;font-weight:700}.search-empty-state p{color:#64748b;max-width:440px;margin:0 0 20px;font-size:.88rem}.clear-search-btn{color:#fff;cursor:pointer;background:#0052ff;border:0;border-radius:9px;padding:10px 20px;font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:600;transition:background .15s,transform .15s}.clear-search-btn:hover{background:#0043d9;transform:translateY(-1px)}.course-categories-container{flex-direction:column;gap:36px;margin-top:20px;display:flex}.category-section{width:100%;min-width:0}.category-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.category-title-wrap{align-items:center;gap:10px;display:flex}.category-marker{background:#3d6afe;border-radius:4px;width:4px;height:20px}.category-title{color:#1b253a;letter-spacing:-.01em;margin:0;font-family:DM Sans,sans-serif;font-size:1.35rem;font-weight:700}.category-pill{color:#526388;background:#eef2ff;border-radius:999px;padding:3px 10px;font-family:DM Sans,sans-serif;font-size:.72rem;font-weight:600}.category-controls{align-items:center;gap:7px;display:flex}.category-btn{color:#3d6afe;cursor:pointer;background:#fff;border:1px solid #dce4f8;border-radius:8px;align-items:center;gap:5px;padding:6px 11px;font-size:.74rem;font-weight:600;transition:all .15s;display:inline-flex}.category-btn:hover{background:#eef2ff;border-color:#3d6afe}.category-btn-icon{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;place-items:center;width:30px;height:30px;transition:all .15s;display:grid}.category-btn-icon:hover{color:#1e293b;background:#f1f5f9;border-color:#cbd5e1}.category-btn-icon.delete:hover{color:#ef4444;background:#fef2f2;border-color:#fecaca}.category-scroll-arrows{align-items:center;gap:4px;margin-left:6px;display:flex}.scroll-arrow-btn{color:#3d6afe;cursor:pointer;background:#fff;border:1px solid #dce4f8;border-radius:50%;place-items:center;width:32px;height:32px;transition:all .15s;display:grid;box-shadow:0 2px 6px #3d5aa00f}.scroll-arrow-btn:hover{color:#fff;background:#3d6afe;box-shadow:0 4px 12px #3d5aa038}.category-carousel{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#dce4f8 transparent;gap:20px;padding:6px 4px 20px;display:flex;overflow-x:auto}.category-carousel::-webkit-scrollbar{height:6px}.category-carousel::-webkit-scrollbar-track{background:0 0}.category-carousel::-webkit-scrollbar-thumb{background:#dce4f8;border-radius:6px}.category-carousel .course-home-card{flex:0 0 280px;width:280px;min-width:280px;max-width:280px}.category-empty-card{text-align:center;color:#64748b;cursor:pointer;background:#fff9;border:2px dashed #cbd5e1;border-radius:20px;flex-direction:column;flex:0 0 260px;justify-content:center;align-items:center;width:260px;min-width:260px;height:220px;padding:20px;transition:all .2s;display:flex}.category-empty-card:hover{color:#3d6afe;background:#f8faff;border-color:#3d6afe;transform:translateY(-2px)}.empty-icon-circle{color:#3d6afe;background:#eef2ff;border-radius:50%;place-items:center;width:42px;height:42px;margin-bottom:10px;display:grid}.category-empty-card strong{color:#1e293b;margin-bottom:4px;font-size:.88rem}.category-empty-card p{color:#64748b;margin:0;font-size:.72rem}.download-courses{border:1px solid var(--line);color:var(--green);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:7px;margin-top:38px;padding:10px 14px;font-size:.75rem;font-weight:600;display:inline-flex}.download-courses:hover{background:#eef2ff;border-color:#b8c9f0}.course-cover{object-fit:cover;background:#1e2f5c;border-radius:10px;flex:0 0 54px;width:54px;height:54px}.course-cover-sidebar{object-fit:contain;background:#eef2ff;border-radius:12px;width:100%;height:78px;margin:0 0 17px}.course-home-card .course-cover{transition:transform .25s,box-shadow .25s}.course-home-card:hover .course-cover{transform:translateY(-3px)rotate(-2deg);box-shadow:0 8px 18px #3d6afe29}.course-home-card{animation:.45s both card-enter}.course-home-card:nth-child(2){animation-delay:70ms}.course-home-card:nth-child(3){animation-delay:.14s}.course-home-card:nth-child(4){animation-delay:.21s}.module-item{animation:.35s both row-enter}.module-item:nth-child(2){animation-delay:60ms}.module-item:nth-child(3){animation-delay:.12s}.module-item:nth-child(4){animation-delay:.18s}.submodule-list{transform-origin:top;animation:.24s both expand-in}.modal-backdrop{animation:.2s both fade-in}.course-form{animation:.25s both modal-rise}@keyframes card-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes row-enter{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}@keyframes expand-in{0%{opacity:0;transform:scaleY(.85)}to{opacity:1;transform:scaleY(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:none}}.nav-modules .module-rail{animation:.28s both sidebar-enter}.nav-courses .course-home{animation:.35s both home-enter}@keyframes sidebar-enter{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:none}}@keyframes home-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.mobile-nav-reopen{display:none}.topbar>.mobile-nav-reopen{flex:0 0 36px}.course-rail .course-icon:not(.large){display:none}.course-rail .course-card{gap:8px;padding:14px 7px}.course-rail .course-copy strong{font-size:.82rem;font-weight:600}.course-rail .course-copy small{margin-top:2px}.module-rail .module-item.active{box-shadow:inset 3px 0 var(--green);background:#e5ebfe}.module-rail .submodule-list{border-left:2px solid #b8c9f0;margin-left:28px;padding-left:17px;position:relative}.module-rail .submodule-row{min-height:42px;position:relative}.module-rail .submodule-select{padding:9px 6px;font-size:.72rem}.module-rail .submodule-row.selected .submodule-select{color:var(--ink);font-weight:600}.nav-modules .module-rail{color:#d7e0f2;background:#15233f;border-right:0;padding:18px 0 24px}.contents-header{justify-content:space-between;align-items:center;margin-bottom:18px;padding:6px 18px 14px;display:flex}.nav-modules .back-to-courses{color:#6ea8ff;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.nav-modules .sidebar-toggle{color:#9db4dc;background:0 0;border:0;width:32px;height:32px}.nav-modules .sidebar-toggle:hover{color:#fff;background:#ffffff14}.overview-row{color:#e8eefc;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:13px 18px;font-size:.88rem;font-weight:600;display:flex}.overview-row.active,.overview-row:hover{background:#ffffff0f}.nav-modules .module-list{gap:0}.nav-modules .module-item{border-radius:0;animation:none}.nav-modules .module-item:hover{background:0 0}.nav-modules .module-item.active{box-shadow:none;background:#2b5cb8}.nav-modules .module-select{color:#e8eefc;border-radius:0;grid-template-columns:none;justify-content:space-between;align-items:flex-start;gap:10px;padding:13px 18px;display:flex}.nav-modules .module-select strong{font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:700;line-height:1.35}.nav-modules .module-actions{padding:0 18px 8px}.nav-modules .module-actions button,.nav-modules .course-management button,.nav-modules .submodule-actions button{color:#c5d6f5}.nav-modules .module-actions button:hover,.nav-modules .course-management button:hover,.nav-modules .submodule-actions button:hover{color:#fff}.nav-modules .submodule-list{border-left:0;margin:0 0 8px;padding:0 12px 10px 28px}.nav-modules .submodule-row{min-height:0}.nav-modules .submodule-row.selected{background:0 0}.nav-modules .submodule-select{color:#d5def0;white-space:normal;text-overflow:unset;align-items:flex-start;gap:10px;padding:9px 6px;font-size:.8rem;display:flex}.nav-modules .submodule-row.selected .submodule-select{color:#fff;font-weight:600}.lesson-dot{background:0 0;border:2px solid #9db4dc;border-radius:50%;flex:0 0 12px;width:12px;height:12px;margin-top:4px}.nav-modules .submodule-row.selected .lesson-dot{background:#fff;border-color:#fff}.nav-modules .submodule-select span:nth-child(2){flex:1;min-width:0;line-height:1.35}.nav-modules .submodule-select svg{color:#c5d6f5;flex:none;margin-top:2px}.sidebar-create{margin-top:16px;padding:0 18px}.nav-modules .new-module,.nav-modules .new-submodule{color:#c5d6f5;background:0 0;border-color:#3b527a}.nav-modules .new-submodule{background:#ffffff0a}.notes-toolbar{border-bottom:0;justify-content:space-between;align-items:flex-start;gap:16px;width:min(100%,860px);margin:0 auto;padding-bottom:8px;display:flex}.notes-toolbar>div:first-child{flex:1;min-width:0}.notes-toolbar h2{color:#1b2437;overflow-wrap:anywhere;margin-top:0;font-family:DM Sans,sans-serif;font-size:clamp(1.35rem,3.4vw,2rem);font-weight:700;line-height:1.25}.ghost-button,.more-button{color:#3d6afe;white-space:nowrap;background:#fff;border:1px solid #d7deea;border-radius:8px;flex:none;padding:8px 12px;font-size:.7rem}.markdown-content{overflow-wrap:anywhere;color:#5a6578;letter-spacing:.01em;width:min(100%,860px);min-width:0;max-width:100%;margin:0 auto;padding:6px 0 88px;font-size:clamp(.95rem,.4vw + .92rem,1.05rem);line-height:1.78}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{color:#152033;letter-spacing:-.02em;overflow-wrap:anywhere;font-family:DM Sans,sans-serif;font-weight:700;line-height:1.25}.markdown-content h1{margin:0 0 22px;font-size:clamp(1.45rem,2.6vw,2rem)}.notes-toolbar+.markdown-content>h1:first-child{display:none}.markdown-content h2{margin:42px 0 16px;font-size:clamp(1.28rem,2.2vw,1.7rem)}.markdown-content h3{margin:32px 0 12px;font-size:clamp(1.08rem,1.6vw,1.28rem)}.markdown-content h4{margin:22px 0 8px;font-size:1.02rem}.markdown-content p{margin:0 0 18px}.markdown-content p+p{margin-top:2px}.md-figure{max-width:100%;margin:12px 0 24px}.md-figure img,.markdown-content img{border-radius:14px;width:auto;max-width:100%;height:auto;margin:0 auto;display:block;box-shadow:0 10px 28px #25305014}.md-figure figcaption{color:#8a93a6;text-align:center;margin-top:8px;font-size:.78rem}.markdown-content iframe,.markdown-content video{aspect-ratio:16/9;border:0;border-radius:14px;width:100%;max-width:100%;height:auto;margin:12px 0 24px;display:block}.markdown-content strong{color:#152033;font-weight:700}.markdown-content em{color:#44516a}.markdown-content a{color:#3d6afe;overflow-wrap:anywhere;border-bottom:1px solid #3d6afe47;font-weight:600;text-decoration:none}.markdown-content a:hover{border-bottom-color:#3d6afe}.md-rule{background:#e6ebf4;border:0;height:1px;margin:32px 0}.md-note{background:#eef2ff;border-radius:18px;min-width:0;margin:36px 0 32px;padding:36px 26px 16px;position:relative}.md-note-badge{color:#fff;background:#6d4aff;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-size:.88rem;font-weight:700;display:inline-flex;position:absolute;top:-16px;left:18px;box-shadow:0 8px 18px #6d4aff47}.md-note-body,.md-note-body p{color:#5b657c;margin:0 0 12px;font-size:1.02rem;line-height:1.7}.md-note-body p:last-child{margin-bottom:6px}.md-note blockquote{background:0 0;border:0;margin:0;padding:0}.md-note .code-block{margin:14px 0 8px}.md-quote{color:#5b6578;border:0;border-left:3px solid #c5cad6;margin:18px 0 24px;padding:2px 0 2px 16px;font-style:italic}.md-quote p{margin:0 0 10px}.md-quote p:last-child{margin-bottom:0}.md-prompt-block{min-width:0;margin:14px 0 22px}.md-prompt-label{color:#111827;margin:0 0 10px;font-size:1rem;font-weight:700;display:block}.md-prompt-box,.md-output-box,.markdown-content .md-prompt{color:#3d4658;overflow-wrap:anywhere;background:#ecebff;border-radius:12px;width:100%;min-width:0;padding:18px 22px;font-size:.95rem;line-height:1.65}.md-output-box{white-space:pre-wrap;background:#f3f5f9;font-family:DM Mono,monospace;font-size:.84rem}.md-prompt-box p,.md-output-box p,.markdown-content .md-prompt p{color:inherit;font:inherit;margin:0}.markdown-content ul,.markdown-content ol{margin:0 0 22px;padding-left:22px}.markdown-content ul{list-style:outside}.markdown-content li{color:#3d4658;margin:6px 0}.markdown-content li>p{margin:0 0 8px}.markdown-content input[type=checkbox]{accent-color:#3d6afe;margin-right:8px;transform:translateY(1px)}.markdown-content code{color:#4b3f8a;word-break:break-word;background:#eef2ff;border-radius:6px;padding:2px 6px;font-family:DM Mono,monospace;font-size:.78em}.markdown-content pre{color:#fff;-webkit-overflow-scrolling:touch;background:#1e1e1e;border-radius:12px;max-width:100%;margin:0;padding:18px;font-family:DM Mono,monospace;font-size:.8rem;line-height:1.65;overflow:auto}.markdown-content pre code{color:inherit;word-break:normal;background:0 0;padding:0}.code-block{background:#1e1e1e;border-radius:14px;min-width:0;max-width:100%;margin:20px 0;position:relative;overflow:hidden}.code-block-head{justify-content:space-between;align-items:center;gap:10px;padding:10px 12px 0;display:flex}.code-block-lang{color:#fff;letter-spacing:.08em;text-transform:uppercase;background:#3d6afe;border-radius:6px;align-items:center;padding:4px 10px;font-family:DM Mono,monospace;font-size:.62rem;font-weight:700;display:inline-flex}.code-block-copy{color:#ffffffdb;background:#ffffff1a;border:0;border-radius:8px;align-items:center;gap:6px;min-height:32px;padding:5px 10px;font-size:.7rem;font-weight:600;display:inline-flex}.code-block-copy:hover{background:#ffffff2e}.code-block-body{-webkit-overflow-scrolling:touch;overflow:auto hidden}.code-block-body pre{min-width:max-content;background:0 0!important;border-radius:0!important;margin:0!important}.code-block-body code{background:0 0!important;padding:0!important}.code-block-toggle{z-index:2;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#ffffff24;border:0;border-radius:8px;align-items:center;gap:5px;min-height:34px;padding:6px 14px;font-size:.7rem;font-weight:600;transition:background .15s;display:inline-flex;position:absolute;bottom:12px;right:14px}.code-block-toggle:hover{background:#ffffff3d}.code-block-toggle svg{transition:transform .18s}.code-block-toggle svg.flip{transform:rotate(180deg)}.code-block.is-long .code-block-body{max-height:min(340px,58vh);position:relative;overflow:hidden}.code-block.is-long:not(.expanded) .code-block-body:after{content:"";inset-inline:0;pointer-events:none;background:linear-gradient(#0000,#1e1e1e);height:72px;position:absolute;bottom:0}.code-block.is-long.expanded .code-block-body{max-height:min(70vh,720px);overflow:auto}.markdown-content details{background:0 0;border:0;min-width:0;margin:2px 0;overflow:visible}.markdown-content details[open]{border:0}.markdown-content details summary{color:#111827;cursor:pointer;-webkit-user-select:none;user-select:none;overflow-wrap:anywhere;background:0 0;align-items:flex-start;gap:8px;min-height:44px;padding:10px 0;font-size:1rem;font-weight:700;list-style:none;display:flex}.markdown-content details summary::-webkit-details-marker{display:none}.markdown-content details summary:before{content:"▸";color:#111827;flex:0 0 12px;width:12px;margin-top:3px;font-size:.78rem;transition:transform .18s;display:inline-block}.markdown-content details[open] summary:before{transform:rotate(90deg)}.markdown-content details summary:hover{color:#111827;background:0 0}.markdown-content details>:not(summary){min-width:0;padding:0 0 6px 22px}.markdown-content details>p:last-child{padding-bottom:8px}.markdown-content details .code-block,.markdown-content details .md-figure,.markdown-content details .md-table-wrap,.markdown-content details .md-note,.markdown-content details .md-prompt-block{margin-left:0}.md-table-wrap{-webkit-overflow-scrolling:touch;border:1px solid #e4e9f2;border-radius:14px;width:100%;max-width:100%;margin:8px 0 28px;overflow-x:auto}.markdown-content table{border-collapse:separate;border-spacing:0;width:100%;min-width:480px;margin:0;font-size:.86rem}.markdown-content th,.markdown-content td{text-align:left;white-space:nowrap;border-bottom:1px solid #e4e9f2;padding:12px 14px}.markdown-content td{white-space:normal}.markdown-content tr:last-child td{border-bottom:0}.markdown-content th{color:#152033;background:#f6f8fd;font-weight:700}.field-hint{color:var(--muted);font-size:.65rem;font-weight:500}.nav-none .notes-pane{justify-self:center;width:100%;max-width:1120px;margin:0 auto}.nav-none .mobile-nav-reopen{display:none}@media (width>=901px){.topbar>.mobile-nav-reopen{visibility:hidden;pointer-events:none;width:0;height:0;margin:0;padding:0;display:none!important}}@media (width<=900px){.topbar{justify-content:flex-start;gap:14px}.topbar>.mobile-nav-reopen{flex:0 0 36px;width:36px;height:36px;margin:0;padding:0;display:grid;position:static}.menu-open .topbar>.mobile-nav-reopen{display:none}.topbar .top-actions{margin-left:auto}}.notes-pane{scrollbar-width:thin;background:#fff;width:100%;min-width:0;max-width:none;min-height:0;padding:56px clamp(16px,5vw,92px);overflow:hidden auto}.note-actions{align-items:start;gap:7px;display:flex}.markdown-editor-wrap{width:min(100%,860px);margin:8px auto 0}.md-insert-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.md-insert-bar span{color:#8a93a6;letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:700}.md-insert-bar button{color:#334155;background:#fff;border:1px solid #d7deea;border-radius:999px;padding:6px 12px;font-size:.72rem;font-weight:600}.md-insert-bar button:hover{color:#3d6afe;background:#eef2ff;border-color:#3d6afe}.markdown-editor{border:1px solid var(--line);resize:vertical;color:#53605a;background:#fbfcfa;border-radius:10px;outline:0;width:100%;min-height:570px;margin-top:0;padding:20px;font-family:DM Mono,monospace;font-size:.8rem;line-height:1.7}.notes-footer{border-top:1px solid var(--line);color:#a1aaa3;justify-content:space-between;padding-top:16px;font-size:.67rem;display:flex}.shortcut{align-items:center;gap:5px;display:flex}kbd{border:1px solid var(--line);color:var(--muted);background:#fafbf9;border-radius:4px;padding:1px 5px;font-size:.6rem}.modal-backdrop{z-index:5;background:#25302b38;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.course-form{background:#fff;border-radius:16px;width:min(100%,430px);padding:32px;position:relative;box-shadow:0 20px 60px #25302b2e}.course-form h2{margin:7px 0 6px;font-size:1.8rem}.course-form p{color:var(--muted);margin-bottom:25px;font-size:.8rem}.course-form label{color:var(--ink);gap:7px;margin-top:16px;font-size:.72rem;font-weight:600;display:grid}.course-form input,.course-form textarea,.course-form select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fbfcfa;border-radius:8px;outline:0;padding:11px;font-family:inherit;font-size:.82rem}.course-form textarea{resize:vertical;min-height:75px}.module-form{width:min(100%,520px)}.module-notes-input{font-family:DM Mono,monospace;font-size:.75rem;line-height:1.55;min-height:190px!important}.create-button{color:#fff;background:var(--green);border:0;border-radius:8px;width:100%;margin-top:22px;padding:12px;font-weight:600}.close-modal{color:var(--muted);background:0 0;border:0;font-size:1.4rem;position:absolute;top:17px;right:19px}@media (width<=1050px){.workspace{grid-template-columns:240px 250px minmax(0,1fr)}.nav-modules .workspace{grid-template-columns:280px minmax(0,1fr)}.course-rail,.module-rail{padding:30px 18px}.nav-modules .module-rail{padding:18px 0 24px}.notes-pane{padding:42px 35px}}@media (width<=900px){.topbar{height:65px;padding:0 18px}.saved{display:none}.workspace{height:calc(100vh - 65px);min-height:0;display:block;overflow:hidden}.course-rail,.module-rail{z-index:10;border-right:1px solid var(--line);border-bottom:0;width:min(86vw,340px);padding:23px 18px;display:none;position:fixed;top:65px;bottom:0;overflow-y:auto;box-shadow:14px 0 35px #25302b24}.course-rail{left:0}.module-rail{background:#f7f8f5;padding-top:25px;left:0}.nav-modules .module-rail{background:#15233f;padding:18px 0 24px}.menu-open.nav-modules .module-rail{display:block}.menu-overlay{z-index:9;background:#25302b2e;border:0;position:fixed;inset:65px 0 0}.mobile-nav-reopen{border:1px solid var(--line);width:36px;height:36px;color:var(--green);background:#fff;border-radius:9px;flex:0 0 36px;place-items:center;display:grid;position:static;box-shadow:0 5px 16px #25302b1f}.menu-open .mobile-nav-reopen{display:none}.course-list{margin-top:15px;display:grid}.course-row,.course-card{min-width:0}.rail-footer{display:none}.module-intro{display:block}.module-label{margin-top:0}.module-list{display:grid;overflow:visible}.module-item{min-width:0}.new-module{margin-top:12px}.notes-pane{max-width:none;height:calc(100vh - 65px);padding:31px 20px;overflow-y:auto}.notes-toolbar{flex-direction:column;align-items:flex-start}.notes-toolbar h2{font-size:1.65rem}.markdown-content{max-width:none}.markdown-content h1{font-size:1.8rem}.notes-footer{flex-direction:column;gap:10px}.nav-courses .notes-pane{min-height:calc(100vh - 65px)}.course-home{padding:20px 0}.course-home-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.course-card-hero{height:132px}.course-art-svg{width:112px;height:90px}.course-card-body{padding:2px 14px 14px}.course-home-card strong{font-size:.92rem;line-height:1.25}.course-card-tags{font-size:.68rem}.course-card-cta{border-radius:11px;padding:10px 14px;font-size:.78rem}}@media (width<=560px){.course-home-grid{grid-template-columns:1fr!important}}@media (width<=768px){.category-nav-bar{flex-direction:column-reverse;align-items:stretch;gap:12px}.category-nav-search{width:100%;max-width:none}}.fetching-overlay{z-index:9999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172abf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.fetching-modal{text-align:center;background:#fff;border-radius:20px;flex-direction:column;align-items:center;gap:16px;max-width:380px;padding:36px 48px;display:flex;box-shadow:0 25px 50px -12px #00000040}.fetching-spinner{border:4px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:44px;height:44px;animation:.8s linear infinite fetching-spin}@keyframes fetching-spin{to{transform:rotate(360deg)}}.fetching-modal h3{color:#0f172a;letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:700}.fetching-modal p{color:#64748b;margin:0;font-size:.875rem;line-height:1.4}@media (width<=900px){.notes-toolbar{gap:10px;width:100%}.markdown-content,.markdown-editor-wrap{width:100%}.markdown-content{padding-bottom:56px}.md-note{margin:32px 0 24px;padding:32px 16px 12px}.md-note-badge{padding:6px 12px;font-size:.8rem;left:12px}.md-prompt-box,.md-output-box,.markdown-content .md-prompt{padding:14px;font-size:.9rem}.markdown-content details summary{font-size:.95rem}.markdown-content details>:not(summary){padding-left:8px}.code-block-body pre{font-size:.74rem!important}.code-block.is-long .code-block-body{max-height:min(280px,50vh)}.markdown-editor{min-height:min(62vh,460px)}}@media (width<=560px){.notes-pane{padding:22px 14px 28px}.notes-toolbar{flex-wrap:wrap}.md-insert-bar button{padding:7px 11px}.md-quote{padding-left:12px}.markdown-content ul,.markdown-content ol{padding-left:18px}.code-block-copy span,.code-block-copy{font-size:.65rem}.code-block-toggle{bottom:10px;right:10px}}
