body{background:var(--paper)}

/* ---------------- Loading ---------------- */
/* ---------------- Loading (skeleton) ---------------- */
.ws-loading{min-height:100vh;padding:0 0 60px}
.order-title{font-size:19px;font-weight:700;margin-bottom:14px}

.skel{
  background:linear-gradient(90deg, var(--line) 25%, var(--paper-raised) 50%, var(--line) 75%);
  background-size:200% 100%;
  animation:skel-shimmer 1.4s ease-in-out infinite;
  border-radius:6px;
}
@keyframes skel-shimmer{
  0%{background-position:200% 0}
  100%{background-position:-200% 0}
}
.skel-logo{width:96px;height:26px}
.skel-pill{width:110px;height:34px;border-radius:8px}
.skel-badge{width:90px;height:26px;border-radius:8px;margin-bottom:16px}
.skel-line{height:16px;margin-bottom:10px}
.skel-title{height:32px;width:70%;margin-bottom:14px}
.skel-subhead{height:20px;width:140px;margin:18px 0 14px}
.skel-block{border-radius:10px}

/* ---------------- Locked state (course landing page) ---------------- */
.ws-locked{min-height:100vh;padding:0 0 60px}
.ws-locked-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 32px;border-bottom:1px solid var(--line);margin-bottom:36px;
}
.ws-locked-hero{
  max-width:1100px;margin:0 auto;padding:0 24px;
  display:grid;grid-template-columns:1fr 400px;gap:44px;align-items:start;
}
.ws-locked-title{font-family:var(--font-display);font-size:clamp(24px,3.4vw,34px);font-weight:800;line-height:1.2;margin:0 0 12px}
.ws-locked-sub{color:var(--ink-soft);font-size:14.5px;margin-bottom:16px}
.ws-locked-desc{font-size:15px;color:var(--ink);line-height:1.6;margin-bottom:30px}
.ws-curriculum-head{font-family:var(--font-display);font-size:19px;font-weight:700;margin-bottom:14px}

.order-badge{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;margin-bottom:16px;
}
.order-badge.ok{background:#EAFBF2;color:var(--green)}
.order-badge.err{background:#FDEDEA;color:#C4392C}

.ws-syllabus-preview{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.ws-syllabus-group{border-bottom:1px solid var(--line)}
.ws-syllabus-group:last-child{border-bottom:none}
.ws-syllabus-group-title{
  padding:10px 14px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;
  color:var(--ink-soft);background:var(--paper);display:flex;align-items:center;gap:8px;
}
.ws-syllabus-count{
  background:var(--blue-tint);color:var(--blue-deep);font-size:11px;font-weight:700;
  padding:1px 7px;border-radius:20px;text-transform:none;letter-spacing:0;
}
.ws-syllabus-group ul{list-style:none;margin:0;padding:0 14px 12px}
.ws-syllabus-group li{font-size:13.5px;color:var(--ink);padding:4px 0;display:flex;align-items:center;gap:8px}
.ws-syllabus-group li svg{flex-shrink:0;color:var(--ink-soft)}

.ws-buy-card{
  position:sticky;top:24px;
  background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg);
  overflow:hidden;box-shadow:var(--shadow-md);
}
.ws-buy-thumb{width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,var(--blue),var(--blue-deep));overflow:hidden}
.ws-buy-thumb img,.ws-buy-thumb iframe,.ws-buy-thumb wistia-player{width:100%;height:100%;object-fit:cover;display:block;border:0}
.ws-buy-body{padding:20px}
.ws-buy-price{font-family:var(--font-mono);font-weight:700;font-size:26px;margin-bottom:16px}
.ws-buy-price small{font-weight:500;font-size:13px;color:var(--ink-soft);text-decoration:line-through;margin-left:8px}

@media (max-width:820px){
  .ws-locked-hero{grid-template-columns:1fr}
  .ws-buy-card{position:static}
}

/* ---------------- Unlocked workspace ---------------- */
#wsTabLabel{color:var(--ink-soft);font-size:14px;margin-top:4px}

#wsShell .admin-nav-btn{
  display:flex;align-items:center;gap:10px;
  transition:background .18s ease, color .18s ease, padding-left .18s ease;
}
#wsShell .admin-nav-btn:hover{padding-left:20px}
#wsShell .admin-nav-btn svg{flex-shrink:0}
.ws-nav-label{flex:1;text-align:left}
.ws-nav-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}
#wsShell .admin-nav-btn.active .ws-nav-dot{background:#fff}

.ws-lesson-card{
  background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-md);
  padding:22px;margin-bottom:18px;
  transition:box-shadow .18s ease, border-color .18s ease;
}
.ws-lesson-card:hover{box-shadow:var(--shadow-sm);border-color:var(--line-strong)}
.ws-lesson-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}
.ws-lesson-num{
  width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;flex-shrink:0;
}
.ws-lesson-title{font-family:var(--font-display);font-size:17px;font-weight:700}
.ws-lesson-desc{color:var(--ink-soft);font-size:14px;margin-bottom:16px}

.ws-video-wrap{
  position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;
  background:#0B1526;margin-bottom:14px;
}
.ws-video-wrap iframe,.ws-video-wrap video,.ws-video-wrap wistia-player{width:100%;height:100%;border:0;display:block}
.ws-video-link{
  display:flex;align-items:center;justify-content:center;height:100%;color:#fff;
  font-size:14px;font-weight:600;text-decoration:none;flex-direction:column;gap:8px;
}
.ws-video-link small{color:rgba(255,255,255,.6);font-weight:400}

.ws-file-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 16px;border-radius:8px;border:1.5px solid var(--line-strong);
  font-size:13.5px;font-weight:600;color:var(--blue-deep);background:var(--blue-tint);
}
.ws-file-btn:hover{border-color:var(--blue)}

.ws-empty-tab{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  color:var(--ink-soft);font-size:14px;padding:50px 0;text-align:center;
}
.ws-empty-tab svg{opacity:.5}

@media (max-width:820px){
  .ws-lesson-card{padding:16px}
}


.ws-mobile-home{
  display:none;
}
@media (max-width:820px){
  .ws-mobile-home{
    display:flex;align-items:center;gap:8px;
    padding:14px 20px;border-bottom:1px solid var(--line);
    background:var(--paper-raised);color:var(--ink);text-decoration:none;
    font-size:13.5px;font-weight:600;
    position:sticky;top:0;z-index:10;
  }
  .ws-mobile-home img{height:22px}
}
