:root{--bg: #f4f1ea;--panel: #fffaf1;--panel-strong: #ffffff;--ink: #202124;--muted: #687079;--line: #ddd6c9;--accent: #2f6f73;--accent-strong: #1f4f54;--blue: #315d9b;--rose: #b75b65;--green: #4f7c45;--shadow: 0 18px 40px rgba(32, 33, 36, .09)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:linear-gradient(135deg,rgba(47,111,115,.11),transparent 34%),linear-gradient(315deg,rgba(183,91,101,.13),transparent 32%),var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.app-shell{display:grid;min-height:100vh;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--line);background:#fffaf1d1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:24px 18px;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}.home-link{display:block;margin-bottom:20px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;color:var(--accent-strong);background:#ffffff94;font-size:13px;font-weight:800}.home-link:hover{border-color:#2f6f735c;background:#2f6f731a}.brand-mark{display:grid;width:44px;height:44px;place-items:center;border-radius:8px;background:var(--ink);color:#fff;font-weight:800}.brand strong,.brand small{display:block}.brand small{margin-top:2px;color:var(--muted);font-size:13px}.nav-list{display:grid;gap:8px}.nav-list a{border-radius:8px;color:var(--muted);padding:12px 14px}.nav-list a.active,.nav-list a:hover{background:var(--ink);color:#fff}.course-nav{display:grid;gap:14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.course-nav-header{display:grid;gap:4px;padding:0 10px}.course-nav-header span{color:var(--accent-strong);font-size:12px;font-weight:800}.course-nav-header strong{font-size:16px;line-height:1.25}.course-nav-list,.course-nav-group{display:grid;gap:7px}.course-nav-group{margin-top:8px}.course-nav-group h3{margin:10px 10px 2px;color:var(--muted);font-size:12px;font-weight:850}.course-nav-list a{display:grid;gap:3px;border:1px solid transparent;border-radius:8px;padding:10px 11px;color:var(--ink)}.course-nav-list a:hover,.course-nav-list a.active{border-color:#2f6f735c;background:#2f6f731a}.course-nav-list a span{font-size:13px;font-weight:760;line-height:1.3}.course-nav-list a small{color:var(--muted);font-size:11px;line-height:1.25}.course-nav-list a.active small{color:var(--accent-strong)}.main{min-width:0;padding:28px clamp(18px,4vw,48px) 56px}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:48px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}.site-footer strong{color:var(--ink)}.topbar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:28px}.language-switcher{display:inline-flex;flex:0 0 auto;gap:4px;border:1px solid var(--line);border-radius:8px;padding:4px;background:#fffaf1c2}.language-switcher a{min-width:52px;border-radius:6px;padding:8px 10px;color:var(--muted);font-size:13px;font-weight:850;text-align:center}.language-switcher a.active,.language-switcher a:hover{color:#fff;background:var(--ink)}.eyebrow{margin:0 0 7px;color:var(--accent-strong);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(34px,5vw,58px);line-height:.98;letter-spacing:0}.primary-action,.secondary-action,.danger-action,.icon-action{min-height:40px;border:1px solid transparent;border-radius:8px;cursor:pointer;font-weight:750}.primary-action{background:var(--accent);color:#fff;padding:0 16px}.secondary-action,.icon-action{border-color:var(--line);background:var(--panel-strong);color:var(--ink);padding:0 14px}.danger-action{background:#8d313a;color:#fff;padding:0 14px}.hero{display:grid;min-height:310px;align-items:end;border-radius:8px;overflow:hidden;background:linear-gradient(90deg,#181f23d4,#181f2338),url(https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1600&q=80) center / cover;box-shadow:var(--shadow)}.hero-content{max-width:760px;padding:clamp(26px,5vw,48px);color:#fff}.hero-content h2{margin-bottom:12px;font-size:clamp(30px,5vw,52px);line-height:1}.hero-content p{max-width:640px;color:#ffffffdb;font-size:18px;line-height:1.7}.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:34px 0 16px}.section-head h2{margin:0;font-size:24px}.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px}.course-card{display:grid;min-height:385px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);box-shadow:0 14px 34px #20212412}.course-card-media{min-height:145px;background:linear-gradient(135deg,#2f6f73d6,#315d9bc7),var(--course-image, none) center / cover}.course-card-body{display:grid;align-content:space-between;gap:14px;padding:20px}.course-card-meta,.course-card-footer,.stats-row,.admin-row,.lesson-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.pill{display:inline-flex;align-items:center;min-height:28px;border-radius:999px;background:#2f6f731f;color:var(--accent-strong);padding:0 10px;font-size:13px;font-weight:800}.muted{color:var(--muted)}.course-card h2{margin-bottom:0;font-size:22px}.course-card p,.lesson-panel p,.empty-state p{color:var(--muted);line-height:1.65}.course-card-footer{justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;color:var(--muted);font-size:14px}.text-link{color:var(--accent-strong);font-weight:800}.tree-page{min-width:0}.tree-panel,.lesson-panel,.admin-panel,.empty-state{border:1px solid var(--line);border-radius:8px;background:#fffaf1db;box-shadow:var(--shadow)}.dependency-panel{padding:clamp(16px,2.6vw,26px)}.course-mode-bar{display:inline-flex;gap:4px;margin:14px 0 18px;border:1px solid var(--line);border-radius:8px;background:#ffffffc7;padding:4px}.course-mode-bar button{min-height:36px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer;font-weight:800;padding:0 14px}.course-mode-bar button.active{background:var(--ink);color:#fff}.target-learning{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:18px;align-items:start}.goal-picker{display:grid;gap:10px;position:sticky;top:18px}.goal-picker button{display:grid;gap:4px;min-height:72px;border:1px solid var(--line);border-radius:8px;background:#ffffffd6;color:var(--ink);cursor:pointer;padding:12px 14px;text-align:left}.goal-picker button.active{border-color:var(--accent);background:#edf6f2;box-shadow:inset 4px 0 0 var(--accent)}.goal-picker strong{font-size:15px}.goal-picker span,.route-note,.mini-lesson span,.goal-tree-card>span{color:var(--muted);font-size:12px}.route-board,.elective-panel,.goal-tree-panel,.tree-root-card{border:1px solid var(--line);border-radius:8px;background:#ffffffd1}.route-board{padding:clamp(16px,2vw,22px)}.route-head{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:18px}.route-head h2{margin:2px 0 6px;font-size:26px}.route-head p{max-width:680px;margin:0;color:var(--muted);line-height:1.6}.route-kicker{color:var(--accent-strong);font-size:12px;font-weight:900}.route-note{max-width:180px;border:1px dashed var(--line);border-radius:8px;background:#fffaf1e6;padding:10px;line-height:1.5}.stage-route{display:grid;gap:14px}.route-stage{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;align-items:stretch;border:1px solid transparent;border-radius:8px;padding:12px}.route-stage h3{display:grid;place-items:center;min-height:100%;margin:0;border-radius:8px;font-size:20px}.route-stage.beginner{background:#eef8eac7;border-color:#75a06d73}.route-stage.beginner h3{color:var(--green)}.route-stage.intermediate{background:#eef5ffd1;border-color:#6f8fc080}.route-stage.intermediate h3{color:var(--blue)}.route-stage.advanced{background:#fff1f3d1;border-color:#c87a827a}.route-stage.advanced h3{color:var(--rose)}.route-line{display:grid;gap:10px}.route-card{position:relative;display:grid;gap:4px;min-height:68px;border:1px solid var(--line);border-radius:8px;background:#fffffff5;padding:12px 14px 12px 48px}.route-card+.route-card:before{content:"";position:absolute;top:-11px;left:24px;width:2px;height:10px;background:#39434c6b}.route-step{position:absolute;left:12px;top:14px;display:grid;width:24px;height:24px;place-items:center;border-radius:999px;background:var(--ink);color:#fff;font-size:11px;font-weight:850}.route-card strong{font-size:16px;line-height:1.35}.route-card small{color:var(--muted)}.elective-panel{margin-top:18px;padding:16px}.elective-panel.compact{background:#fffaf1b3}.elective-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:14px}.elective-head h3{margin:0;font-size:20px}.elective-head p{max-width:420px;margin:0;color:var(--muted);font-size:13px;line-height:1.5}.elective-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.elective-column{display:grid;align-content:start;gap:8px;border-radius:8px;padding:10px}.elective-column.beginner{background:#eef8eab8}.elective-column.intermediate{background:#eef5ffc7}.elective-column.advanced{background:#fff1f3bd}.elective-column h4{margin:0 0 2px;font-size:16px}.mini-lesson{display:grid;gap:4px;border:1px solid var(--line);border-radius:8px;background:#ffffffe0;color:var(--ink);padding:10px;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.mini-lesson:hover{border-color:var(--accent);box-shadow:0 10px 22px #20212417;transform:translateY(-1px)}.mini-lesson strong{font-size:13px;line-height:1.35}.overview-tree{display:grid;gap:16px}.tree-root-card{display:grid;gap:4px;background:var(--ink);color:#fff;padding:16px 18px}.tree-root-card strong{font-size:20px}.tree-root-card span{color:#ffffffbd}.overview-branches{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.4fr);gap:16px}.overview-branches .elective-panel{margin:0}.overview-branches .elective-grid{grid-template-columns:1fr}.goal-tree-panel{padding:16px}.goal-tree-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.goal-tree-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:#ffffffe6;padding:14px}.goal-tree-card h4{margin:0;font-size:18px}.goal-level-list{display:grid;gap:6px;border-left:3px solid var(--line);padding-left:10px}.goal-level-list.beginner{border-left-color:var(--green)}.goal-level-list.intermediate{border-left-color:var(--blue)}.goal-level-list.advanced{border-left-color:var(--rose)}.goal-level-list h5{margin:0;font-size:14px}.goal-level-list a{margin:0;color:var(--muted);font-size:13px;line-height:1.4;text-decoration:none}.goal-level-list a:hover{color:var(--accent)}.lesson-shell{display:grid;gap:16px}.lesson-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.lesson-toolbar>span{color:var(--muted);font-weight:800}.lesson-language-switcher{margin-left:auto}.slide-lesson{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:18px;align-items:start}.slide-stage,.slide-script,.lesson-placeholder{border:1px solid var(--line);border-radius:8px;background:#fffaf1e0;box-shadow:var(--shadow)}.slide-stage{display:grid;gap:14px;padding:clamp(14px,2vw,20px)}.video-slide{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);touch-action:pan-y;min-height:0;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#15181cf0,#1f4f54b8),#202124;color:#fff;aspect-ratio:16 / 9;padding:clamp(18px,2.4vw,30px)}.video-slide:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px) 0 0 / 34px 34px,linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px) 0 0 / 34px 34px;opacity:.65}.video-slide:after{content:"";position:absolute;right:-9%;bottom:-18%;width:42%;aspect-ratio:1;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:#ffffff0f}.video-slide.collab{background:linear-gradient(135deg,#202124,#315d9b)}.video-slide.tools{background:linear-gradient(135deg,#202124,#6b5b2e)}.video-slide.workflow{background:linear-gradient(135deg,#202124,#4f7c45)}.video-slide.demo{background:linear-gradient(135deg,#202124,#73506b)}.video-slide.risk{background:linear-gradient(135deg,#202124,#8d313a)}.video-topline,.video-content{position:relative;z-index:1}.video-topline{display:flex;align-items:center;justify-content:space-between;color:#ffffffb8;font-size:13px;font-weight:850;text-transform:uppercase;min-height:22px}.video-content{display:grid;align-content:center;max-width:780px;min-height:0;gap:clamp(6px,.9vw,11px);padding-top:6px}.video-label{width:fit-content;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:#ffffff1a;color:#ffffffd1;padding:6px 10px;font-size:12px;font-weight:800}.video-content h2{max-width:760px;margin:0;font-size:clamp(25px,2.7vw,40px);line-height:1.08}.video-content p{max-width:720px;margin:0;color:#ffffffd1;font-size:clamp(15px,1.45vw,19px);line-height:1.45}.video-content.reference-layout{gap:8px}.video-content.reference-layout h2{font-size:clamp(24px,2.35vw,34px);line-height:1.06}.video-content.reference-layout>p{font-size:clamp(14px,1.25vw,16px);line-height:1.35}.video-bullets{display:flex;flex-wrap:wrap;gap:7px}.video-bullets span{border:1px solid rgba(255,255,255,.2);border-radius:999px;background:#ffffff1a;color:#ffffffe0;padding:6px 9px;font-size:12px;font-weight:750}.video-bullets.compact span{padding:5px 8px;font-size:11px}.slide-hotspot{position:absolute;top:0;bottom:0;z-index:3;width:17%;border:0;background:transparent;cursor:pointer}.slide-hotspot.prev{left:0}.slide-hotspot.next{right:0}.slide-hotspot:disabled{cursor:default}.slide-hotspot:not(:disabled):hover{background:linear-gradient(90deg,rgba(255,255,255,.08),transparent)}.slide-hotspot.next:not(:disabled):hover{background:linear-gradient(270deg,rgba(255,255,255,.08),transparent)}.slide-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.slide-actions button{display:inline-flex;align-items:center;gap:8px}.slide-actions kbd{min-width:26px;border:1px solid rgba(32,33,36,.18);border-radius:6px;background:#ffffffb8;padding:2px 7px;color:var(--ink);font-size:13px;font-weight:900;line-height:1.2;text-align:center}.keyboard-hint{color:var(--muted);font-size:12px;font-weight:760}.swipe-copy{display:none}.slide-actions button:disabled{cursor:not-allowed;opacity:.45}.slide-script{display:grid;gap:14px;padding:18px}.slide-script h2{margin:0;font-size:26px;line-height:1.2}.slide-script>p{margin:0;color:var(--muted);font-size:16px;line-height:1.8}.script-points{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:14px}.script-points h3{margin:0;font-size:16px}.script-points p{margin:0;border:1px solid var(--line);border-radius:8px;background:#ffffffbd;padding:10px;color:var(--ink);line-height:1.45;overflow-wrap:anywhere;word-break:break-word}.slide-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.slide-strip button{display:grid;gap:6px;min-height:66px;border:1px solid var(--line);border-radius:8px;background:#ffffffd1;cursor:pointer;padding:9px;text-align:left}.slide-strip button.active{border-color:var(--accent);background:#edf6f2;box-shadow:inset 0 3px 0 var(--accent)}.slide-strip span{color:var(--accent-strong);font-size:12px;font-weight:900}.slide-strip strong{font-size:12px;line-height:1.3}.lesson-placeholder{display:grid;gap:12px;padding:24px}.lesson-placeholder h2{margin:0;font-size:28px}.animated-visual{display:flex;flex-wrap:wrap;gap:7px;max-width:760px;max-height:64px;overflow:hidden}.animated-visual span{display:inline-grid;min-height:30px;align-items:center;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#ffffff1c;color:#ffffffe6;padding:6px 9px;font-size:12px;font-weight:850}.tools-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.tools-map span{text-align:center}.workflow-map{align-items:center}.workflow-map span,.choice-map span{position:relative;min-width:86px;text-align:center}.workflow-map span:not(:last-child):after{content:"";position:absolute;top:50%;right:-13px;width:14px;height:2px;background:#ffffff8c}.orbit-map{position:relative;min-height:72px;align-content:center}.slide-example{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:760px}.slide-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:760px}.slide-breakdown section{display:grid;gap:6px;min-height:84px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#ffffff1a;padding:11px}.slide-breakdown strong{color:#fffffff0;font-size:13px}.slide-breakdown p{display:-webkit-box;max-width:none;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;color:#ffffffc7;font-size:12px;line-height:1.45;overflow-wrap:anywhere;word-break:break-word}.slide-template{display:grid;gap:10px;max-width:760px}.slide-template.split{grid-template-columns:repeat(2,minmax(0,1fr))}.slide-template section{display:grid;gap:7px;min-height:0;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#10141857;padding:11px}.slide-template strong{color:#fffffff0;font-size:13px}.slide-template pre{max-height:172px;margin:0;overflow:hidden;white-space:pre-wrap;color:#fffc;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px;line-height:1.42}.slide-references{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-width:760px}.slide-references a{display:grid;gap:5px;min-height:82px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#ffffff1a;padding:9px 10px;color:inherit;text-decoration:none}.slide-references a:hover{border-color:#ffffff75;background:#ffffff26}.slide-references span{width:fit-content;border-radius:999px;background:#ffffff1f;color:#ffffffc7;padding:4px 7px;font-size:10px;font-weight:850;text-transform:uppercase}.slide-references strong{color:#fffffff2;font-size:13px}.slide-references p{display:-webkit-box;max-width:none;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:#ffffffc7;font-size:11px;line-height:1.4}.slide-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;max-width:760px}.slide-steps section{display:grid;min-height:88px;align-content:center;gap:7px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#ffffff1a;padding:10px}.slide-steps span{color:#ffffff8c;font-size:12px;font-weight:900}.slide-steps strong{color:#fffffff0;font-size:14px;line-height:1.25}.slide-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px;max-width:760px}.slide-flow section{position:relative;display:grid;min-height:98px;align-content:center;gap:5px;border:1px solid rgba(255,255,255,.24);border-radius:8px;background:#ffffff1a;padding:11px}.slide-flow section:not(:nth-child(3n)):after{content:"→";position:absolute;top:50%;right:-18px;transform:translateY(-50%);color:#ffffffb8;font-size:18px;font-weight:900}.slide-flow:has(section:nth-child(4)) section:nth-child(3):after{content:"↓";position:absolute;right:50%;bottom:-23px;top:auto;transform:translate(50%)}.slide-flow section:nth-child(4){grid-column:3;grid-row:2}.slide-flow section:nth-child(5){grid-column:2;grid-row:2}.slide-flow section:nth-child(6){grid-column:1;grid-row:2}.slide-flow:has(section:nth-child(5)) section:nth-child(4):after,.slide-flow:has(section:nth-child(6)) section:nth-child(5):after{content:"←";right:auto;left:-18px}.slide-flow span{color:#ffffff8f;font-size:11px;font-weight:900}.slide-flow strong{color:#fffffff0;font-size:13px}.slide-flow p{max-width:none;color:#ffffffc7;font-size:11px;line-height:1.4}.roundtrip-flow{display:grid;grid-template-columns:minmax(0,1fr) 108px minmax(0,1fr) 108px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:14px 8px;max-width:760px}.roundtrip-flow section{display:grid;min-height:120px;align-content:center;gap:6px;border:1px solid rgba(255,255,255,.24);border-radius:8px;background:#ffffff1a;padding:13px}.roundtrip-flow section:nth-of-type(1){grid-column:1;grid-row:1 / span 2}.roundtrip-flow section:nth-of-type(2){grid-column:3;grid-row:1 / span 2}.roundtrip-flow section:nth-of-type(3){grid-column:5;grid-row:1 / span 2}.roundtrip-flow section span{color:#ffffff8f;font-size:11px;font-weight:900}.roundtrip-flow section strong{color:#fffffff5;font-size:15px}.roundtrip-flow section p{max-width:none;color:#ffffffc7;font-size:12px;line-height:1.42}.flow-lane{position:relative;display:grid;place-items:center;min-height:44px;text-align:center}.flow-lane:before{content:"";position:absolute;left:4px;right:4px;top:50%;height:2px;background:#ffffff94}.flow-lane:after{content:"";position:absolute;top:calc(50% - 4px);width:8px;height:8px;border-top:2px solid rgba(255,255,255,.72);border-right:2px solid rgba(255,255,255,.72)}.flow-lane.top:after{right:4px;transform:rotate(45deg)}.flow-lane.bottom:after{left:4px;transform:rotate(225deg)}.flow-lane span,.flow-lane strong{position:relative;z-index:1;display:block;border-radius:999px;background:#1d2c30eb;padding:2px 7px}.flow-lane span{color:#ffffff94;font-size:9px;font-weight:900;text-transform:uppercase}.flow-lane strong{margin-top:2px;color:#ffffffe0;font-size:11px}.flow-lane.top:nth-of-type(1){grid-column:2;grid-row:1}.flow-lane.top:nth-of-type(2){grid-column:4;grid-row:1}.flow-lane.bottom.front-back{grid-column:2;grid-row:2;order:6}.flow-lane.bottom.back-db{grid-column:4;grid-row:2;order:5}.slide-example section{display:grid;gap:4px;min-height:76px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff1a;padding:9px}.slide-example strong{color:#ffffffeb;font-size:12px}.slide-example p{display:-webkit-box;max-width:none;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:4;color:#ffffffc7;font-size:12px;line-height:1.42}.slide-example .bad{border-color:#b75b6580}.slide-example .good{border-color:#75a06d8c}.orbit-map:before{content:"";position:absolute;left:10px;top:12px;width:230px;height:58px;border:1px solid rgba(255,255,255,.24);border-radius:50%;animation:orbitPulse 5s ease-in-out infinite}@keyframes floatIn{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes orbitPulse{0%,to{transform:scale(1);opacity:.55}50%{transform:scale(1.04);opacity:.9}}.dependency-tree{width:100%;margin-top:16px}.course-map-wrap{width:100%;overflow-x:hidden;overflow-y:visible;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#fffffff0,#fffaf1d6);box-shadow:inset 0 1px #ffffffb8}.elk-map-wrap{margin-top:16px;max-height:none;background:radial-gradient(circle at 18px 18px,rgba(104,112,121,.14) 1px,transparent 1.4px) 0 0 / 28px 28px,linear-gradient(180deg,#fffffffa,#fffaf1e6)}.elk-map{display:block;width:100%;max-width:none;height:auto}.elk-stage rect{stroke-width:2px;fill-opacity:.78}.elk-stage-label{font-size:22px;font-weight:900;opacity:.86;paint-order:stroke;stroke:#ffffffe6;stroke-linejoin:round;stroke-width:5px}.elk-stage.beginner rect{fill:#eef8ea;stroke:#75a06d}.elk-stage-label.beginner{fill:var(--green)}.elk-stage.intermediate rect{fill:#eef5ff;stroke:#6f8fc0}.elk-stage-label.intermediate{fill:var(--blue)}.elk-stage.advanced rect{fill:#fff1f3;stroke:#c87a82}.elk-stage-label.advanced{fill:var(--rose)}.elk-edge{fill:none;stroke:#39434cd1;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;marker-end:url(#map-arrow)}#map-arrow path{fill:#39434cd1}.elk-card{display:grid;width:100%;height:100%;align-content:center;gap:5px;border:1px solid var(--line);border-radius:8px;background:#fffffff7;color:var(--ink);padding:12px 15px;box-shadow:0 12px 24px #20212417;text-align:center}.elk-card strong{white-space:pre-line;font-size:16px;line-height:1.28}.elk-card span{white-space:pre-line;color:var(--muted);font-size:13px;line-height:1.32}.elk-card.root{border-color:var(--ink);background:var(--ink);color:#fff}.elk-card.root span{color:#ffffffc7}.elk-card.goal{border-color:#687079b3;border-style:dashed;background:#fffaf1fa}.elk-card.lesson.beginner{border-color:var(--green);border-width:2px}.elk-card.lesson.intermediate{border-color:var(--blue);border-width:2px}.elk-card.lesson.advanced{border-color:var(--rose);border-width:2px}.map-loading{display:grid;min-height:560px;margin-top:16px;place-items:center;border:1px solid var(--line);border-radius:8px;background:#ffffffdb;color:var(--muted);font-weight:800}.course-map{display:block;width:100%;min-width:980px;height:auto}.stage{stroke-width:1.8px;fill-opacity:.82}.stage.beginner{fill:#eef8ea;stroke:#75a06d}.stage.intermediate{fill:#eef5ff;stroke:#6f8fc0}.stage.advanced{fill:#fff1f3;stroke:#c87a82}.stage-label{font-family:Inter,Noto Sans TC,sans-serif;font-size:22px;font-weight:900}.stage-label.beginner{fill:#4f7c45}.stage-label.intermediate{fill:#315d9b}.stage-label.advanced{fill:#b75b65}.map-edge{fill:none;stroke:#343f48b3;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.map-card{display:grid;width:100%;height:100%;align-content:center;gap:5px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 12px;box-shadow:0 10px 22px #2021241a;font-family:Inter,Noto Sans TC,sans-serif;text-align:center}.map-card strong{white-space:pre-line;font-size:14px;line-height:1.28}.map-card span{color:var(--muted);font-size:12px;line-height:1.32}.map-card.root{border-color:var(--ink);background:var(--ink);color:#fff}.map-card.root span{color:#ffffffc7}.map-card.goal{border-color:#687079b8;border-style:dashed;background:#fffaf1}.map-card.lesson.beginner{border-color:var(--green);border-width:2px}.map-card.lesson.intermediate{border-color:var(--blue);border-width:2px}.map-card.lesson.advanced{border-color:var(--rose);border-width:2px}.lesson-panel{min-height:540px;padding:clamp(20px,4vw,36px)}.lesson-panel h2{margin:14px 0 10px;font-size:clamp(28px,4vw,46px);line-height:1.04}.stats-row{margin:22px 0}.stat{min-width:116px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px}.stat strong,.stat span{display:block}.stat strong{font-size:23px}.stat span{color:var(--muted);font-size:13px}.lesson-section{margin-top:26px}.lesson-section h3{margin-bottom:12px}.check-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.check-list li{border-left:4px solid var(--accent);background:#fff;padding:12px 14px}.admin-grid{display:grid;grid-template-columns:minmax(280px,440px) minmax(0,1fr);gap:20px}.admin-panel,.empty-state{padding:20px}.admin-panel h2{font-size:22px}.form-grid{display:grid;gap:14px}label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:800}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:11px 12px}textarea{min-height:92px;resize:vertical}.admin-list{display:grid;gap:12px}.admin-item{display:grid;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:16px}.admin-row{justify-content:space-between}.admin-row h3{margin:0}.empty-state{display:grid;min-height:260px;place-items:center;text-align:center}@media (max-width: 900px){.app-shell,.course-layout,.admin-grid{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.nav-list{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-list a{text-align:center}}@media (max-width: 620px){.topbar,.section-head{align-items:stretch;flex-direction:column}h1{font-size:38px}.hero{min-height:360px}.nav-list{grid-template-columns:1fr}.sidebar .course-nav{display:none}.sidebar{padding:18px}}.hidden-admin-link{display:none}.react-flow-shell{width:100%;height:clamp(740px,82vh,980px);margin-top:16px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#fffffff7,#fffaf1e0)}.react-flow__pane{cursor:grab}.react-flow__pane:active{cursor:grabbing}.react-flow__node-group.flow-group{border-width:2px;border-style:solid;border-radius:8px;box-shadow:inset 0 1px #ffffffad;font-size:0}.react-flow__node-group.flow-group:after{position:absolute;left:18px;bottom:18px;font-size:24px;font-weight:900;line-height:1}.react-flow__node-group.flow-group.beginner{border-color:#75a06d;background:#eef8eac2}.react-flow__node-group.flow-group.beginner:after{content:"初階";color:var(--green)}.react-flow__node-group.flow-group.intermediate{border-color:#6f8fc0;background:#eef5ffcc}.react-flow__node-group.flow-group.intermediate:after{content:"中階";color:var(--blue)}.react-flow__node-group.flow-group.advanced{border-color:#c87a82;background:#fff1f3cc}.react-flow__node-group.flow-group.advanced:after{content:"高階";color:var(--rose)}.react-flow__node-course{border:0;background:transparent}.flow-card{display:grid;min-height:64px;align-content:center;gap:5px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:11px 13px;box-shadow:0 9px 20px #20212417;text-align:center}.flow-card strong{white-space:pre-line;font-size:14px;line-height:1.28}.flow-card span{white-space:pre-line;color:var(--muted);font-size:12px;line-height:1.32}.flow-card.root{border-color:var(--ink);background:var(--ink);color:#fff}.flow-card.root span{color:#ffffffc7}.flow-card.goal{border-color:#687079b8;border-style:dashed;background:#fffaf1f5}.flow-card.lesson.beginner{border-color:var(--green);border-width:2px}.flow-card.lesson.intermediate{border-color:var(--blue);border-width:2px}.flow-card.lesson.advanced{border-color:var(--rose);border-width:2px}.react-flow__edge-path{stroke-linecap:round}.react-flow__controls{border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:0 10px 22px #2021241a}.course-summary{margin-bottom:0}.react-flow__edges,.react-flow__edge{z-index:30!important}.react-flow__edge-path{stroke:#3e4852db!important;stroke-width:1.9px!important}.react-flow__node-group{z-index:0!important}.react-flow__node-course{z-index:20!important}.flow-handle{width:8px!important;height:8px!important;border:2px solid #4b555d!important;background:#fff!important;opacity:0}@media (max-width: 980px){.target-learning,.overview-branches,.goal-tree-grid,.slide-lesson{grid-template-columns:1fr}.goal-picker{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.elective-grid{grid-template-columns:1fr}}@media (max-width: 720px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar .course-nav{display:none}.lesson-main{padding-top:14px}.lesson-main>.topbar{display:none}.lesson-main .lesson-toolbar{margin-bottom:-4px}.lesson-language-switcher{margin-left:0}.lesson-main .slide-stage{scroll-margin-top:8px}.goal-picker,.route-stage{grid-template-columns:1fr}.route-head,.elective-head{display:grid}.route-note{max-width:none}.video-slide{min-height:500px;aspect-ratio:auto;padding:18px}.slide-hotspot,.keyboard-copy{display:none}.swipe-copy{display:inline}.video-content{align-content:start;gap:10px;padding-top:12px}.video-content h2{font-size:28px;line-height:1.08}.video-content p{font-size:14px;line-height:1.45}.slide-breakdown,.slide-example,.slide-template.split,.slide-references{grid-template-columns:1fr}.slide-breakdown section,.slide-example section,.slide-references a{min-height:0}.slide-breakdown p,.slide-example p,.slide-references p{-webkit-line-clamp:5}.slide-template pre{max-height:none;font-size:10px}.slide-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.slide-flow{grid-template-columns:1fr;gap:8px}.slide-flow section{grid-column:auto!important;grid-row:auto!important;min-height:0}.slide-flow section:after{content:"↓"!important;top:auto!important;right:16px!important;bottom:-18px!important;transform:none!important;font-size:14px}.slide-flow section:last-child:after{content:none!important}.roundtrip-flow{grid-template-columns:1fr;gap:8px}.roundtrip-flow section,.roundtrip-flow .flow-lane{grid-column:auto!important;grid-row:auto!important}.roundtrip-flow section{min-height:0}.flow-lane{min-height:32px}.flow-lane.top:after{right:4px;transform:rotate(45deg)}.flow-lane.bottom:before{left:18px;right:18px}.flow-lane.bottom span:before{content:"↑ "}.flow-lane.bottom:after{left:auto;right:50%;top:calc(50% - 5px);transform:translate(50%) rotate(-45deg)}.slide-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
