:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f6f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}#root{min-height:100vh}:root{--bg:#f6f8fb;--surface:#fff;--surface-2:#f9fbfd;--ink:#17202a;--muted:#667085;--soft:#98a2b3;--line:#d9e2ec;--line-strong:#bfd0df;--teal:#0f766e;--cyan:#0891b2;--cobalt:#2563eb;--amber:#d97706;--success:#16a34a;--shadow:0 18px 45px #192a4614;--radius:8px}*{box-sizing:border-box}.app-shell{background:linear-gradient(180deg, #0891b20d, transparent 320px), var(--bg);grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.lesson-shell{background:linear-gradient(180deg, #0891b20d, transparent 360px), var(--bg);min-height:100vh;padding:24px}.sidebar,.inspector{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffdb;height:100vh;position:sticky;top:0;overflow:auto}.sidebar{border-right:1px solid var(--line);padding:22px 18px}.brand{align-items:center;gap:12px;padding:6px 6px 20px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg, var(--teal), var(--cobalt));border-radius:8px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 12px 25px #0f766e38}.brand strong,.brand span{display:block}.brand strong{color:var(--ink);font-size:15px;line-height:1.2}.brand span{color:var(--muted);margin-top:2px;font-size:12px}.phase-list{gap:8px;margin-top:8px;display:grid}.phase-button{border-radius:var(--radius);width:100%;min-height:48px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:22px 1fr;align-items:center;gap:8px 10px;padding:9px 10px;transition:all .18s;display:grid}.phase-button span{color:var(--ink);font-size:14px;font-weight:650}.phase-button small{color:var(--soft);white-space:nowrap;text-overflow:ellipsis;grid-column:2;margin-top:-5px;font-size:12px;overflow:hidden}.phase-button:hover,.phase-button.active{color:var(--teal);background:#eef7f8;border-color:#c9e6ea}.sidebar-progress{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);margin-top:22px;padding:16px}.sidebar-progress>div:first-child,.bar-metrics{justify-content:space-between;align-items:center;gap:10px;display:flex}.sidebar-progress span,.sidebar-progress p{color:var(--muted);font-size:12px}.sidebar-progress strong{color:var(--ink)}.progress-track{background:#e7eef5;border-radius:999px;height:8px;margin:12px 0;overflow:hidden}.progress-track i{background:linear-gradient(90deg, var(--teal), var(--cobalt));border-radius:inherit;height:100%;display:block}.sidebar-progress p{margin:0;line-height:1.55}.main-panel{min-width:0;padding:22px}.lesson-page{width:min(1180px,100%);margin:0 auto}.sync-panel{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffe0;grid-template-columns:auto minmax(180px,280px) auto;align-items:center;gap:8px;margin-bottom:12px;padding:10px;display:grid}.sync-status,.sync-code-box,.sync-actions{align-items:center;gap:8px;display:inline-flex}.sync-status{min-height:38px;color:var(--teal);font-size:13px;font-weight:800}.sync-status small{color:var(--soft);font-size:12px;font-weight:650}.sync-code-box{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:38px;color:var(--muted);padding:0 10px}.sync-code-box input{width:100%;min-width:0;color:var(--ink);letter-spacing:0;background:0 0;border:0;outline:0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:750}.sync-actions{justify-content:flex-end}.sync-error{color:#b42318;grid-column:1/-1;margin:0;font-size:12px;line-height:1.5}.command-bar{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#ffffffeb;grid-template-columns:minmax(280px,1fr) auto auto;align-items:center;gap:18px;padding:18px;display:grid}.title-block p,.section-heading span,.phase-hero span,.inspector-top span{color:var(--teal);letter-spacing:0;margin:0;font-size:12px;font-weight:750}.title-block h1{color:var(--ink);letter-spacing:0;margin:4px 0 0;font-size:28px;line-height:1.12}.command-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.search-box,.select-box,.jump-box,.icon-button,.done-toggle{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:40px;color:var(--muted);align-items:center;gap:8px;padding:0 12px;text-decoration:none;display:inline-flex}.search-box{width:292px}.search-box input,.select-box select{color:var(--ink);background:0 0;border:0;outline:0;min-width:0}.search-box input{width:100%}.select-box select{appearance:none;cursor:pointer}.jump-box{width:86px;padding:0 9px}.jump-box span{color:var(--teal);font-size:12px;font-weight:850}.jump-box input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;font-weight:800}.icon-button,.done-toggle{cursor:pointer;font-size:13px;font-weight:700}.icon-button.compact{min-height:38px;padding-inline:10px}.icon-button:disabled{cursor:not-allowed;opacity:.52}.icon-button.primary,.icon-button.active,.done-toggle.active{color:var(--teal);background:#eaf8f6;border-color:#a7d9d7}.bar-metrics{border-left:1px solid var(--line);min-height:52px;color:var(--muted);padding-left:18px}.bar-metrics strong{color:var(--ink);font-size:18px}.phase-hero{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(135deg,#fff 0%,#f8fbfd 100%);border-left-width:5px;grid-template-columns:1fr;gap:14px;margin-top:18px;padding:20px;display:grid}.phase-hero h2,.section-heading h2,.inspector h2,.project-card h3,.resource-card h3,.day-card h3{color:var(--ink);letter-spacing:0;margin:0}.phase-hero h2{margin-top:4px;font-size:22px}.phase-hero p,.section-heading p,.project-card p,.resource-card p,.day-card p,.inspector-card p{color:var(--muted);margin:8px 0 0;line-height:1.6}.phase-hero ul{flex-wrap:wrap;align-content:start;gap:8px;margin:0;padding:0;list-style:none;display:flex}.phase-hero li{color:#0f5f5a;background:#f0fbfb;border:1px solid #d2e7ea;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:700}.timeline-section,.resource-section,.project-section,.empty-state{border:1px solid var(--line);border-radius:var(--radius);background:#ffffffe6;min-width:0;margin-top:22px;padding:20px}.section-heading{justify-content:space-between;align-items:end;gap:22px;margin-bottom:18px;display:flex}.section-heading h2{margin-top:4px;font-size:22px}.section-heading p{max-width:540px;font-size:14px}.weeks{gap:14px;min-width:0;padding-bottom:4px;display:grid;overflow-x:auto}.week-row{grid-template-columns:68px minmax(0,1fr);gap:12px;min-width:760px;display:grid}.week-label{color:var(--muted);padding-top:10px}.week-label strong,.week-label span{display:block}.week-label strong{color:var(--ink);font-size:14px}.week-label span{margin-top:4px;font-size:12px}.day-grid{grid-template-columns:repeat(7,minmax(92px,1fr));gap:10px;display:grid}.day-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;min-height:216px;padding:12px;transition:all .18s;position:relative}.day-card:hover,.day-card.selected{border-color:var(--cyan);transform:translateY(-1px);box-shadow:0 14px 30px #0891b21f}.day-card.done{background:#f5fbf7;border-color:#b9e6c6}.day-card.sprint{background:linear-gradient(#fffaf3,#fff 55%)}.check-button{border:1px solid var(--line);width:27px;height:27px;color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;place-items:center;display:grid;position:absolute;top:10px;right:10px}.done .check-button{background:var(--success);border-color:var(--success);color:#fff}.day-topline{color:var(--teal);align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.day-topline small{color:var(--soft);font-weight:700}.day-card h3{margin-top:12px;padding-right:24px;font-size:14px;line-height:1.35}.day-card p{-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:44px;font-size:12px;display:-webkit-box;overflow:hidden}.day-meta{color:var(--amber);align-items:center;gap:5px;margin-top:12px;font-size:12px;font-weight:800;display:inline-flex}.open-day-button{border-radius:var(--radius);color:#0f5f5a;cursor:pointer;background:#f0fbfb;border:1px solid #c9e6ea;justify-content:center;align-items:center;gap:6px;min-height:34px;font-size:12px;font-weight:850;display:inline-flex;position:absolute;bottom:10px;left:10px;right:10px}.open-day-button:hover{border-color:var(--cyan);background:#e4f8fa}.inspector{border-left:1px solid var(--line);padding:22px 18px}.inspector-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:12px;padding:16px}.lesson-overview,.lesson-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin-bottom:12px;padding:18px}.lesson-overview{background:linear-gradient(135deg,#fff,#f5fbfb);gap:14px;display:grid}.lesson-objective{align-items:flex-start;gap:12px;display:flex}.lesson-objective svg{color:var(--teal);flex:none;margin-top:2px}.lesson-objective h3,.lesson-section h3,.lesson-section h4{color:var(--ink);letter-spacing:0;margin:0}.lesson-objective h3{font-size:17px}.lesson-objective p{color:var(--muted);margin:6px 0 0;line-height:1.65}.timebox-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.timebox-list div{border-radius:var(--radius);color:var(--muted);background:#f8fefe;border:1px solid #d2e7ea;align-items:flex-start;gap:8px;padding:10px;font-size:13px;line-height:1.5;display:flex}.timebox-list svg{color:var(--cyan);flex:none;margin-top:2px}.full-course{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);margin-bottom:12px;padding:18px}.full-course-header{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;padding-bottom:16px;display:grid}.full-course-header span{color:var(--teal);font-size:12px;font-weight:800;display:block}.full-course-header h3,.course-block h4,.course-module h5,.course-command h5{color:var(--ink);letter-spacing:0;margin:0}.full-course-header h3{margin-top:6px;font-size:22px;line-height:1.25}.full-course-header p,.course-module p,.course-command-meta p,.course-workbook p,.course-criteria li,.course-reflection li{color:var(--muted);font-size:14px;line-height:1.72}.full-course-header p{margin:8px 0 0}.full-course-header>strong{border-radius:var(--radius);color:#0f5f5a;white-space:nowrap;background:#f0fbfb;border:1px solid #c9e6ea;align-items:center;min-height:32px;padding:0 10px;font-size:12px;display:inline-flex}.course-use-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.course-use-list div{border-radius:var(--radius);background:#f8fefe;border:1px solid #d2e7ea;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:10px;padding:12px;display:grid}.course-use-list strong{width:28px;height:28px;color:var(--teal);background:#dff6f5;border-radius:999px;place-items:center;font-size:13px;display:grid}.course-use-list span{color:var(--ink);font-size:13px;line-height:1.62}.course-block{margin-top:18px}.course-block h4{font-size:17px}.course-module-list,.course-command-list{gap:12px;margin-top:12px;display:grid}.course-module,.course-command{border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff;padding:14px}.course-module-top,.course-command-meta{justify-content:space-between;align-items:start;gap:12px;display:flex}.course-module h5,.course-command h5{font-size:15px;line-height:1.4}.course-module-top span,.course-command-meta span,.command-copy-button{border-radius:var(--radius);color:#0f5f5a;background:#f0fbfb;border:1px solid #d2e7ea;flex:none;padding:5px 8px;font-size:12px;font-weight:800}.command-copy-button{cursor:pointer;min-height:30px}.command-copy-button:hover,.command-copy-button:focus-visible{border-color:var(--cyan);background:#e4f8fa;outline:none}.course-module p,.course-command-meta p{margin:9px 0 0}.course-module ul,.course-criteria ul,.course-reflection ol{margin:12px 0 0;padding-left:22px}.course-module li{color:#0f5f5a;font-size:13px;font-weight:700;line-height:1.6}.course-command .code-sample{margin-top:12px}.course-workbook code{border:1px solid var(--line);color:var(--teal);background:#f8fbfd;border-radius:5px;padding:1px 5px;font-size:13px}.course-workbook pre{white-space:pre-wrap;border-radius:var(--radius);color:var(--ink);background:#f8fdff;border:1px dashed #bdd7e1;margin:10px 0 0;padding:12px;font-size:13px;line-height:1.62;overflow:auto}.course-two-column{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.course-criteria,.course-reflection{border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff;padding:14px}.course-criteria li+li,.course-reflection li+li{margin-top:8px}.self-contained-note{background:#f0fbfb;border-color:#a7d9d7}.selected-day{background:linear-gradient(135deg,#ecfeff,#fff 62%);border-color:#bde8ee}.inspector-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.inspector h2{font-size:22px;line-height:1.24}.day-nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid}.day-nav button,.day-nav a{border:1px solid var(--line);border-radius:var(--radius);min-height:38px;color:var(--ink);cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.day-nav button:disabled{cursor:not-allowed;opacity:.45}.inspector-card h3,.lesson-section h3{color:var(--ink);align-items:center;gap:8px;margin:0;font-size:15px;display:flex}.lesson-section h3{margin-bottom:14px;font-size:17px}.lecture-list{gap:16px;display:grid}.lecture-list article{border-left:3px solid #bde8ee;padding-left:14px}.lecture-list h4,.lab-section h4{font-size:15px}.lecture-list p,.lab-section li,.drill-section li,.check-section li,.warning-section li{color:var(--muted);font-size:14px;line-height:1.7}.lecture-list p{margin:8px 0 0}.concept-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.concept-card{border:1px solid var(--line);border-radius:var(--radius);background:#fbfdff;padding:14px}.concept-card strong,.concept-card span,.concept-card small{display:block}.concept-card strong{color:var(--teal);font-size:15px}.concept-card p{color:var(--ink);margin:8px 0 0;font-size:14px;line-height:1.55}.concept-card span{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.5}.concept-card small{color:#0f5f5a;margin-top:10px;font-size:12px;font-weight:750}.lab-section ol,.drill-section ol,.check-section ul,.warning-section ul{margin:0;padding-left:22px}.lab-section li+li,.drill-section li+li,.check-section li+li,.warning-section li+li{margin-top:7px}.code-sample{border-radius:var(--radius);background:#0f172a;border:1px solid #cbd5e1;margin-top:14px;overflow:hidden}.code-sample>div{color:#e5edf7;background:#172033;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:800;display:flex}.code-sample small{color:#94a3b8;text-transform:uppercase;margin-left:auto;font-size:11px}.code-sample pre,.note-section pre{white-space:pre-wrap;margin:0;line-height:1.6;overflow:auto}.code-sample pre{color:#dbeafe;padding:14px;font-size:13px}.expected-result{border-radius:var(--radius);color:#7c4a03;background:#fffaf2;border:1px solid #f2d29e;margin:14px 0 0;padding:12px;font-size:14px;line-height:1.65}.check-section{background:#f8fbff}.warning-section{background:#fffaf2;border-color:#f2d29e}.note-section pre{border-radius:var(--radius);color:var(--ink);background:#f8fdff;border:1px dashed #bdd7e1;padding:12px;font-size:13px}.inspector-card p{font-size:14px}.acceptance{background:#fffaf2;border-color:#f2d29e}.resource-mini-list{gap:8px;margin-top:12px;display:grid}.resource-mini-list a{border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);justify-content:space-between;align-items:center;gap:10px;padding:10px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.project-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.project-card,.resource-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:16px}.project-window{color:var(--muted);align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.project-window i{border-radius:999px;width:8px;height:8px;margin-left:auto}.project-card h3{margin-top:12px;font-size:18px}.project-card ul{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.project-card li{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.project-card li svg{color:var(--success);flex:none}.resource-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.resource-card{text-decoration:none;transition:all .18s;display:block}.resource-card:hover{border-color:var(--cyan);transform:translateY(-1px)}.resource-card>div{justify-content:space-between;align-items:center;display:flex}.resource-type{border-radius:999px;padding:4px 8px;font-size:11px;font-weight:850;display:inline-flex}.resource-type.course{color:#075985;background:#e0f2fe}.resource-type.docs{color:#0f766e;background:#ccfbf1}.resource-type.paper{color:#7c2d12;background:#ffedd5}.resource-type.project{color:#1d4ed8;background:#dbeafe}.resource-type.tool{color:#166534;background:#dcfce7}.resource-card h3{margin-top:14px;font-size:16px}.resource-card p{font-size:13px}.empty-state{text-align:center}.focus-mode .project-section,.focus-mode .resource-section,.focus-mode .phase-hero{display:none}@media (width<=1500px){.command-bar,.phase-hero{grid-template-columns:1fr}.command-actions{justify-content:flex-start}.search-box{width:100%}.bar-metrics{border-left:0;justify-content:flex-start;padding-left:0}.phase-hero{gap:14px}.phase-hero ul{align-content:start}}@media (width<=1160px){.app-shell{grid-template-columns:250px minmax(0,1fr)}.lesson-shell{padding:18px}}@media (width<=1080px){.sync-panel,.command-bar,.phase-hero,.section-heading{grid-template-columns:1fr}.command-actions{justify-content:flex-start}.bar-metrics{border-left:0;justify-content:flex-start;padding-left:0}.sync-actions{justify-content:flex-start}.day-grid,.resource-grid,.project-list,.concept-grid,.timebox-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);height:auto;position:static}.main-panel{padding:14px}.lesson-shell{padding:12px}.title-block h1{font-size:24px}.search-box{width:100%}.week-row{grid-template-columns:1fr}.week-label{gap:8px;padding-top:0;display:flex}.day-grid,.resource-grid,.project-list,.concept-grid,.timebox-list,.course-use-list,.course-two-column,.full-course-header,.course-module-top,.course-command-meta{grid-template-columns:1fr}.full-course-header,.course-module-top,.course-command-meta{display:grid}.full-course-header>strong,.course-module-top span,.course-command-meta span{justify-self:start}}
