:root{
  --cream:#FFF7F9;
  --gold:#C9A84C;
  --gold-deep:#8A6A1F;
  --pink:#EC3C8E;
  --pink-btn:#C81F68;
  --ink:#3d3237;
  --white:#ffffff;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:'Montserrat',sans-serif;
  color:var(--ink);
  background-color:var(--cream);
  background-image:
    linear-gradient(rgba(201,168,76,.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,168,76,.13) 1px, transparent 1px);
  background-size:32px 32px;
  min-height:100vh;
}
h1,h2,h3,.serif{font-family:'Playfair Display',serif}
.script{font-family:'Great Vibes',cursive}
a{color:var(--pink-btn)}

.topbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 22px;border-bottom:1px solid var(--gold);
  background:rgba(255,247,249,.92);position:sticky;top:0;z-index:10;
}
.topbar img{height:44px}
.signout{background:none;border:none;color:var(--gold-deep);font-family:'Montserrat';font-size:13px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;text-decoration:underline}

.wrap{max-width:1060px;margin:0 auto;padding:34px 20px 70px}

.btn{
  display:inline-block;background:var(--pink-btn);color:#fff;border:none;cursor:pointer;
  font-family:'Montserrat';font-weight:600;font-size:14px;letter-spacing:.22em;text-transform:uppercase;
  padding:15px 34px;border-radius:4px;text-decoration:none;text-align:center;
}
.btn:hover{background:#a8185a}
.btn.small{padding:11px 22px;font-size:12px}
.btn.ghost{background:transparent;color:var(--pink-btn);border:1px solid var(--pink-btn)}
.btn.gold{background:var(--gold-deep)}
.btn[disabled]{opacity:.45;cursor:default}

.card{
  background:var(--white);border:1px solid var(--gold);border-radius:8px;
  padding:26px;box-shadow:0 1px 0 rgba(201,168,76,.25);
}

/* login */
.login-hero{max-width:460px;margin:8vh auto 0;text-align:center}
.login-hero img{height:74px;margin-bottom:18px}
.login-hero h1{font-size:30px;color:var(--gold-deep);margin-bottom:6px}
.login-hero p.sub{color:var(--pink);font-weight:600;letter-spacing:.18em;text-transform:uppercase;font-size:12px;margin-bottom:26px}
.login-hero .card{text-align:left}
label{display:block;font-size:12px;letter-spacing.14em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-bottom:8px;letter-spacing:.14em}
input[type=email]{
  width:100%;padding:14px;border:1px solid var(--gold);border-radius:4px;background:#fff;
  font-family:'Montserrat';font-size:15px;margin-bottom:16px;color:var(--ink);
}
.login-err{color:#b00020;font-size:13px;margin-bottom:12px;display:none}
.login-note{font-size:12.5px;color:#8b7d83;margin-top:16px;text-align:center;line-height:1.5}

/* dashboard */
.dash-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:26px}
.dash-head h1{font-size:32px;color:var(--gold-deep)}
.dash-head .hello-script{font-family:'Great Vibes';font-size:34px;color:var(--pink);display:block;line-height:1}
.section-label{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--pink);font-weight:700;margin:34px 0 14px}

.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
.course-card{display:flex;flex-direction:column;gap:10px}
.course-card .num{font-family:'Playfair Display';color:var(--gold);font-size:15px;letter-spacing:.1em}
.course-card h3{font-size:21px;color:var(--ink)}
.course-card .sub{font-size:13px;color:#8b7d83;flex:1}
.progress{height:7px;background:#f3e4ec;border-radius:99px;overflow:hidden}
.progress>div{height:100%;background:var(--pink);border-radius:99px;transition:width .3s}
.progress-label{font-size:11.5px;color:var(--gold-deep);letter-spacing:.06em}

.dl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px}
.dl-card h3{font-size:19px;margin-bottom:6px}
.dl-card p{font-size:13px;color:#8b7d83;margin-bottom:14px;line-height:1.5}
.tag{display:inline-block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:4px 10px;border-radius:99px;margin-bottom:10px}
.tag.included{background:#f6e9f2;color:var(--pink-btn)}
.tag.upgrade{background:#f7f0dd;color:var(--gold-deep)}
.tag.locked{background:#efe8ea;color:#9a8d92}

.upgrade-banner{
  margin-top:38px;border:1px solid var(--gold);border-radius:8px;background:#fff;
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:26px;
  background:linear-gradient(120deg,#fff 60%,#fdf3f8);
}
.upgrade-banner h3{font-size:22px;color:var(--gold-deep);margin-bottom:6px}
.upgrade-banner p{font-size:13.5px;color:#8b7d83;max-width:520px;line-height:1.55}

.community-row{margin-top:26px;text-align:center}
.tools-line{margin-top:44px;text-align:center;font-size:12px;letter-spacing:.1em;color:#a3909a;text-transform:uppercase}

/* course page */
.course-head{display:flex;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.course-head h1{font-size:28px;color:var(--gold-deep)}
.course-head .back{font-size:12px;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;color:var(--pink-btn);font-weight:700}
.course-layout{display:grid;grid-template-columns:300px 1fr;gap:20px;align-items:start}
@media(max-width:860px){.course-layout{grid-template-columns:1fr}}
.lesson-list{padding:10px 0;max-height:70vh;overflow:auto}
.lesson-list ul{list-style:none}
.lesson-list li{border-bottom:1px solid #f1e3ea}
.lesson-item{
  display:flex;gap:10px;align-items:baseline;width:100%;text-align:left;background:none;border:none;cursor:pointer;
  padding:12px 14px;font-family:'Montserrat';font-size:13.5px;color:var(--ink);line-height:1.4;
}
.lesson-item:hover{background:#fdf1f6}
.lesson-item.active{background:#fbe7f1;border-left:3px solid var(--pink)}
.lesson-item .lt{color:var(--gold-deep);font-size:11.5px;min-width:44px;font-weight:600}
.lesson-item .done{color:var(--pink);font-weight:700;margin-left:auto}
.player-card{padding:20px}
.player-wrap{position:relative;padding-top:56.25%;border-radius:6px;overflow:hidden;border:1px solid var(--gold);margin-bottom:16px}
.player-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.player-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.now-playing{font-size:14px;margin-bottom:14px}
.now-playing strong{font-family:'Playfair Display';font-size:17px}
.pending{padding:26px;font-size:14px;color:#8b7d83;line-height:1.6}
