:root{
  --brand-primary:#3454D1;
  --brand-primary-dark:#2540a8;
  --brand-accent:#22C1A0;
  --brand-bg:#F5F7FB;
  --brand-dark:#1B2340;
  --radius:14px;
}
body{ font-family:'Segoe UI',system-ui,-apple-system,sans-serif; background:var(--brand-bg); color:#1c2333; }
.btn-primary{ background:var(--brand-primary); border-color:var(--brand-primary); }
.btn-primary:hover{ background:var(--brand-primary-dark); border-color:var(--brand-primary-dark); }
.text-primary{ color:var(--brand-primary) !important; }
.bg-primary{ background:var(--brand-primary) !important; }
a{ text-decoration:none; }

/* ---------- Marketing / landing page ---------- */
.hero{
  background:linear-gradient(135deg,var(--brand-dark) 0%,var(--brand-primary) 100%);
  color:#fff; padding:90px 0 110px;
}
.hero h1{ font-weight:800; font-size:2.6rem; }
.hero p.lead{ color:#dbe2ff; }
.feature-card{ border:none; border-radius:var(--radius); box-shadow:0 6px 24px rgba(20,30,70,.06); padding:28px; height:100%; background:#fff; transition:.2s; }
.feature-card:hover{ transform:translateY(-4px); box-shadow:0 14px 30px rgba(20,30,70,.12); }
.feature-icon{ width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:rgba(52,84,209,.1); color:var(--brand-primary); font-size:1.4rem; margin-bottom:14px; }
.price-card{ border-radius:var(--radius); border:1px solid #e7eaf3; background:#fff; padding:34px; height:100%; }
.price-card.featured{ border:2px solid var(--brand-primary); box-shadow:0 20px 40px rgba(52,84,209,.15); position:relative; }
.price-card.featured .ribbon{ position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--brand-accent); color:#fff; padding:4px 16px; border-radius:20px; font-size:.75rem; font-weight:700; }
.price-amount{ font-size:2.6rem; font-weight:800; }
.section-title{ font-weight:800; }
.accordion-button:not(.collapsed){ background:rgba(52,84,209,.08); color:var(--brand-primary-dark); }

/* ---------- App shell (logged-in) ---------- */
.app-shell{ display:flex; min-height:100vh; }
.app-sidebar{ width:250px; background:var(--brand-dark); color:#c9d1f2; flex-shrink:0; position:fixed; top:0; bottom:0; left:0; overflow-y:auto; z-index:1030; transition:.25s; }
.sidebar-brand{ color:#fff; font-weight:700; padding:20px; font-size:1.05rem; display:flex; gap:8px; align-items:center; border-bottom:1px solid rgba(255,255,255,.08); }
.sidebar-nav{ display:flex; flex-direction:column; padding:14px 10px; gap:2px; }
.sidebar-nav a{ color:#c9d1f2; padding:10px 14px; border-radius:8px; font-size:.92rem; display:flex; gap:10px; align-items:center; }
.sidebar-nav a:hover{ background:rgba(255,255,255,.08); color:#fff; }
.sidebar-nav a.active{ background:var(--brand-primary); color:#fff; }
.app-main{ margin-left:250px; flex:1; display:flex; flex-direction:column; min-width:0; }
.app-topbar{ background:#fff; padding:14px 24px; display:flex; align-items:center; box-shadow:0 1px 4px rgba(20,30,70,.06); position:sticky; top:0; z-index:1020; }
.app-content{ padding:24px; }
.stat-card{ background:#fff; border-radius:var(--radius); padding:22px; box-shadow:0 4px 16px rgba(20,30,70,.05); }
.stat-card .stat-num{ font-size:1.9rem; font-weight:800; }
.lesson-card{ background:#fff; border-radius:var(--radius); box-shadow:0 4px 16px rgba(20,30,70,.05); padding:18px; }
.card-section-title{ font-weight:700; color:var(--brand-dark); border-left:4px solid var(--brand-primary); padding-left:10px; margin:22px 0 12px; }

@media(max-width:991px){
  .app-sidebar{ left:-260px; }
  .app-sidebar.open{ left:0; }
  .app-main{ margin-left:0; }
}

/* ---------- Print ---------- */
@media print{
  .no-print{ display:none !important; }
  body{ background:#fff; }
  .printable{ box-shadow:none !important; border:none !important; }
}
