:root{--indigo:#6366f1;--teal:#10b981;--red:#ff5757;--orange:#FF914D;--yellow:#FFDE59;--green:#7ED957;--blue:#38B6FF;--purple:#CB6CE6;--dark:#10162f;--bg:#fafafa;--border:#000}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'DM Sans','Noto Sans SC',sans-serif;background:var(--bg);color:#1a1a1a;line-height:1.6}
a{color:var(--indigo);text-decoration:none}a:hover{text-decoration:underline}
.mono{font-family:'Space Mono',monospace}
.header{background:var(--dark);color:#fff;padding:40px 0;text-align:center;border-bottom:4px solid var(--border)}
.header h1{font-size:36px;font-weight:900;letter-spacing:-1px}
.header .sub{font-size:16px;opacity:0.7;margin-top:8px}
.header .nav{margin-top:16px;font-size:14px}.header .nav a{color:#fff;opacity:0.7;margin:0 8px}.header .nav a:hover{opacity:1}
.tags{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.tag{padding:5px 14px;font-size:12px;font-weight:700;font-family:'Space Mono',monospace;border:2px solid rgba(255,255,255,0.3)}
.tag.a{background:var(--indigo);border-color:var(--indigo)}
.bar{display:flex;justify-content:center;gap:32px;padding:16px 0;background:#fff;border-bottom:3px solid var(--border);flex-wrap:wrap}
.bar .s{text-align:center}.bar .n{font-size:24px;font-weight:900;color:var(--indigo)}.bar .l{font-size:11px;color:#888;font-family:'Space Mono',monospace}
.c{max-width:1300px;margin:0 auto;padding:32px 24px}
.box{border:3px solid #000;background:#fff;box-shadow:6px 6px 0 #000;overflow:hidden;margin-bottom:28px}
.box-h{padding:14px 24px;border-bottom:3px solid #000;color:#fff}
.pill{display:inline-block;padding:2px 8px;font-weight:700;font-size:11px;font-family:'Space Mono',monospace}
.wk{padding:4px 24px;font-weight:800;font-size:14px;border-bottom:1px solid #ddd}
/* Lesson card */
.lesson{margin:16px 24px;border:2px solid #e5e5e5;transition:border-color 0.15s}
.lesson:hover{border-color:var(--indigo)}
.lesson-head{padding:10px 16px;display:flex;align-items:center;gap:10px;background:#fafafa;border-bottom:1px solid #eee;flex-wrap:wrap}
.lesson-head h4{font-size:15px;font-weight:700;flex:1}
.lesson-body{padding:12px 16px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.lesson-body h5{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#999;margin-bottom:6px;font-family:'Space Mono',monospace}
.lesson-body p{font-size:13px;line-height:1.7;color:#444}
.tools{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.tool{font-size:11px;padding:2px 8px;background:#f0f0f0;font-family:'Space Mono',monospace;font-weight:600}
.tool.oc{background:#E84142;color:#fff}
.review{display:inline-block;padding:2px 8px;font-size:11px;font-weight:700;font-family:'Space Mono',monospace;margin-top:6px}
.review.ai{background:#d1fae5;color:var(--teal)}
.review.test{background:#ede9fe;color:var(--indigo)}
/* AI self-study bar */
.ai-self{padding:12px 24px;font-size:12px;background:#f8f9ff;border-top:2px solid #ddd}
.ai-self-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:8px}
.ai-self-card{padding:8px 10px;border:1px solid #ddd;background:#fff}
.ai-self-card .lab-tag{padding:2px 6px;background:#e0e7ff;font-weight:700;font-size:10px;font-family:'Space Mono',monospace}
.ai-self-card .lab-name{font-weight:700;margin-top:4px;font-size:12px}
.ai-self-card .lab-desc{color:#888;margin-top:2px;font-size:11px}
/* Phase nav cards */
.phase-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}
.phase-card{border:3px solid #000;box-shadow:5px 5px 0 #000;padding:20px;transition:all 0.15s;text-decoration:none;color:#000;display:block}
.phase-card:hover{box-shadow:none;transform:translate(4px,4px);text-decoration:none}
.phase-card .pnum{font-size:12px;font-family:'Space Mono',monospace;font-weight:700;opacity:0.6}
.phase-card h3{font-size:18px;font-weight:900;margin:6px 0}
.phase-card .pdesc{font-size:13px;color:#666;line-height:1.6}
.phase-card .pweek{font-size:12px;font-family:'Space Mono',monospace;margin-top:10px;opacity:0.5}
/* Grid helpers */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
/* Details/FAQ */
details{border:2px solid #eee;margin-bottom:6px}
details summary{padding:10px 16px;font-weight:700;font-size:14px;cursor:pointer;background:#fafafa}
details>div{padding:10px 16px;font-size:13px;line-height:1.8;border-top:1px solid #eee}
/* Learning resources path */
.learn-path{margin:0 24px 16px;border:2px solid #e5e5e5;font-size:12px}
.learn-path-head{padding:8px 14px;background:#f8f9fa;border-bottom:1px solid #eee;font-weight:800;font-size:12px;display:flex;align-items:center;gap:8px}
.learn-path-head .lp-goal{font-weight:400;color:#666;font-size:11px}
.learn-path-body{padding:0}
.lp-item{display:flex;align-items:flex-start;gap:8px;padding:8px 14px;border-bottom:1px solid #f0f0f0}
.lp-item:last-child{border-bottom:none}
.lp-item:hover{background:#fafafa}
.lp-num{width:20px;height:20px;border-radius:50%;background:var(--teal);color:#fff;font-size:10px;font-weight:900;font-family:'Space Mono',monospace;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.lp-tag{display:inline-block;padding:1px 6px;font-size:10px;font-weight:700;font-family:'Space Mono',monospace;flex-shrink:0}
.lp-lab{background:#d1fae5;color:#065f46}
.lp-ai{background:#fce7f3;color:#be185d}
.lp-text{background:#e0e7ff;color:#3730a3}
.lp-video{background:var(--purple);color:#fff}
.lp-hw{background:#fff7ed;color:#9a3412}
.lp-learn{background:var(--blue);color:#fff}
.lp-mcq{background:var(--yellow);color:#000}
.lp-scenario{background:var(--orange);color:#fff}
.lp-desc{flex:1;line-height:1.6}
.lp-desc strong{font-weight:700}
.lp-time{font-size:10px;color:#888;font-family:'Space Mono',monospace;flex-shrink:0}
.lp-exist{font-size:9px;padding:1px 4px;background:#dcfce7;color:#16a34a;font-weight:700;font-family:'Space Mono',monospace}
/* Gate / unlock */
.gate{margin:16px 24px;padding:16px 20px;border:3px solid var(--indigo);background:#f0f4ff;display:flex;align-items:center;gap:12px}
.gate-icon{font-size:28px}
.gate-text{flex:1}
.gate-text strong{font-size:15px;display:block}
.gate-text span{font-size:12px;color:#666}
.gate-badge{padding:6px 14px;background:var(--indigo);color:#fff;font-weight:700;font-size:12px;font-family:'Space Mono',monospace;border:2px solid #000}
/* Unlock progress */
.unlock-bar{margin:16px 24px;padding:12px 16px;background:#fff;border:2px solid #e5e5e5}
.unlock-bar .ub-label{font-size:11px;font-weight:700;font-family:'Space Mono',monospace;color:#888;margin-bottom:6px}
.unlock-bar .ub-track{height:8px;background:#e5e5e5;border-radius:4px;overflow:hidden}
.unlock-bar .ub-fill{height:100%;background:var(--teal);border-radius:4px;transition:width 0.3s}
.footer{margin-top:40px;padding:24px;text-align:center;border-top:3px solid var(--border);color:#888;font-size:13px}
@media(max-width:900px){.phase-cards{grid-template-columns:repeat(2,1fr) !important}}
@media(max-width:768px){.phase-cards{grid-template-columns:1fr !important}.lesson-body{grid-template-columns:1fr}.grid2,.grid3{grid-template-columns:1fr}}
