: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}
.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.teacher{background:#ede9fe;color:var(--indigo)}
.review.ai{background:#d1fae5;color:var(--teal)}
.review.both{background:#fef3c7;color:#92400e}
/* 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(4,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-live{background:var(--indigo);color:#fff}
.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-oc{background:#E84142;color:#fff}
.lp-vibe{background:var(--blue);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}
/* Weekly schedule bar */
.week-schedule{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:3px solid #000;font-size:11px}
.week-schedule .ws-day{padding:8px 6px;text-align:center;border-right:1px solid #eee}
.week-schedule .ws-day:last-child{border-right:none}
.week-schedule .ws-day .ws-label{font-weight:900;font-family:'Space Mono',monospace;font-size:10px;margin-bottom:3px}
.week-schedule .ws-day .ws-act{display:block;padding:2px 4px;margin:2px 0;font-size:10px;line-height:1.4}
.ws-live{background:var(--indigo);color:#fff}
.ws-lab{background:#d1fae5;color:#065f46}
.ws-rec{background:#e0e7ff;color:#3730a3}
.ws-self{background:#f3f4f6;color:#374151}
.ws-hw{background:#fff7ed;color:#9a3412}
.ws-clinic{background:#fef3c7;color:#92400e}
.ws-demo{background:var(--red);color:#fff}
.ws-1v1{background:var(--purple);color:#fff}
.ws-rest{background:#fafafa}
@media(max-width:768px){.week-schedule{grid-template-columns:repeat(3,1fr)}}
.footer{margin-top:40px;padding:24px;text-align:center;border-top:3px solid var(--border);color:#888;font-size:13px}

/* ============================================ */
/* Mobile Responsive — added 2026-04 */
/* ============================================ */
@media (max-width: 1024px) {
  .c { padding: 24px 16px; }
  .phase-cards { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 768px) {
  /* Base */
  body { font-size: 14px; }
  .c { padding: 20px 12px; max-width: 100%; }

  /* Header */
  .header { padding: 28px 16px; }
  .header h1 { font-size: 24px; line-height: 1.2; letter-spacing: -0.5px; }
  .header .sub { font-size: 13px; }
  .header .nav { font-size: 12px; }
  .header .nav a { display: inline-block; margin: 4px; }
  .tags { gap: 6px; padding: 0 12px; }
  .tag { padding: 4px 10px; font-size: 11px; }

  /* Stats bar */
  .bar { gap: 16px; padding: 14px 12px; }
  .bar .s { min-width: 70px; }
  .bar .n { font-size: 18px; }
  .bar .l { font-size: 10px; }

  /* Box */
  .box { box-shadow: 4px 4px 0 #000; margin-bottom: 20px; }
  .box-h { padding: 12px 16px; font-size: 14px !important; }
  .box-h span[style*="float:right"],
  .box-h span[style*="float: right"] { float: none !important; display: block; margin-top: 4px; opacity: 0.7; }
  .box-h > span:first-child { font-size: 16px !important; display: block; }

  /* Lesson cards */
  .lesson { margin: 12px 14px; }
  .lesson-head { padding: 10px 12px; gap: 6px; }
  .lesson-head h4 { font-size: 14px; flex-basis: 100%; order: -1; margin-bottom: 4px; }
  .lesson-body { grid-template-columns: 1fr !important; gap: 12px; padding: 12px; }
  .lesson-body h5 { font-size: 10px; }
  .lesson-body p { font-size: 13px; }

  /* Grids collapse */
  .grid2, .grid3 { grid-template-columns: 1fr !important; }

  /* Phase cards */
  .phase-cards { grid-template-columns: 1fr !important; gap: 14px; margin: 18px 0; }
  .phase-card { box-shadow: 4px 4px 0 #000; padding: 16px; }
  .phase-card h3 { font-size: 16px; }
  .phase-card .pdesc { font-size: 12px; }

  /* AI self-study */
  .ai-self { padding: 12px 14px; }
  .ai-self-grid { grid-template-columns: 1fr; gap: 8px; }

  /* Learn path */
  .learn-path { margin: 0 14px 12px; }
  .learn-path-head { padding: 8px 12px; flex-wrap: wrap; }
  .learn-path-head .lp-goal { flex-basis: 100%; margin-top: 4px; }
  .lp-item { padding: 8px 12px; flex-wrap: wrap; }
  .lp-desc { flex-basis: 100%; margin-top: 4px; font-size: 12px; }
  .lp-time { margin-left: auto; }

  /* Week schedule (Phase pages) — make horizontally scrollable */
  .week-schedule { display: flex !important; overflow-x: auto; -webkit-overflow-scrolling: touch; gap: 8px; padding: 12px; }
  .week-schedule .ws-day { min-width: 160px; flex-shrink: 0; border: 1px solid #ddd; padding: 8px; }
  .ws-act { display: block; font-size: 11px; padding: 3px 6px; margin: 2px 0; }

  /* Gate */
  .gate { margin: 12px 14px; padding: 14px; flex-wrap: wrap; }
  .gate-text { flex-basis: 100%; }
  .gate-badge { margin-top: 6px; }

  /* Unlock bar */
  .unlock-bar { margin: 12px 14px; }

  /* Inline grids set via inline style — force single column */
  div[style*="grid-template-columns"] { grid-template-columns: 1fr !important; }

  /* Long inline padding/margin overrides */
  div[style*="padding:24px"] { padding: 14px !important; }
  div[style*="padding: 24px"] { padding: 14px !important; }

  /* Tables responsive */
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; }

  /* Footer */
  .footer { padding: 18px 12px; font-size: 12px; }

  /* Buttons (CTA in inline styles) */
  a[style*="padding:14px 32px"],
  a[style*="padding: 14px 32px"] { display: block; text-align: center; padding: 12px 16px !important; font-size: 14px !important; }
}

@media (max-width: 480px) {
  .header h1 { font-size: 20px; }
  .bar { gap: 10px; }
  .bar .s { min-width: 60px; }
  .bar .n { font-size: 16px; }
  .lesson-head h4 { font-size: 13px; }
  .pill { font-size: 10px; padding: 2px 6px; }
}
