:root{--ink:#22322d;--muted:#7b8b83;--line:#dce9df;--paper:#f7fbf8;--green:#4c9b6d;--orange:#ef9464}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,"PingFang SC","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}header{height:76px;padding:0 max(20px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px;color:#668171}.brand{font-size:19px;font-weight:800}.brand span{color:var(--orange)}main{width:min(1160px,100%);margin:auto;padding:58px 32px 80px}.hero{display:flex;justify-content:space-between;align-items:end;gap:25px}.hero small,.directory-head small{color:#71937e;font-size:10px;font-weight:800;letter-spacing:.15em}.hero h1{margin:14px 0 8px;font-size:46px;color:#2c4d3b}.hero p{margin:0;color:var(--muted);font-size:13px}.summary{text-align:right}.summary strong{display:block;color:var(--green);font:700 34px "DM Mono",monospace}.summary span{color:var(--muted);font-size:10px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:42px}.card{display:flex;align-items:center;gap:15px;min-height:100px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;box-shadow:0 12px 30px #1f412b0a;font:inherit;cursor:pointer}.card:hover{border-color:#abd4b7}.card.featured{background:#eef9f0;border-color:#b9dec3}.card>b{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#e8f5eb;color:var(--green);font:11px "DM Mono",monospace}.card span{display:flex;flex:1;flex-direction:column;gap:5px}.card strong{font-size:14px;color:#355844}.card small{font-size:10px;color:#8b9b91}.card{color:#6fb487;font-size:18px}.directory{margin-top:44px;padding:28px;border:1px solid var(--line);border-radius:17px;background:#fff}.directory-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.directory-head h2{margin:8px 0 0;color:#315642}.directory-head button{padding:8px 11px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#63816e}.chapter{border:1px solid #e2eee5;border-radius:9px;margin:8px 0;overflow:hidden}.chapter-head{display:flex;width:100%;justify-content:space-between;padding:13px 14px;border:0;background:#fbfefb;color:#557563;text-align:left}.chapter-head small{color:#9baa9f}.lessons{display:none;padding:5px 14px 10px 32px}.chapter.open .lessons{display:grid;gap:2px}.lessons a,.lessons button{padding:7px 8px;border:0;border-left:1px solid #d9e9dd;background:transparent;color:#779082;font-size:10px;text-align:left}.lessons a:hover{background:#f1f9f3;color:#3e8158}.lessons button{cursor:not-allowed}.hidden{display:none!important}#toast{position:fixed;right:24px;bottom:24px;padding:11px 15px;border-radius:8px;background:#23342e;color:#fff;font-size:11px;opacity:0;transition:.2s}#toast.show{opacity:1}@media(max-width:700px){main{padding:38px 18px 55px}.hero{align-items:start;flex-direction:column}.summary{text-align:left}.cards{grid-template-columns:1fr}.directory{padding:20px 14px}}
.course-mobile-nav{display:none}
@media(max-width:700px){
  :root{--course-mobile-nav-height:calc(64px + env(safe-area-inset-bottom))}
  html,body{min-height:100%;overflow-x:clip}
  body{padding-bottom:var(--course-mobile-nav-height)}
  header{height:56px;padding:0 16px;padding-top:env(safe-area-inset-top)}
  main{padding:28px 16px calc(18px + var(--course-mobile-nav-height))}
  .hero h1{margin-top:10px;font-size:34px}.cards{margin-top:28px;gap:10px}.card{min-height:88px;padding:15px 16px}.directory{margin-top:28px}
  .course-mobile-nav{position:fixed;z-index:20;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:var(--course-mobile-nav-height);padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(255,255,255,.96);box-shadow:0 -8px 24px rgba(31,65,43,.08);backdrop-filter:blur(14px)}
  .course-mobile-nav a{display:grid;place-items:center;align-content:center;gap:3px;min-width:44px;min-height:44px;border-radius:9px;color:#7a8d82;font-size:10px;font-weight:700;line-height:1}.course-mobile-nav a span{font-size:18px;line-height:16px}.course-mobile-nav a.active{background:#e7f4ea;color:#397653}
  #toast{right:16px;bottom:calc(var(--course-mobile-nav-height) + 12px)}
}
