/* =========================================================
   LearnHub LMS — v1.5  "Soft Pastel" vibe
   Heading: Space Grotesk · Body: DM Sans
   Palette: cream #FFF8F4 · blush #FFE3EC · hot pink #FF195E · ink #2B2B3A
   ========================================================= */

:root{
    --lh-accent:#FF195E;
    --lh-accent-2:#FF6FA5;
    --lh-accent-soft:#FFE3EC;
    --lh-cream:#FFF8F4;
    --lh-cream-2:#FFF1E8;
    --lh-mint:#D6F5E6;
    --lh-lilac:#E8E0FF;
    --lh-sun:#FFEAA0;
    --lh-ink:#2B2B3A;
    --lh-ink-2:#5b5b6e;
    --lh-muted:#8a8a9c;
    --lh-line:#1a1a2a14;
    --lh-card:#ffffff;
    --lh-radius:10px;
    --lh-radius-lg:14px;
    --lh-shadow-sticker:0 2px 0 0 var(--lh-ink);
    --lh-shadow-soft:0 6px 18px -10px rgba(255,25,94,.25);
    --lh-shadow-card:0 4px 14px -10px rgba(43,43,58,.18);
    --lh-grad-hero:linear-gradient(135deg,#FFE3EC 0%,#FFF1E8 50%,#E8E0FF 100%);
    --lh-grad-accent:linear-gradient(120deg,#FF195E,#FF6FA5 60%,#FFB199);
    --lh-font-head:"Space Grotesk",ui-sans-serif,system-ui,sans-serif;
    --lh-font-body:"DM Sans",ui-sans-serif,system-ui,sans-serif;
}

/* ---------- Page canvas (vibe background) ---------- */
body.lh-vibe,
body:has(.lh-dashboard),
body:has(.lh-lesson-layout),
body:has(.lh-course),
body:has(.lh-login-wrap){
    background:
        radial-gradient(60% 50% at 8% 0%, var(--lh-accent-soft) 0%, transparent 60%),
        radial-gradient(45% 40% at 100% 10%, var(--lh-lilac) 0%, transparent 60%),
        radial-gradient(50% 50% at 50% 100%, var(--lh-cream-2) 0%, transparent 70%),
        var(--lh-cream);
    background-attachment:fixed;
}

/* ---------- Layout ---------- */
.lh-container,.lh-dashboard{
    max-width:1200px;margin:48px auto;padding:32px;
    color:var(--lh-ink);
    font-family:var(--lh-font-body);
    font-size:16px;line-height:1.6;
    position:relative;
}
.lh-dashboard::before{
    content:"";position:absolute;inset:auto auto 12% -60px;width:160px;height:160px;
    background:var(--lh-sun);border-radius:50%;filter:blur(40px);opacity:.7;z-index:-1;
    animation:lh-float 9s ease-in-out infinite;
}
.lh-dashboard::after{
    content:"";position:absolute;inset:10% -40px auto auto;width:200px;height:200px;
    background:var(--lh-mint);border-radius:50%;filter:blur(50px);opacity:.6;z-index:-1;
    animation:lh-float 12s ease-in-out infinite reverse;
}

@keyframes lh-float{
    0%,100%{transform:translateY(0) translateX(0) scale(1)}
    50%{transform:translateY(-30px) translateX(20px) scale(1.08)}
}

/* ---------- Type ---------- */
h1,h2,h3,h4,.lh-title,.lh-dept-title,.lh-sidebar-title{font-family:var(--lh-font-head);letter-spacing:-.02em;color:var(--lh-ink)}
.lh-title{
    font-size:clamp(2rem,4vw,3rem);font-weight:700;line-height:1.05;margin:0 0 .6rem;
    background:var(--lh-grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.lh-title::after{
    content:"";display:inline-block;width:.6em;height:.6em;margin-left:.35em;border-radius:50%;
    background:var(--lh-accent);box-shadow:0 0 0 6px var(--lh-accent-soft);
    vertical-align:.05em;animation:lh-pulse 2.4s ease-in-out infinite;
}
@keyframes lh-pulse{50%{transform:scale(.7);opacity:.6}}
.lh-dept-title{
    display:inline-block;font-size:1.1rem;margin:0 0 1rem;padding:.4rem .9rem;
    background:#fff;border:1px solid var(--lh-ink);border-radius:8px;
    box-shadow:0 2px 0 0 var(--lh-accent);
}
.lh-meta{display:flex;flex-wrap:wrap;gap:14px;color:var(--lh-ink-2);font-size:.95rem;margin:.4rem 0 1.2rem}
.lh-meta span{background:#fff;border:1px solid var(--lh-line);padding:4px 12px;border-radius:999px}
.lh-short-desc{color:var(--lh-ink-2);font-size:1.08rem;line-height:1.6;margin:0 0 1.2rem;max-width:65ch}

/* ---------- Course cards (sticker style) ---------- */
.lh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:22px;margin-top:22px}
.lh-card{
    display:block;text-decoration:none;color:var(--lh-ink);background:var(--lh-card);
    border:1.5px solid var(--lh-ink);border-radius:var(--lh-radius-lg);overflow:hidden;
    box-shadow:var(--lh-shadow-sticker);
    transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s, background .25s;
    position:relative;
}
.lh-card::before{
    content:"";position:absolute;top:14px;right:14px;width:10px;height:10px;border-radius:50%;
    background:var(--lh-accent);box-shadow:0 0 0 4px #fff,0 0 0 5px var(--lh-accent);opacity:0;transition:.25s;
}
.lh-card:hover{transform:translateY(-2px);box-shadow:0 6px 0 -1px var(--lh-accent)}
.lh-card:hover::before{opacity:1}
.lh-card-img{
    height:160px;background-size:cover;background-position:center;
    background-color:var(--lh-accent-soft);
    background-image:linear-gradient(135deg,var(--lh-accent-soft),var(--lh-lilac));
    border-bottom:1.5px solid var(--lh-ink);
}
.lh-card-body{padding:18px}
.lh-card-body h4{margin:0 0 6px;font-family:var(--lh-font-head);font-size:1.15rem;font-weight:600}
.lh-card-body p{margin:0 0 10px;color:var(--lh-muted);font-size:.92rem}
.lh-card-body small{color:var(--lh-ink-2);font-weight:500}

/* alternate sticker accents */
.lh-grid > .lh-card:nth-child(3n) .lh-card-img{background-image:linear-gradient(135deg,var(--lh-mint),var(--lh-cream-2))}
.lh-grid > .lh-card:nth-child(3n+1) .lh-card-img{background-image:linear-gradient(135deg,var(--lh-lilac),var(--lh-accent-soft))}
.lh-grid > .lh-card:nth-child(3n+2) .lh-card-img{background-image:linear-gradient(135deg,var(--lh-sun),var(--lh-cream-2))}

/* ---------- Progress ---------- */
.lh-progress{height:10px;background:var(--lh-accent-soft);border-radius:999px;overflow:hidden;margin:10px 0;border:1px solid var(--lh-ink)}
.lh-progress-bar{
    height:100%;
    background:var(--lh-grad-accent);
    background-size:200% 100%;
    animation:lh-shine 3s linear infinite;
    transition:width .6s cubic-bezier(.34,1.56,.64,1);
}
@keyframes lh-shine{to{background-position:200% 0}}

/* ---------- Hero / content ---------- */
.lh-hero{
    height:280px;border-radius:var(--lh-radius-lg);background-size:cover;background-position:center;
    margin-bottom:22px;border:1.5px solid var(--lh-ink);box-shadow:var(--lh-shadow-sticker);
}
.lh-content{line-height:1.75;color:var(--lh-ink)}
.lh-content a{color:var(--lh-accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}

/* ---------- Course lesson list ---------- */
.lh-lesson-list{list-style:none;padding:0;margin-top:1rem;display:grid;gap:10px}
.lh-lesson-list li{margin:0}
.lh-lesson-list a{
    display:flex;align-items:center;gap:14px;padding:12px 16px;
    background:#fff;border-radius:10px;color:var(--lh-ink);text-decoration:none;
    border:1px solid var(--lh-ink);box-shadow:0 2px 0 0 var(--lh-ink);
    transition:.15s ease;
}
.lh-lesson-list a:hover{transform:translateY(-1px);box-shadow:0 3px 0 0 var(--lh-accent);background:var(--lh-cream-2)}
.lh-lesson-list .is-done a{background:linear-gradient(90deg,var(--lh-mint),#fff)}
.lh-li-body{flex:1;display:flex;flex-direction:column;min-width:0}
.lh-li-title{font-weight:600;font-family:var(--lh-font-head)}
.lh-li-desc{color:var(--lh-muted);font-size:.86rem;margin-top:2px}
.lh-li-dur{color:var(--lh-accent);font-weight:600;font-size:.85rem;white-space:nowrap;background:var(--lh-accent-soft);padding:4px 10px;border-radius:999px}

.lh-check{
    display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;
    background:#fff;color:var(--lh-ink);font-weight:700;flex-shrink:0;
    border:1.5px solid var(--lh-ink);transition:.2s;
}
.is-done .lh-check{background:var(--lh-accent);color:#fff;transform:rotate(-8deg) scale(1.05)}

/* ---------- Lesson layout w/ sidebar ---------- */
.lh-lesson-layout{display:grid;grid-template-columns:300px 1fr;gap:28px;align-items:start}
@media (max-width:900px){.lh-lesson-layout{grid-template-columns:1fr}}
.lh-sidebar{
    position:sticky;top:24px;background:#fff;border:1.5px solid var(--lh-ink);
    border-radius:var(--lh-radius-lg);padding:22px;box-shadow:var(--lh-shadow-sticker);
}
.lh-sidebar-title{margin:.4rem 0 .8rem;font-size:1.1rem;font-weight:700}
.lh-sidebar-meta{margin:0 0 1rem;color:var(--lh-ink-2);font-size:.9rem;display:inline-block;background:var(--lh-accent-soft);padding:4px 12px;border-radius:999px}
.lh-sidebar-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.lh-sidebar-list li{margin:0}
.lh-sidebar-list a{
    display:flex;align-items:center;gap:10px;padding:11px 13px;background:var(--lh-cream);
    border:1.5px solid transparent;border-radius:12px;color:var(--lh-ink);text-decoration:none;
    font-size:.92rem;transition:.18s;
}
.lh-sidebar-list a:hover{border-color:var(--lh-ink);background:#fff;transform:translateX(2px)}
.lh-sidebar-list .is-current a{
    background:var(--lh-accent);color:#fff;border-color:var(--lh-ink);
    box-shadow:0 2px 0 0 var(--lh-ink);
}
.lh-sidebar-list .is-current .lh-check{background:#fff;color:var(--lh-accent);border-color:#fff}
.lh-sidebar-list .is-current .lh-sb-dur{color:#fff;opacity:.85}
.lh-sidebar-list .is-done a{color:var(--lh-ink-2)}
.lh-sidebar-list .is-done .lh-check{background:var(--lh-mint);color:var(--lh-ink);border-color:var(--lh-ink)}
.lh-sb-text{display:flex;flex-direction:column;flex:1;min-width:0}
.lh-sb-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--lh-font-head)}
.lh-sb-dur{color:var(--lh-muted);font-size:.78rem;margin-top:2px}
.lh-main{min-width:0}

/* ---------- Buttons ---------- */
.lh-btn{
    display:inline-flex;align-items:center;gap:8px;
    background:var(--lh-accent);color:#fff;border:1px solid var(--lh-ink);
    padding:11px 22px;border-radius:8px;cursor:pointer;font-weight:600;
    font-family:var(--lh-font-head);font-size:1rem;letter-spacing:.01em;
    box-shadow:0 2px 0 0 var(--lh-ink);text-decoration:none;
    transition:transform .15s ease, box-shadow .15s, background .2s;
}
.lh-btn:hover{transform:translateY(-1px);box-shadow:0 3px 0 0 var(--lh-ink);color:#fff;background:#ff2e6e}
.lh-btn:active{transform:translateY(1px);box-shadow:0 1px 0 0 var(--lh-ink)}
.lh-btn-sm{padding:8px 14px;font-size:.88rem;border-radius:8px}
.lh-btn-ghost{background:#fff;color:var(--lh-ink)}
.lh-btn-ghost:hover{background:var(--lh-accent-soft);color:var(--lh-ink)}
.lh-back a{
    color:var(--lh-ink-2);text-decoration:none;font-weight:500;display:inline-block;margin-bottom:.6rem;
    transition:.15s;
}
.lh-back a:hover{color:var(--lh-accent);transform:translateX(-3px)}
.lh-pdf{margin:22px 0}

/* ---------- Video ---------- */
.lh-video-wrap{margin:22px 0}
.lh-video{
    width:100%;max-height:560px;background:var(--lh-ink);
    border-radius:var(--lh-radius-lg);border:1.5px solid var(--lh-ink);
    box-shadow:var(--lh-shadow-sticker);
}
.lh-embed{
    position:relative;padding-top:56.25%;border-radius:var(--lh-radius-lg);overflow:hidden;
    border:1.5px solid var(--lh-ink);box-shadow:var(--lh-shadow-sticker);background:var(--lh-ink);
}
.lh-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.lh-video-hint{color:var(--lh-muted);font-size:.85rem;margin-top:10px;font-style:italic}

/* ---------- Quiz ---------- */
.lh-quiz{
    margin-top:28px;padding:26px;background:#fff;
    border-radius:var(--lh-radius-lg);border:1.5px solid var(--lh-ink);
    box-shadow:var(--lh-shadow-sticker);position:relative;
}
.lh-quiz::before{
    content:"QUIZ";position:absolute;top:-12px;left:24px;background:var(--lh-accent);color:#fff;
    font-family:var(--lh-font-head);font-weight:700;font-size:.75rem;letter-spacing:.15em;
    padding:4px 12px;border-radius:8px;border:1.5px solid var(--lh-ink);
}
.lh-quiz h3{font-family:var(--lh-font-head);margin:0 0 1rem;font-size:1.3rem}
.lh-q{margin-bottom:20px}
.lh-q-text{font-weight:600;margin-bottom:10px;font-family:var(--lh-font-head)}
.lh-choice{
    display:block;padding:12px 16px;margin:6px 0;background:var(--lh-cream);
    border-radius:12px;cursor:pointer;border:1.5px solid transparent;transition:.15s;
}
.lh-choice:hover{border-color:var(--lh-ink);background:#fff;transform:translateX(3px)}
.lh-quiz-result{margin-top:16px;font-weight:700;font-family:var(--lh-font-head);font-size:1.05rem}
.lh-quiz-result.pass{color:#0a7a4a}
.lh-quiz-result.fail{color:var(--lh-accent)}

/* ---------- Login ---------- */
.lh-login-wrap{
    min-height:90vh;display:flex;align-items:center;justify-content:center;padding:40px 16px;
    position:relative;overflow:hidden;font-family:var(--lh-font-body);
}
.lh-login-wrap::before,
.lh-login-wrap::after{
    content:"";position:absolute;border-radius:50%;filter:blur(60px);z-index:0;
    animation:lh-float 10s ease-in-out infinite;
}
.lh-login-wrap::before{width:340px;height:340px;background:var(--lh-accent-soft);top:-80px;left:-80px}
.lh-login-wrap::after{width:380px;height:380px;background:var(--lh-lilac);bottom:-100px;right:-80px;animation-delay:-4s}
.lh-login-card{
    position:relative;z-index:1;width:100%;max-width:440px;background:#fff;
    border:1px solid var(--lh-ink);border-radius:12px;padding:40px 34px;
    box-shadow:0 4px 0 0 var(--lh-ink);
    animation:lh-pop .5s cubic-bezier(.34,1.56,.64,1);
}
@keyframes lh-pop{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
.lh-login-title{
    margin:0 0 6px;font-family:var(--lh-font-head);font-size:2rem;font-weight:700;
    text-align:center;
    background:var(--lh-grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.lh-login-sub{margin:0 0 26px;color:var(--lh-muted);text-align:center;font-size:.97rem}
.lh-login-label{display:block;font-weight:600;font-size:.82rem;margin:16px 0 6px;color:var(--lh-ink);font-family:var(--lh-font-head);letter-spacing:.02em;text-transform:uppercase}
.lh-login-input{
    width:100%;padding:12px 14px;border:1px solid var(--lh-ink);border-radius:8px;
    font-size:1rem;background:var(--lh-cream);font-family:var(--lh-font-body);
    transition:.15s;box-sizing:border-box;color:var(--lh-ink);
}
.lh-login-input:focus{outline:none;background:#fff;box-shadow:0 0 0 3px var(--lh-accent-soft)}
.lh-login-remember{display:flex;align-items:center;gap:8px;margin:16px 0 22px;font-size:.9rem;color:var(--lh-ink-2)}
.lh-login-btn-wrap{display:flex;justify-content:center;margin-top:8px}
.lh-login-btn{padding:12px 36px;font-size:1rem;justify-content:center;min-width:180px}
.lh-login-foot{text-align:center;margin:22px 0 0;font-size:.9rem}
.lh-login-foot a{color:var(--lh-accent);text-decoration:none;font-weight:600}
.lh-login-foot a:hover{text-decoration:underline}
.lh-login-error{
    background:#fff0f4;border:1.5px solid var(--lh-accent);color:var(--lh-accent);
    padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:.9rem;text-align:center;font-weight:500;
}

/* ---------- Small fadeup on mount ---------- */
.lh-card,.lh-lesson-list li,.lh-sidebar,.lh-quiz{animation:lh-rise .5s cubic-bezier(.34,1.56,.64,1) both}
.lh-lesson-list li:nth-child(2){animation-delay:.04s}
.lh-lesson-list li:nth-child(3){animation-delay:.08s}
.lh-lesson-list li:nth-child(4){animation-delay:.12s}
.lh-lesson-list li:nth-child(5){animation-delay:.16s}
.lh-grid .lh-card:nth-child(2){animation-delay:.06s}
.lh-grid .lh-card:nth-child(3){animation-delay:.12s}
.lh-grid .lh-card:nth-child(4){animation-delay:.18s}
.lh-grid .lh-card:nth-child(5){animation-delay:.24s}
@keyframes lh-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* ---------- Header (site-wide LearnHub bar) ---------- */
.lh-header{
    position:sticky;top:0;z-index:100;background:#fff;
    border-bottom:1px solid var(--lh-line);
    box-shadow:0 1px 0 rgba(43,43,58,.04);
    font-family:var(--lh-font-body);
}
.lh-header-inner{
    max-width:1200px;margin:0 auto;padding:14px 24px;
    display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.lh-header-logo{display:inline-flex;align-items:center;text-decoration:none;color:var(--lh-ink)}
.lh-header-logo img{max-height:42px;width:auto;display:block}
.lh-header-brand{font-family:var(--lh-font-head);font-weight:700;font-size:1.25rem;color:var(--lh-ink)}
.lh-header-nav{display:flex;align-items:center;gap:14px}
.lh-header-link{color:var(--lh-ink-2);text-decoration:none;font-weight:500;font-size:.95rem}
.lh-header-link:hover{color:var(--lh-accent)}

/* ---------- Admin: departments inline ---------- */
.lh-depts-inline{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));
    gap:24px;margin-top:18px;align-items:start;
}
.lh-dept-block{
    background:#fff;border:1px solid var(--lh-line);border-radius:12px;
    padding:20px;box-shadow:0 2px 0 0 rgba(43,43,58,.04);
}
.lh-dept-block .lh-grid{grid-template-columns:1fr;gap:14px;margin-top:14px}
.lh-dept-block .lh-card-img{height:120px}
