@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700&family=DM+Sans:opsz,wght@9..40,400;9..40,500&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{--bg:#0d1117;--surface:#161b22;--bd:#30363d;--tx:#e6edf3;--mt:#848d97;--acc:#58a6ff;--acc-h:#79b8ff;--r:12px;}
.sam-body{background:var(--bg);color:var(--tx);font-family:'DM Sans',sans-serif;min-height:100vh;-webkit-font-smoothing:antialiased;}
.sam-wrap{min-height:100vh;}

/* LOGIN */
.sam-login-wrap{display:flex;align-items:center;justify-content:center;padding:40px 20px;background:radial-gradient(ellipse 80% 60% at 50% -10%,#1f6feb33,transparent);min-height:100vh;}
.sam-login-box{background:var(--surface);border:1px solid var(--bd);border-radius:18px;padding:48px 44px;width:100%;max-width:420px;box-shadow:0 24px 64px rgba(0,0,0,.5);}
.sam-logo{font-family:'Sora',sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--acc);margin-bottom:26px;}
.sam-login-box h1{font-family:'Sora',sans-serif;font-size:1.55rem;font-weight:700;margin-bottom:28px;line-height:1.2;}
.sam-alert{padding:11px 15px;border-radius:8px;font-size:.875rem;margin-bottom:20px;background:#f8514920;border:1px solid #f8514950;color:#f85149;}
.sam-form{display:flex;flex-direction:column;gap:16px;}
.sam-field{display:flex;flex-direction:column;gap:6px;}
.sam-field label{font-size:.73rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--mt);}
.sam-field input{background:var(--bg);border:1px solid var(--bd);border-radius:8px;color:var(--tx);font-family:inherit;font-size:.95rem;padding:12px 14px;outline:none;transition:border .15s,box-shadow .15s;width:100%;}
.sam-field input::placeholder{color:var(--mt);}
.sam-field input:focus{border-color:var(--acc);box-shadow:0 0 0 3px #58a6ff22;}
.sam-btn-login{background:var(--acc);border:none;border-radius:8px;color:#0d1117;cursor:pointer;font-family:'Sora',sans-serif;font-size:.95rem;font-weight:700;margin-top:4px;padding:14px;transition:background .15s;width:100%;}
.sam-btn-login:hover{background:var(--acc-h);}

/* HEADER */
.sam-header{background:var(--surface);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:50;}
.sam-header-inner{max-width:860px;margin:0 auto;padding:0 24px;height:58px;display:flex;align-items:center;justify-content:space-between;gap:16px;}
.sam-site-name{font-family:'Sora',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);}
.sam-back{color:var(--mt);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;}
.sam-back:hover{color:var(--tx);}
.sam-user-bar{display:flex;align-items:center;gap:14px;font-size:.85rem;color:var(--mt);}
.sam-user-bar strong{color:var(--tx);}
.sam-logout{background:none;border:1px solid var(--bd);border-radius:6px;color:var(--mt);cursor:pointer;font-family:inherit;font-size:.78rem;padding:4px 11px;transition:all .15s;}
.sam-logout:hover{border-color:#f85149;color:#f85149;}

/* MAIN */
.sam-main{max-width:860px;margin:0 auto;padding:36px 24px 80px;}
.sam-section-title{font-family:'Sora',sans-serif;font-size:1.05rem;font-weight:700;margin-bottom:18px;}

/* COURSE LIST */
.sam-course-list{list-style:none;display:flex;flex-direction:column;gap:10px;}
.sam-course-link{display:flex;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--bd);border-radius:var(--r);padding:20px 22px;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;}
.sam-course-link:hover{border-color:var(--acc);background:#58a6ff08;transform:translateX(3px);}
.sam-course-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;}
.sam-course-title{font-family:'Sora',sans-serif;font-size:1.05rem;font-weight:700;color:var(--tx);}
.sam-course-desc{font-size:.85rem;color:var(--mt);}
.sam-course-meta{font-size:.75rem;font-weight:600;color:var(--acc);background:#1f6feb18;border:1px solid #58a6ff28;border-radius:6px;padding:4px 10px;white-space:nowrap;flex-shrink:0;}

/* COURSE HEADER */
.sam-course-header{margin-bottom:28px;padding-bottom:24px;border-bottom:1px solid var(--bd);}
.sam-course-header h2{font-family:'Sora',sans-serif;font-size:1.6rem;font-weight:700;color:var(--tx);margin-bottom:8px;}
.sam-course-lead{color:var(--mt);font-size:.95rem;line-height:1.6;margin-bottom:12px;}
.sam-course-count{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acc);background:#1f6feb18;border:1px solid #58a6ff28;border-radius:6px;padding:4px 10px;}

/* LESSON LIST */
.sam-lesson-list{list-style:none;display:flex;flex-direction:column;gap:9px;}
.sam-lesson-link{display:flex;align-items:center;gap:18px;background:var(--surface);border:1px solid var(--bd);border-radius:var(--r);padding:17px 20px;text-decoration:none;transition:border-color .15s,background .15s,transform .15s;}
.sam-lesson-link:hover{border-color:var(--acc);background:#58a6ff08;transform:translateX(3px);}
.sam-lesson-num{font-family:'Sora',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--acc);background:#1f6feb18;border:1px solid #58a6ff28;border-radius:6px;padding:5px 9px;white-space:nowrap;flex-shrink:0;}
.sam-lesson-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;}
.sam-lesson-title{font-size:.97rem;font-weight:600;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sam-lesson-desc{font-size:.8rem;color:var(--mt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sam-has-audio{font-size:.95rem;flex-shrink:0;}
.sam-arrow{color:var(--bd);font-size:.95rem;transition:color .15s,transform .15s;flex-shrink:0;}
.sam-lesson-link:hover .sam-arrow{color:var(--acc);transform:translateX(2px);}
.sam-empty{color:var(--mt);font-style:italic;padding:40px 0;text-align:center;}

/* LESSON HEADER */
.sam-lesson-header{margin-bottom:32px;padding-bottom:26px;border-bottom:1px solid var(--bd);}
.sam-lesson-badge{display:inline-block;font-family:'Sora',sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);background:#1f6feb18;border:1px solid #58a6ff28;border-radius:6px;padding:4px 10px;margin-bottom:12px;}
.sam-lesson-header h1{font-family:'Sora',sans-serif;font-size:1.85rem;font-weight:700;line-height:1.2;color:var(--tx);letter-spacing:-.02em;margin-bottom:10px;}
.sam-lesson-lead{color:var(--mt);font-size:1rem;line-height:1.6;}

/* AUDIO PLAYER */
.sam-audio-player{background:var(--surface);border:1px solid var(--bd);border-radius:14px;padding:22px 24px;margin-bottom:32px;}
.sam-audio-player audio{display:none;}
.sam-audio-label{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mt);margin-bottom:14px;}
.sam-player{display:flex;align-items:center;gap:16px;}
.sam-play-btn{background:var(--acc);border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s,transform .1s;color:#0d1117;}
.sam-play-btn:hover{background:var(--acc-h);}
.sam-play-btn:active{transform:scale(.92);}
.sam-play-btn svg{width:22px;height:22px;}
.sam-progress-wrap{flex:1;display:flex;flex-direction:column;gap:6px;}
.sam-seek-slider{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:99px;background:var(--bd);outline:none;cursor:pointer;transition:height .15s;display:block;}
.sam-seek-slider:hover{height:7px;}
.sam-seek-slider:focus{outline:2px solid var(--acc);outline-offset:3px;height:7px;}
.sam-seek-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--acc);cursor:pointer;}
.sam-seek-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--acc);border:none;cursor:pointer;}
.sam-seek-slider::-moz-range-progress{background:var(--acc);border-radius:99px;}
.sam-time-row{display:flex;justify-content:space-between;font-size:.72rem;color:var(--mt);font-variant-numeric:tabular-nums;}
.sam-volume-wrap{display:flex;align-items:center;gap:7px;flex-shrink:0;}
.sam-vol-icon{width:18px;height:18px;color:var(--mt);flex-shrink:0;}
.sam-volume-slider{-webkit-appearance:none;appearance:none;width:70px;height:4px;background:var(--bd);border-radius:99px;outline:none;cursor:pointer;}
.sam-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:var(--acc);border-radius:50%;cursor:pointer;}
.sam-volume-slider::-moz-range-thumb{width:12px;height:12px;background:var(--acc);border-radius:50%;border:none;cursor:pointer;}
.sam-vol-pct{font-size:.7rem;color:var(--mt);width:28px;text-align:right;font-variant-numeric:tabular-nums;}
.sam-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* LESSON CONTENT */
.sam-lesson-content{line-height:1.78;font-size:1rem;color:#cdd9e5;margin-bottom:40px;}
.sam-lesson-content h2{font-family:'Sora',sans-serif;font-size:1.25rem;font-weight:700;color:var(--tx);margin:2em 0 .6em;}
.sam-lesson-content h3{font-family:'Sora',sans-serif;font-size:1.05rem;font-weight:600;color:var(--tx);margin:1.6em 0 .4em;}
.sam-lesson-content p{margin-bottom:1.2em;}
.sam-lesson-content a{color:var(--acc);}
.sam-lesson-content ul,.sam-lesson-content ol{margin:0 0 1.2em 1.4em;}
.sam-lesson-content li{margin-bottom:.35em;}
.sam-lesson-content blockquote{border-left:3px solid var(--acc);padding-left:16px;color:var(--mt);font-style:italic;margin:1.4em 0;}
.sam-lesson-content img{max-width:100%;border-radius:10px;margin:1em 0;}
.sam-lesson-content iframe{max-width:100%;border-radius:10px;margin:1em 0;display:block;}
.sam-lesson-content video{max-width:100%;border-radius:10px;margin:1em 0;}
.sam-lesson-content pre{background:#0d1117;border:1px solid var(--bd);border-radius:8px;padding:16px;overflow-x:auto;font-size:.875rem;margin:1.2em 0;}
.sam-lesson-content code{background:#0d1117;border-radius:4px;padding:2px 6px;font-size:.875em;}
.sam-lesson-content pre code{padding:0;background:none;}
.sam-lesson-content hr{border:none;border-top:1px solid var(--bd);margin:2em 0;}

/* BACK BUTTON */
.sam-back-to-list{margin-bottom:28px;padding-bottom:28px;border-bottom:1px solid var(--bd);}
.sam-back-btn{display:inline-flex;align-items:center;gap:8px;color:var(--mt);font-size:.875rem;font-weight:500;text-decoration:none;padding:9px 16px;border:1px solid var(--bd);border-radius:8px;background:var(--surface);transition:color .15s,border-color .15s,background .15s;}
.sam-back-btn:hover{color:var(--tx);border-color:var(--acc);background:#58a6ff08;}

/* NAV */
.sam-lesson-nav{display:flex;justify-content:space-between;gap:14px;padding-top:24px;border-top:1px solid var(--bd);}
.sam-nav-btn{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r);color:var(--tx);display:flex;flex-direction:column;gap:3px;max-width:48%;padding:14px 18px;text-decoration:none;transition:border-color .15s,background .15s;}
.sam-nav-btn:hover{border-color:var(--acc);background:#58a6ff08;}
.sam-nav-label{font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mt);}
.sam-nav-title{font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sam-nav-next{text-align:right;margin-left:auto;}

@media(max-width:600px){
    .sam-login-box{padding:32px 22px;}
    .sam-lesson-header h1{font-size:1.35rem;}
    .sam-lesson-link{padding:13px 14px;gap:10px;}
    .sam-volume-wrap{display:none;}
    .sam-nav-btn{max-width:100%;}
    .sam-lesson-nav{flex-direction:column;}
}

/* Extra links */
.sam-extra-links{background:var(--surface);border:1px solid var(--bd);border-radius:14px;padding:20px 24px;margin-bottom:32px;}
.sam-extra-links-title{font-family:'Sora',sans-serif;font-size:.85rem;font-weight:700;color:var(--mt);letter-spacing:.06em;text-transform:uppercase;margin-bottom:14px;}
.sam-extra-links-list{list-style:none;display:flex;flex-direction:column;gap:8px;}
.sam-extra-link{display:inline-flex;align-items:center;gap:10px;color:var(--acc);text-decoration:none;font-size:.9rem;font-weight:500;padding:9px 14px;border:1px solid #58a6ff28;border-radius:8px;background:#1f6feb0d;transition:background .15s,border-color .15s;}
.sam-extra-link:hover{background:#1f6feb22;border-color:var(--acc);}
.sam-extra-link-icon{font-size:.75rem;font-weight:700;flex-shrink:0;}

/* ---- TERM OF USE ---- */
.sam-term-main { display:flex; align-items:flex-start; justify-content:center; padding:40px 24px 80px; }
.sam-term-box {
    background: var(--surface);
    border: 1px solid var(--bd);
    border-radius: 18px;
    width: 100%;
    max-width: 720px;
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,.4);
}
.sam-term-header {
    padding: 32px 36px 24px;
    border-bottom: 1px solid var(--bd);
    text-align: center;
}
.sam-term-icon { font-size: 2rem; display: block; margin-bottom: 12px; }
.sam-term-header h2 {
    font-family: 'Sora', sans-serif;
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--tx);
    margin-bottom: 8px;
}
.sam-term-header p { color: var(--mt); font-size: .9rem; }
.sam-term-header p strong { color: var(--acc); }

.sam-term-content {
    padding: 28px 36px;
    max-height: 360px;
    overflow-y: auto;
    border-bottom: 1px solid var(--bd);
    scrollbar-width: thin;
    scrollbar-color: var(--bd) transparent;
}
.sam-term-content::-webkit-scrollbar { width: 6px; }
.sam-term-content::-webkit-scrollbar-thumb { background: var(--bd); border-radius: 99px; }

.sam-term-content h2 {
    font-family: 'Sora', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--tx);
    margin: 0 0 20px;
}
.sam-term-content ol {
    padding-left: 20px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-bottom: 20px;
}
.sam-term-content li {
    color: #cdd9e5;
    font-size: .9rem;
    line-height: 1.7;
}
.sam-term-content li strong {
    display: block;
    color: var(--tx);
    margin-bottom: 4px;
    font-size: .88rem;
}


.sam-term-footer {
    padding: 24px 36px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.sam-term-check-label {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    font-size: .88rem;
    font-weight: 500;
    color: var(--tx);
    line-height: 1.6;
}
.sam-term-check-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: var(--acc);
    cursor: pointer;
    flex-shrink: 0;
}
.sam-term-btn {
    background: var(--acc);
    border: none;
    border-radius: 8px;
    color: #0d1117;
    cursor: pointer;
    font-family: 'Sora', sans-serif;
    font-size: .95rem;
    font-weight: 700;
    padding: 14px 24px;
    transition: background .15s, opacity .15s, transform .1s;
    align-self: flex-end;
}
.sam-term-btn:disabled { opacity: .35; cursor: not-allowed; }
.sam-term-btn:not(:disabled):hover { background: var(--acc-h); }
.sam-term-btn:not(:disabled):active { transform: scale(.97); }

.sam-term-error {
    margin: 0 36px 20px;
    padding: 10px 14px;
    background: #f8514920;
    border: 1px solid #f8514950;
    color: #f85149;
    border-radius: 8px;
    font-size: .875rem;
}

@media (max-width: 600px) {
    .sam-term-header, .sam-term-content, .sam-term-footer { padding-left: 20px; padding-right: 20px; }
    .sam-term-footer { flex-direction: column; align-items: flex-start; }
    .sam-term-btn { width: 100%; text-align: center; }
}

/* PDF notice */
.sam-pdf-notice {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    background: #1f6feb18;
    border: 1px solid #58a6ff28;
    border-radius: 10px;
    font-size: .9rem;
    color: var(--tx);
}
.sam-btn-pdf {
    margin-left: auto;
    padding: 8px 16px;
    background: var(--acc);
    color: #0d1117;
    border-radius: 7px;
    text-decoration: none;
    font-weight: 700;
    font-size: .82rem;
    white-space: nowrap;
}
.sam-btn-pdf:hover { background: var(--acc-h); }

/* ---- QUIZ ---- */
.sam-quiz {
    background: var(--surface);
    border: 1px solid var(--bd);
    border-radius: 14px;
    padding: 24px 28px;
    margin-bottom: 32px;
}
.sam-quiz-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.sam-quiz-header h3 {
    font-family: 'Sora', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: var(--tx);
    margin: 0;
}
.sam-quiz-status {
    font-size: .82rem;
    font-weight: 600;
    padding: 6px 14px;
    border-radius: 20px;
}
.sam-quiz-status.passed  { background: #16a34a22; color: #4ade80; }
.sam-quiz-status.failed  { background: #dc262622; color: #f87171; }
.sam-attempts-left { font-weight: 400; color: var(--mt); margin-left: 6px; }

.sam-quiz-question { margin-bottom: 24px; }
.sam-quiz-q-text {
    font-size: .95rem;
    color: var(--tx);
    margin-bottom: 12px;
    line-height: 1.5;
}
.sam-quiz-options { display: flex; flex-direction: column; gap: 8px; }
.sam-quiz-question {
    border: none;
    padding: 0;
    margin: 0 0 24px;
}
.sam-quiz-q-num { margin-right: 4px; color: var(--acc); }

.sam-quiz-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--bg);
    border: 2px solid var(--bd);
    border-radius: 8px;
    cursor: pointer;
    transition: border-color .15s, background .15s, box-shadow .15s;
    font-size: .9rem;
    color: var(--tx);
    position: relative;
    user-select: none;
    -webkit-user-select: none;
}
.sam-quiz-option:hover {
    border-color: var(--acc);
    background: #58a6ff08;
}

/* Native radio hidden but accessible */
.sam-quiz-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 1px; height: 1px;
    margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0);
}

/* Focus ring — critical for keyboard/screen reader users */
.sam-quiz-option input[type="radio"]:focus + .sam-quiz-option-letter {
    outline: 3px solid var(--acc);
    outline-offset: 2px;
}
.sam-quiz-option:focus-within {
    border-color: var(--acc);
    box-shadow: 0 0 0 3px #58a6ff33;
}

/* Selected state — driven by JS class .is-selected */
.sam-quiz-option.is-selected {
    border-color: var(--acc);
    background: #58a6ff18;
}
.sam-quiz-option.is-selected .sam-quiz-option-letter {
    background: var(--acc);
    color: #0d1117;
}
.sam-quiz-option.is-selected .sam-quiz-check-icon::before { content: ''; }

.sam-quiz-option-letter {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--bd);
    display: flex; align-items: center; justify-content: center;
    font-size: .78rem; font-weight: 700;
    flex-shrink: 0;
    transition: background .15s, color .15s;
}
.sam-quiz-option-text { flex: 1; line-height: 1.4; }

/* Check icon */
.sam-quiz-check-icon {
    width: 20px; height: 20px;
    border-radius: 50%;
    border: 2px solid var(--bd);
    flex-shrink: 0;
    transition: all .15s;
    display: flex; align-items: center; justify-content: center;
    font-size: .7rem;
}
.sam-quiz-option.is-selected .sam-quiz-check-icon {
    background: var(--acc);
    border-color: var(--acc);
    color: #0d1117;
    font-weight: 700;
}
.sam-quiz-option.is-selected .sam-quiz-check-icon::before { content: '✓'; }

/* After submission feedback */
.sam-quiz-option.correct-answer {
    border-color: #3fb950;
    background: #3fb95018;
    pointer-events: none;
}
.sam-quiz-option.correct-answer .sam-quiz-option-letter { background: #3fb950; color: #0d1117; }
.sam-quiz-option.correct-answer .sam-quiz-check-icon { background: #3fb950; border-color: #3fb950; color: #0d1117; }
.sam-quiz-option.correct-answer .sam-quiz-check-icon::before { content: '✓'; }

.sam-quiz-option.wrong-answer {
    border-color: #f85149;
    background: #f8514918;
    pointer-events: none;
}
.sam-quiz-option.wrong-answer .sam-quiz-option-letter { background: #f85149; color: #fff; }
.sam-quiz-option.wrong-answer .sam-quiz-check-icon { background: #f85149; border-color: #f85149; color: #fff; }
.sam-quiz-option.wrong-answer .sam-quiz-check-icon::before { content: '✕'; }

.sam-quiz-submit {
    background: var(--acc);
    border: none;
    border-radius: 8px;
    color: #0d1117;
    cursor: pointer;
    font-family: 'Sora', sans-serif;
    font-size: .9rem;
    font-weight: 700;
    padding: 13px 28px;
    margin-top: 8px;
    transition: background .15s;
    width: 100%;
}
.sam-quiz-submit:hover { background: var(--acc-h); }
.sam-quiz-submit:disabled { opacity: .5; cursor: not-allowed; }

.sam-quiz-msg {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: .9rem;
    font-weight: 600;
    margin-bottom: 14px;
}
.sam-quiz-msg.passed { background: #3fb95022; border: 1px solid #3fb95044; color: #3fb950; }
.sam-quiz-msg.failed { background: #f8514922; border: 1px solid #f8514944; color: #f85149; }

/* Course progress bar */
.sam-course-progress {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--bd);
    font-size: .82rem;
    color: var(--mt);
}
.sam-course-progress-bar {
    height: 6px;
    background: var(--bd);
    border-radius: 99px;
    overflow: hidden;
    margin-bottom: 8px;
}
.sam-course-progress-fill {
    height: 100%;
    background: var(--acc);
    border-radius: 99px;
    transition: width .4s ease;
}
.sam-course-progress strong { color: var(--tx); }

/* Certificate ready */
.sam-cert-ready {
    margin-top: 16px;
    padding: 16px 20px;
    background: #3fb95018;
    border: 1px solid #3fb95044;
    border-radius: 10px;
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: .9rem;
    color: var(--tx);
    flex-wrap: wrap;
}
.sam-cert-btn {
    margin-left: auto;
    padding: 8px 18px;
    background: #3fb950;
    color: #0d1117;
    border-radius: 7px;
    text-decoration: none;
    font-weight: 700;
    font-size: .85rem;
    white-space: nowrap;
}
.sam-cert-btn:hover { background: #4ade80; }

/* Professor on course page */
.sam-course-professor {
    color: var(--mt);
    font-size: .88rem;
    margin-bottom: 8px;
}
.sam-course-professor strong { color: var(--acc); }

/* Course meta row (aulas + duração) */
.sam-course-meta-row {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 8px;
}
.sam-course-duration {
    font-size: .78rem;
    font-weight: 600;
    color: var(--mt);
    letter-spacing: .03em;
}

/* Quiz open button */
.sam-quiz-open-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 14px 20px;
    background: #1f6feb18;
    border: 2px solid #58a6ff44;
    border-radius: 10px;
    color: var(--acc);
    font-family: 'Sora', sans-serif;
    font-size: .9rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s, border-color .15s, transform .1s;
    text-align: left;
    margin-bottom: 0;
}
.sam-quiz-open-btn:hover {
    background: #1f6feb28;
    border-color: var(--acc);
    transform: translateX(2px);
}
.sam-quiz-open-btn:active { transform: scale(.98); }
.sam-quiz-open-btn::after {
    content: '→';
    margin-left: auto;
    font-size: 1rem;
    transition: transform .2s;
}
.sam-quiz-open-btn[aria-expanded="true"]::after {
    transform: rotate(90deg);
}

#sam-quiz-form-wrap {
    margin-top: 16px;
    animation: quizReveal .25s ease;
}
@keyframes quizReveal {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Gabarito */
.sam-quiz-gabarito-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding: 9px 18px;
    background: none;
    border: 1px solid var(--bd);
    border-radius: 8px;
    color: var(--mt);
    font-family: 'Sora', sans-serif;
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .15s, color .15s;
}
.sam-quiz-gabarito-btn:hover { border-color: var(--acc); color: var(--acc); }

.sam-quiz-gabarito {
    margin-top: 16px;
    padding: 16px 18px;
    background: var(--bg);
    border: 1px solid var(--bd);
    border-radius: 10px;
    font-size: .875rem;
    animation: quizReveal .2s ease;
}
.sam-quiz-gabarito ol {
    list-style: decimal;
    padding-left: 18px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sam-quiz-gabarito li { color: var(--tx); line-height: 1.5; }
.sam-quiz-gabarito li strong { color: var(--acc); }

/* Course page progress (more prominent than lesson version) */
.sam-course-progress-main {
    margin-top: 28px;
    padding: 20px 24px;
    background: var(--surface);
    border: 1px solid var(--bd);
    border-radius: 14px;
}
.sam-course-progress-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
}
.sam-course-progress-title {
    font-family: 'Sora', sans-serif;
    font-size: .85rem;
    font-weight: 700;
    color: var(--tx);
}
.sam-course-progress-pct {
    font-size: 1.1rem;
    color: var(--acc);
}
.sam-course-progress-detail {
    display: block;
    font-size: .78rem;
    color: var(--mt);
    margin-top: 8px;
}

/* Quiz question H2 heading */
.sam-quiz-q-heading {
    font-family: 'Sora', sans-serif;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--acc);
    margin: 0 0 6px;
    padding: 0;
}

/* Visual card separation between questions */
.sam-quiz-question {
    border: none;
    padding: 0;
    margin: 0;
}
.sam-quiz-q-heading + fieldset.sam-quiz-question,
.sam-quiz-q-heading ~ fieldset {
    margin-bottom: 0;
}

/* Wrap each question block */
#sam-quiz-form > h2.sam-quiz-q-heading {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--bd);
}
#sam-quiz-form > h2.sam-quiz-q-heading:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

/* Enrollment number in portal header */
.sam-user-enrollment {
    font-family: monospace;
    font-size: .75rem;
    font-weight: 700;
    color: var(--acc);
    background: #1f6feb18;
    border: 1px solid #58a6ff28;
    border-radius: 6px;
    padding: 2px 8px;
    letter-spacing: .05em;
    margin-left: 4px;
}

/* Attachments in portal */
.sam-attachments { margin-bottom: 24px; }
.sam-attachments-title {
    font-family: 'Sora', sans-serif;
    font-size: .85rem;
    font-weight: 700;
    color: var(--tx);
    margin-bottom: 10px;
}
.sam-attachments-list-portal {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sam-attachment-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--surface);
    border: 1px solid var(--bd);
    border-radius: 10px;
    text-decoration: none;
    color: var(--tx);
    transition: border-color .15s, background .15s;
}
.sam-attachment-link:hover {
    border-color: var(--acc);
    background: #58a6ff08;
}
.sam-att-icon-portal { font-size: 1.3rem; flex-shrink: 0; }
.sam-att-info { flex: 1; min-width: 0; }
.sam-att-name-portal {
    display: block;
    font-size: .875rem;
    font-weight: 600;
    color: var(--tx);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sam-att-size-portal {
    display: block;
    font-size: .72rem;
    color: var(--mt);
    margin-top: 1px;
}
.sam-att-download {
    font-size: 1rem;
    color: var(--acc);
    flex-shrink: 0;
}

/* Module headings in lesson list */
.sam-lesson-list .sam-module-heading {
    padding: 10px 16px 6px;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--acc, #58a6ff);
    background: transparent;
    border-bottom: none;
    list-style: none;
}
.sam-lesson-list .sam-module-lesson {
    padding-left: 8px;
}
