:root{--primary-color:#007bff;--primary-hover-color:#0056b3;--secondary-color:#6c757d;--secondary-hover-color:#5a6268;--success-color:#28a745;--success-hover-color:#218838;--danger-color:#dc3545;--caret-color: #333;--warning-color:#f39c12;--warning-hover-color:#e67e22;--light-bg:#f8f9fa;--light-border:#dee2e6;--text-color:#333;--white-color:#fff;--body-bg:#f4f4f4}body,html{max-width:100%}body{font-family:apple-system,BlinkMacSystemFont,sans-serif;margin:0;background-color:var(--body-bg);color:var(--text-color);font-size:clamp(16px, 1rem + .2vw, 18px);line-height:1.6}.page-content-wrapper{width:100%;overflow-x:hidden}.main-title-container,.quiz-container,footer,nav{box-sizing:border-box}.nav-container{position:sticky;top:0;z-index:100;width:100%}nav{display:flex;justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto;background-color:var(--white-color);box-shadow:0 2px 8px rgba(0,0,0,.1);padding:0 15px;border:solid 1px #ccc}.menu-list{display:flex;justify-content:flex-start;align-items:center;list-style:none;margin:0;padding:0;flex-grow:1;margin-left:-15px}.menu-item a{display:block;padding:18px 20px;color:var(--text-color);text-decoration:none;font-weight:600;font-size:1em;transition:all .3s ease;border-bottom:3px solid transparent}.menu-item a:hover{color:var(--primary-color);border-bottom-color:var(--primary-color)}.menu-item.highlight-item a{background-color:var(--primary-color);color:var(--white-color);border-radius:5px;border-bottom-color:transparent}.menu-item.highlight-item a:hover{background-color:var(--primary-hover-color);color:var(--white-color)}.hamburger-menu,.mobile-header{display:none}.main-title-container{max-width:1100px;margin:20px auto 0 auto;padding:20px 15px;background-color:var(--primary-color);border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);text-align:center}h1,h2{color:var(--primary-hover-color);margin-bottom:20px;text-align:center}.main-title-container h1{margin:0;color:var(--white-color);font-size:1.6em;font-weight:600;text-transform:uppercase;letter-spacing:1px}.quiz-container{background-color:transparent;box-shadow:none;padding:0;max-width:1100px;margin:20px auto 30px auto;position:relative}.timer{position:absolute;top:25px;right:25px;font-size:1.3em;font-weight:700;color:#d9534f}#question-text{font-size:1.2em;margin-bottom:20px;font-weight:700}#question-image{max-width:100%;height:auto;margin:15px auto;display:block;cursor:zoom-in}.throttling-question-warning{color:var(--danger-color);font-weight:700;margin-top:-10px;margin-bottom:15px;text-align:center;font-size:.9em}.options-list{list-style:none;padding:0;margin-bottom:20px}.option-item{margin-bottom:10px}.option-item label{display:flex;align-items:center;gap:12px;padding:12px 15px;width:100%;box-sizing:border-box;background-color:#e9e9e9;border:1px solid #e9e9e9;border-radius:5px;cursor:pointer;transition:background-color .2s,border-color .2s;-webkit-tap-highlight-color:rgba(0,0,0,0.1)}.option-item label:hover{background-color:#dcdcdc;border-color:#b0b0b0}.option-item input[type=radio]{position:absolute;opacity:0;width:0;height:0}.custom-radio{display:inline-flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:50%;border:2px solid #a0a0a0;background-color:var(--white-color);flex-shrink:0;transition:all .2s ease-in-out}.custom-radio::after{content:'';display:block;width:10px;height:10px;border-radius:50%;background-color:var(--primary-color);opacity:0;transition:opacity .2s ease-in-out}.option-item input[type=radio]:checked+.custom-radio{border-color:var(--primary-color)}.option-item input[type=radio]:checked+.custom-radio::after{opacity:1}.option-item label span:last-of-type{flex-grow:1;line-height:1.4;word-break:break-word;min-width:0}.button-group{display:flex;gap:10px;margin-top:20px}.button-group button{flex:1;padding:12px 20px;background-color:var(--primary-color);color:#fff;border:none;border-radius:8px;font-size:1.1em;font-weight:500;cursor:pointer;transition:background-color .3s ease}.button-group button:hover{background-color:var(--primary-hover-color)}.button-group button:disabled{background-color:#ccc;cursor:not-allowed}#review-button{background-color:var(--secondary-color)}#review-button:hover{background-color:var(--secondary-hover-color)}#result-summary.correct p{color:var(--success-color);text-align:center;font-size:.9em;font-weight:700;margin-bottom:20px;border:solid 1px;background-color:var(--light-bg);padding:20px;margin-bottom:15px;border-radius:8px;border:1px solid var(--light-border);border-left:5px solid var(--secondary-color)}#result-summary.incorrect p{color:var(--danger-color);text-align:center;font-size:.9em;font-weight:700;margin-bottom:20px;border:solid 1px;background-color:var(--light-bg);padding:20px;margin-bottom:15px;border-radius:8px;border:1px solid var(--light-border);border-left:5px solid var(--secondary-color)}.restart-button{background-color:var(--success-color)!important}.choose-other-exam-button{background-color:#17a2b8!important}.print-results-button{background-color:var(--primary-color)!important}.certificate-button{background-color:var(--warning-color)!important}.selection-screen{text-align:center}.guidelines{background-color:var(--white-color);border:1px solid var(--light-border);border-radius:8px;box-shadow:0 2px 10px rgba(0,0,0,.1);padding:20px;text-align:justify;margin-bottom:20px;box-sizing: border-box;}.guidelines img{max-width:100%;height:auto;display:block;margin:15px auto;border-radius:5px}.guidelines p,.guidelines ul li{line-height:1.7}.guidelines-flex{display:flex;align-items:center;gap:25px}.guidelines-image{flex-shrink:0;width:40%}.guidelines-text{flex-grow:1}.exam-sets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-top:20px}.question-nav-menu{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:25px;padding:10px;background-color:#f0f2f5;border-radius:8px}.paging-tabs{display:flex;justify-content:center;gap:8px;margin:25px 0 15px 0;flex-wrap:wrap}.paging-tab{padding:8px 16px;border:1px solid #ccc;background-color:#f0f0f0;color:var(--text-color);border-radius:20px;cursor:pointer;font-size:.9em;font-weight:500;transition:all .2s ease}.paging-tab:hover{background-color:#e0e0e0;border-color:#a0a0a0}.paging-tab.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.question-nav-item{display:flex;justify-content:center;align-items:center;width:35px;height:35px;border:1px solid #ccc;border-radius:50%;background-color:var(--white-color);font-weight:500;cursor:pointer;transition:all .2s}.question-nav-item.current{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:scale(1.1)}.question-nav-item.answered{background-color:#d4edda;border-color:var(--success-color)}.question-nav-item.throttling{border-color:#c82333;color:#c82333;background-color:#fffacd}.question-nav-item.throttling.current{background-color:var(--danger-color);color:#fff;border-color:#c82333}.answer-review-section h3{color:var(--primary-hover-color);text-align:center;margin-bottom:25px;font-size:1.5em}.question-review-item{background-color:var(--light-bg);padding:20px;margin-bottom:15px;border-radius:8px;border:1px solid var(--light-border);border-left:5px solid var(--secondary-color)}.question-review-item p{margin:0 0 10px 0;font-size:1.1em;line-height:1.6}.question-review-item .question-text-review{font-weight:700;color:#343a40}.question-review-item .your-answer.wrong{color:var(--danger-color);background-color:#f8d7da;padding:2px 6px;border-radius:4px}.question-review-item .correct-answer{color:var(--success-color);font-weight:700}.question-review-item.throttling-question{border-left-color:var(--danger-color);background-color:#fff3cd}.explanation-text{margin-top:15px;padding-top:10px;border-top:1px dashed #ccc;font-size:1em;color:#666;font-style:italic}.question-review-item img{max-width:100%;height:auto;display:block;margin:15px auto 10px auto;border-radius:5px}#review-mode-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);z-index:1000;justify-content:center;align-items:center}.review-mode-content{background-color:var(--white-color);padding:30px;border-radius:10px;box-shadow:0 5px 15px rgba(0,0,0,.3);width:90%;max-width:800px;max-height:90vh;overflow-y:auto;position:relative}.review-mode-content h3{text-align:center;color:var(--primary-hover-color);margin-top:0;margin-bottom:25px}.review-question-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:25px}.review-question-item{padding:10px;border:1px solid #ccc;border-radius:5px;text-align:center;cursor:pointer;transition:background-color .2s,border-color .2s;font-weight:700}.review-question-item.answered{background-color:#d4edda;border-color:var(--success-color)}.review-question-item.unanswered{background-color:#f8d7da;border-color:var(--danger-color)}.review-question-item.current{background-color:#cce5ff;border:2px solid var(--primary-color)}.review-question-item:hover{background-color:#e0e0e0}.close-review-button{position:absolute;top:10px;right:15px;background:0 0;border:none;font-size:1.8em;cursor:pointer;color:#666}.close-review-button:hover{color:#333}footer{max-width:1100px;margin:40px auto;padding:25px;border:1px solid var(--light-border);border-radius:8px;background-color:var(--white-color);text-align:center}footer p{margin:10px 0;font-size:.9em;color:var(--secondary-color);line-height:1.6}footer a{color:var(--primary-color);text-decoration:none;transition:text-decoration .2s}footer a:hover{text-decoration:underline}#certificate-container{display:none;position:relative;width:297mm;height:210mm;text-align:center;color:#383838;font-family:'Times New Roman',Times,serif;overflow:hidden}.certificate-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;opacity:.9}#cert-content{position:relative;z-index:2;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20mm;box-sizing:border-box}.cert-title{font-size:28pt;font-weight:700;color:#036;margin:0}.cert-subtitle{font-size:16pt;border-bottom:2px solid #555;padding-bottom:10px;margin-bottom:15mm;display:inline-block}.cert-body{font-size:14pt;margin:3mm 0}.cert-name{font-size:18pt;font-weight:700;color:#333;margin-bottom:10mm;width:80%;border-bottom:1px dotted #777;padding-bottom:5px}#cert-line-1{font-size:24pt;font-weight:700;color:#d35400;margin:10px 0 15px 0}#cert-line-2{font-size:18pt;margin-bottom:10px}#cert-line-3{font-size:14pt}.cert-footer{position:absolute;bottom:25mm;left:0;width:100%;padding:0 30mm;box-sizing:border-box;display:flex;justify-content:space-between;align-items:flex-end;font-size:12pt}.cert-date,.cert-signature{width:40%;display:flex;flex-direction:column;gap:20px}#history-list{list-style:none;padding:0;text-align:left}#history-list li{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid #f0f0f0}#history-list li:last-child{border-bottom:none}.question-slide-in{animation:slideIn .4s ease-out forwards}@keyframes slideIn{from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes pulse-effect{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}@keyframes shine-effect{0%{transform:translateX(-100%) skewX(-30deg)}100%{transform:translateX(250%) skewX(-30deg)}}.progress-container{width:100%;background-color:#e9ecef;border-radius:20px;margin-bottom:25px;position:relative;height:22px;box-shadow:inset 0 2px 4px rgba(0,0,0,.1);overflow:hidden}.progress-bar{height:100%;width:0%;border-radius:20px;background:linear-gradient(45deg,#28a745,#218838);position:relative;overflow:hidden;transition:width .5s cubic-bezier(.25, .8, .25, 1)}.progress-bar::after{content:'';position:absolute;top:0;left:0;width:50%;height:100%;background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.3) 50%,rgba(255,255,255,0) 100%);animation:shine-effect 2.5s infinite linear}.progress-bar.progress-updated{animation:pulse-effect .5s ease-out}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:700;font-size:.9em;text-shadow:1px 1px 3px rgba(0,0,0,.6);white-space:nowrap}body.dark-mode .progress-container{background-color:#374151}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.category-button-group{display:flex;flex-direction:column;gap:10px}.category-button-group .exam-set-button{width:100%;padding:14px 10px;font-size:1em;font-weight:600;color:#fff;border:none;border-radius:8px;text-align:center;cursor:pointer;transition:all .2s ease-in-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-button-group .learn-button{background-color:var(--warning-color)}.category-button-group .learn-button:hover{background-color:var(--warning-hover-color);transform:translateY(-2px)}.category-button-group>.exam-set-button:not(.learn-button){background-color:var(--primary-color)}.category-button-group>.exam-set-button:not(.learn-button):hover{background-color:var(--primary-hover-color);transform:translateY(-2px)}.category-button-group .exam-set-button:disabled{cursor:not-allowed;opacity:.6;transform:none}#clear-history-button{display:block;width:auto;min-width:200px;padding:12px 20px;margin:20px auto 0;font-size:1em;font-weight:600;color:var(--white-color);background-color:var(--secondary-color);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease-in-out;box-shadow:0 2px 4px rgba(0,0,0,.1)}#clear-history-button:hover{background-color:var(--secondary-hover-color);transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.15)}#submit-quiz-button{display:block;width:100%;margin-top:25px;padding:14px 20px;font-size:1.1em;font-weight:700;color:var(--white-color);background-color:var(--success-color);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease-in-out;box-shadow:0 2px 4px rgba(0,0,0,.1)}#submit-quiz-button:hover{background-color:var(--success-hover-color);transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.15)}#learning-options-list .option-item{padding:12px 15px;background-color:#e9e9e9;border:1px solid #e9e9e9;border-radius:5px;margin-bottom:10px;line-height:1.4;transition:all .2s ease-in-out}#learning-options-list .option-item.correct-choice{background-color:#d4edda!important;border-color:var(--success-color)!important;font-weight:700;color:#155724;transform:scale(1.02)}#learning-answer-container .explanation-text{font-size:1em;color:#333;font-style:normal}.hamburger-menu .bar{transition:all .3s ease-in-out}.hamburger-menu.active .bar:first-child{transform:translateY(8px) rotate(-45deg)}.hamburger-menu.active .bar:nth-child(2){opacity:0}.hamburger-menu.active .bar:nth-child(3){transform:translateY(-8px) rotate(45deg)}@media print{body>:not(.page-content-wrapper){display:none!important}.page-content-wrapper>:not(.quiz-container){display:none!important}.quiz-container>:not(#answer-review){display:none!important}#fb-comments-container{display:none!important}#answer-review,.page-content-wrapper,.quiz-container{display:block!important;visibility:visible!important;box-shadow:none!important;border:none!important;margin:0!important;padding:0!important}#answer-review *{color:#000!important;background-color:#fff!important;visibility:visible!important}.question-review-item{page-break-inside:avoid;border:1px solid #ccc!important;padding:15px!important;margin-bottom:15px!important}#answer-review .button-group{display:none!important}body.printing-certificate>:not(#certificate-container){display:none!important}body.printing-certificate #certificate-container{display:block!important}body.printing-certificate .certificate-bg{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:15px;margin-top:15px}.achievement-badge{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px;border-radius:8px;background-color:#f0f2f5;border:1px solid var(--light-border);transition:all .3s ease;filter:grayscale(100%);opacity:.6}.achievement-badge.unlocked{filter:grayscale(0%);opacity:1;border-color:var(--warning-color);background-color:#fffbeb}.achievement-icon{font-size:2.5em}.achievement-badge .tooltip-text{visibility:hidden;width:160px;background-color:#333;color:#fff;text-align:center;border-radius:6px;padding:8px;position:absolute;z-index:1;bottom:115%;left:50%;margin-left:-80px;opacity:0;transition:opacity .3s}.achievement-badge .tooltip-text::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#333 transparent transparent transparent}.achievement-badge.show-tooltip .tooltip-text,.achievement-badge:hover .tooltip-text{visibility:visible;opacity:1}.achievement-toast{visibility:hidden;position:fixed;top:-100px;left:50%;transform:translateX(-50%);z-index:2000;white-space:nowrap;min-width:250px;text-align:center;background-color:var(--success-color);color:#fff;padding:16px 25px;border-radius:8px;font-size:1.1em;font-weight:600;box-shadow:0 4px 15px rgba(0,0,0,.2);transition:top .5s ease-in-out}.achievement-toast.show{visibility:visible;top:20px}.fb-share-box{text-align:center;padding-bottom:25px;margin-bottom:25px;border-bottom:1px solid var(--light-border)}.fb-share-box p{font-size:1.1em;font-weight:500;color:#4b4f56;margin-top:0;margin-bottom:15px}body.dark-mode #fb-comments-container{background-color:#fff;border-radius:8px;padding:1px 15px 15px 15px;margin-top:20px}body.dark-mode #fb-comments-container .fb-share-box p,body.dark-mode #fb-comments-container h2{color:#1c1e21}.image-modal{position:fixed;z-index:2000;padding-top:20px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:rgba(0,0,0,.9);display:flex;justify-content:center;align-items:center}.modal-content{margin:auto;display:block;width:90%;max-width:800px;max-height:90vh;object-fit:contain}.close-modal-btn{position:absolute;top:15px;right:35px;color:#f1f1f1;font-size:40px;font-weight:700;transition:.3s;cursor:pointer}.close-modal-btn:focus,.close-modal-btn:hover{color:#bbb;text-decoration:none}#question-timer-container{position:absolute;top:85px;right:25px;width:45px;height:45px;background-color:#f8d7da;color:var(--danger-color);border:2px solid var(--danger-color);border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:1.4em;font-weight:700}.mode-selector-container{display:flex;border:1px solid #ccc;border-radius:8px;overflow:hidden;width:100%;margin-bottom:20px}.mode-selector-container input[type=radio]{display:none}.mode-selector-container label{flex:1;padding:12px 10px;text-align:center;font-weight:600;cursor:pointer;background-color:#f0f2f5;color:var(--secondary-color);transition:all .3s ease;user-select:none}.mode-selector-container input[type=radio]:checked+label{background-color:var(--primary-color);color:var(--white-color);box-shadow:inset 0 2px 4px rgba(0,0,0,.1)}.category-button-group .exam-set-button{background-color:var(--success-color)}.category-button-group .exam-set-button:hover{background-color:var(--success-hover-color)}#learning-options-list .option-item{cursor:pointer;transition:background-color .2s,border-color .2s}#learning-options-list .option-item:hover{background-color:#dcdcdc;border-color:#b0b0b0}#learning-options-list.answered .option-item{cursor:default;pointer-events:none;opacity:.7}#learning-options-list .option-item.selected.correct{background-color:#d4edda!important;border-color:var(--success-color)!important;color:#155724;opacity:1;font-weight:700}#learning-options-list .option-item.selected.wrong{background-color:#f8d7da!important;border-color:var(--danger-color)!important;color:#721c24;opacity:1;font-weight:700}#learning-options-list .option-item.correct-answer-reveal{background-color:#d4edda!important;border-color:var(--success-color)!important;color:#155724;opacity:1;font-weight:700}.button-group button,.guidelines,.mode-selector-container label,.option-item label,.quiz-container,body,nav{transition:background-color .3s ease,color .3s ease,border-color .3s ease}body.dark-mode{--primary-color:#0d6efd;--primary-hover-color:#3385fd;--secondary-color:#4b5563;--secondary-hover-color:#6b7280;--caret-color: #d5e7eb;--success-color:#16a34a;--success-hover-color:#15803d;--danger-color:#ef4444;--warning-color:#f59e0b;--warning-hover-color:#d97706;--light-bg:#1f2937;--light-border:#374151;--text-color:#e5e7eb;--white-color:#111827;--body-bg:#111827}body.dark-mode h1,body.dark-mode h2,body.dark-mode h3{color:#f9fafb}body.dark-mode .main-title-container h1{color:#f9fafb}body.dark-mode .option-item label{background-color:#374151;border-color:#4b5563}body.dark-mode .option-item label:hover{background-color:#4b5563;border-color:#6b7280}body.dark-mode .custom-radio{background-color:#1f2937;border-color:#9ca3af}body.dark-mode .paging-tab,body.dark-mode .question-nav-menu{background-color:#374151}body.dark-mode .question-nav-item{background-color:#1f2937;border-color:#4b5563}body.dark-mode .mode-selector-container{border-color:#4b5563}body.dark-mode .mode-selector-container label{background-color:#374151}body.dark-mode .mode-selector-container input[type=radio]:checked+label{background-color:var(--primary-color);color:#f9fafb}.theme-switch-wrapper{display:flex;align-items:center;margin-left:15px}#sound-toggle-button,#theme-toggle-button,#vibration-toggle-button{background:0 0;border:2px solid var(--light-border);border-radius:20px;cursor:pointer;font-size:1.2rem;padding:6px 8px;display:flex;align-items:center;justify-content:center;transition:all .3s ease}#sound-toggle-button{margin-right:10px}#sound-toggle-button:hover,#theme-toggle-button:hover,#vibration-toggle-button:hover{border-color:var(--primary-color)}#vibration-toggle-button{margin-right:10px}#theme-toggle-button .icon-moon{display:none}body.dark-mode #theme-toggle-button .icon-moon{display:inline-block}body.dark-mode #theme-toggle-button .icon-sun{display:none}body.dark-mode .review-question-item{color:var(--text-color);background-color:var(--secondary-color);border-color:var(--secondary-hover-color)}body.dark-mode .review-question-item.answered{background-color:var(--success-hover-color);border-color:var(--success-color)}body.dark-mode .review-question-item.unanswered{background-color:var(--danger-color);border-color:#c82333}body.dark-mode .review-question-item.current{background-color:var(--primary-color);border-color:var(--primary-hover-color);color:#fff}body.dark-mode #learning-options-list .option-item{background-color:var(--secondary-color);border-color:var(--secondary-hover-color);color:var(--text-color)}body.dark-mode #learning-options-list .option-item:hover{background-color:var(--secondary-hover-color)}body.dark-mode #learning-options-list .option-item.selected.correct{background-color:var(--success-hover-color)!important;border-color:var(--success-color)!important;color:#fff!important}body.dark-mode #learning-options-list .option-item.selected.wrong{background-color:var(--danger-color)!important;border-color:#c82333!important;color:#fff!important}body.dark-mode #learning-options-list .option-item.correct-answer-reveal{background-color:var(--success-hover-color)!important;border-color:var(--success-color)!important;color:#fff!important}body.dark-mode .explanation-text{color:#b0b8c4!important;border-top-color:var(--light-border)!important}body.dark-mode .question-review-item .question-text-review{color:#cad1db}body.dark-mode .question-review-item.throttling-question{color:#554200}body.dark-mode .question-review-item.throttling-question .explanation-text,body.dark-mode .question-review-item.throttling-question .question-text-review{color:inherit}body.dark-mode .question-review-item.throttling-question .correct-answer{color:var(--success-color)!important}body.dark-mode .question-review-item.throttling-question .your-answer.wrong{color:var(--danger-color)!important}

/* CSS CHO HỆ THỐNG ĐÁNH GIÁ SAO */
#star-rating-container {
    display: flex;
    justify-content: center;
    font-size: 2.5em; /* Kích thước sao */
    cursor: pointer;
    color: #ccc;
}
.star:hover,
.star.hovered {
    color: #f39c12; /* Màu vàng khi di chuột qua */
}
.star.rated {
    color: #f39c12; /* Màu vàng khi đã được chọn */
}
#rating-feedback-text {
    text-align: center;
    font-weight: bold;
    color: var(--success-color);
    display: none; /* Mặc định ẩn đi */
    margin-top: 15px;
}
/* Tự động ẩn phần đánh giá khi đang trong màn hình thi/học */
body.fullscreen-active #rating-section {
    display: none;
}

/* === CSS CHUẨN CHO DẢI CUỘN NGANG & THANH TIẾN TRÌNH === */

.section-title {
    font-size: 1.1em;
    font-weight: 600;
    color: var(--text-color);
    margin-top: 30px;
    margin-bottom: 15px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--light-border);
}
.actions-grid {
    display: grid;
    gap: 12px;
}
.custom-scrollbar-wrapper {
    display: flex;
    flex-direction: column;
}
.custom-scrollbar-wrapper > * {
    margin: 0;
}
.custom-scrollbar-wrapper .horizontal-scroll-container {
    margin: 10px 0;
}
.horizontal-scroll-container {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    -ms-overflow-style: none;
    scrollbar-width: none;
    overscroll-behavior-x: contain; 
}
.horizontal-scroll-container::-webkit-scrollbar {
    display: none;
}
.horizontal-scroll-container .exam-set-button:hover {
    transform: none !important;
    filter: brightness(92%);
}
.scroll-progress-track {
    position: relative;
    width: 100%;
    height: 5px;
    background-color: #e9ecef;
    border-radius: 5px;
    overflow: hidden;
}

/* === CSS PHẢN HỒI (RESPONSIVE) VÀ CÁC QUY TẮC KHÁC === */
@media (max-width:768px){body{padding:0 10px;box-sizing:border-box}.main-title-container,.nav-container,.quiz-container,footer{margin-left:0;margin-right:0;width:100%}.nav-container{margin-bottom:0}.main-title-container,.quiz-container,footer{margin-top:15px}nav{padding:10px 15px;position:relative;border-radius:8px}.menu-list{display:none;position:absolute;top:100%;left:0;right:0;width:auto;background-color:var(--white-color);flex-direction:column;box-shadow:0 4px 8px rgba(0,0,0,.1);padding:0;z-index:10;border:1px solid #ccc;border-top:none;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.menu-list.show{display:flex}.menu-item{width:100%;text-align:center}.menu-item a{padding:15px;width:100%;border-bottom:1px solid #f0f0f0;box-sizing:border-box}.menu-item:last-child a{border-bottom:none}.menu-item:not(.highlight-item) a:hover{background-color:var(--light-bg)}.mobile-header{display:flex;justify-content:space-between;align-items:center;width:100%}.mobile-title{font-weight:600;font-size:1.1em}.hamburger-menu{display:block;padding:8px;cursor:pointer}.hamburger-menu .bar{width:25px;height:3px;background-color:var(--text-color);margin:5px 0}.main-title-container h1{font-size:1.2em;padding:0 10px}.timer{position:static;text-align:center;margin-bottom:15px}.guidelines-flex{flex-direction:column;text-align:justify}.guidelines-image{width:100%}#question-text{font-size:1.1em}.guidelines{font-size:1em;padding:15px}.guidelines p,.guidelines ul{line-height:1.7}p.special-note{font-size:1.05em;line-height:1.5}.option-item label{font-size:1em;padding:15px}.button-group{flex-direction:column}.button-group button{padding-top:15px;padding-bottom:15px;font-size:1.1em}.exam-sets-grid{grid-template-columns:1fr;gap:10px}.review-mode-content{padding:20px;width:95%}.review-question-grid{grid-template-columns:repeat(4,1fr)}#question-timer-container{top:130px;right:15px}}@media (max-width:480px){.review-question-grid{grid-template-columns:repeat(3,1fr)}}@keyframes slide-in-from-right{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}@keyframes slide-in-from-left{from{opacity:0;transform:translateX(-50px)}to{opacity:1;transform:translateX(0)}}.animate-slide-in-right{animation:slide-in-from-right .4s ease-out forwards}.animate-slide-in-left{animation:slide-in-from-left .4s ease-out forwards}@keyframes shake-horizontal{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-8px)}20%,40%,60%,80%{transform:translateX(8px)}}.animate-shake{animation:shake-horizontal .6s cubic-bezier(.36,.07,.19,.97) both}.learning-correct-pulse{animation:pulse-green .7s}@keyframes pulse-green{0%{box-shadow:0 0 0 0 rgba(40,167,69,.7)}70%{box-shadow:0 0 0 12px rgba(40,167,69,0)}100%{box-shadow:0 0 0 0 rgba(40,167,69,0)}}#back-to-selection-button{background-color:#6c757d;flex-grow:0.5}#back-to-selection-button:hover{background-color:#5a6268}#history-list li.history-item-hidden{display:none}#history-container.expanded #history-list li.history-item-hidden{display:block;animation:fadeIn .4s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}#show-more-history{display:block;width:auto;min-width:150px;padding:8px 16px;margin:15px auto 10px;font-size:.9em;font-weight:600;color:var(--primary-color);background-color:transparent;border:2px solid var(--primary-color);border-radius:20px;cursor:pointer;transition:all .2s ease-in-out;text-align:center}#show-more-history:hover{background-color:var(--primary-color);color:var(--white-color)}#show-more-history span{margin-right:8px;font-size:1.1em}.mobile-nav-footer{display:none}#desktop-button-group{display:flex}@media (max-width:768px){#desktop-button-group{display:none!important}.mobile-nav-footer{position:fixed!important;left:50%!important;transform:translateX(-50%)!important;bottom:10px!important;width:95%!important;max-width:1100px;background-color:rgba(255,255,255,.9)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(222,226,230,.7)!important;border-radius:16px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:8px!important;gap:8px;z-index:1000!important;box-shadow:0 4px 20px rgba(0,0,0,.1)!important}.mobile-nav-btn{display:flex!important;align-items:center!important;justify-content:center!important;flex-direction:row!important;gap:6px!important;height:48px!important;padding:0 16px!important;border:none!important;border-radius:12px!important;font-size:1em!important;font-weight:600!important;cursor:pointer!important;transition:all .2s ease-in-out!important;flex-grow:1;white-space:nowrap;-webkit-tap-highlight-color:transparent}#mobile-next-button{background-color:var(--primary-color,#007bff)!important;color:#fff!important}#mobile-next-button span,#mobile-next-button svg{color:#fff!important;stroke:white!important}#mobile-prev-button,#mobile-review-button{background-color:#e9ecef!important;color:#495057!important}#mobile-prev-button span,#mobile-prev-button svg,#mobile-review-button span,#mobile-review-button svg{color:#495057!important;stroke:#495057!important}body.dark-mode .mobile-nav-footer{background-color:rgba(28,28,30,.75)!important;border-top-color:rgba(56,56,58,.7)!important}body.dark-mode #mobile-prev-button,body.dark-mode #mobile-review-button{background-color:#3f3f46!important;color:#f4f4f5!important}body.dark-mode #mobile-prev-button span,body.dark-mode #mobile-prev-button svg,body.dark-mode #mobile-review-button span,body.dark-mode #mobile-review-button svg{stroke:#f4f4f5!important;color:#f4f4f5!important}.mobile-nav-btn span{display:none}@media (min-width:400px){.mobile-nav-btn span{display:inline}}.mobile-nav-btn:active{transform:scale(.97) translateY(1px)!important;box-shadow:0 1px 3px rgba(0,0,0,.08)!important}#mobile-next-button{background-color:var(--primary-color,#007bff)!important;color:#fff!important}#mobile-next-button span,#mobile-next-button svg{color:#fff!important;stroke:white!important}#mobile-prev-button,#mobile-review-button{background-color:#e9ecef!important;color:#495057!important}#mobile-prev-button span,#mobile-prev-button svg,#mobile-review-button span,#mobile-review-button svg{color:#495057!important;stroke:#495057!important}}@keyframes pulse-blue{0%{box-shadow:0 0 0 0 rgba(0,123,255,.6)}70%{box-shadow:0 0 0 12px rgba(0,123,255,0)}100%{box-shadow:0 0 0 0 rgba(0,123,255,0)}}#mobile-next-button.is-loading,#mobile-prev-button.is-loading,#mobile-review-button.is-loading{background-color:var(--primary-color,#007bff)!important;color:#fff!important;pointer-events:none;animation:pulse-blue 1.5s infinite}#mobile-next-button.is-loading span,#mobile-next-button.is-loading svg,#mobile-prev-button.is-loading span,#mobile-prev-button.is-loading svg,#mobile-review-button.is-loading span,#mobile-review-button.is-loading svg{color:#fff!important;stroke:white!important}.mobile-nav-btn:hover{transform:translateY(-2px);filter:brightness(96%)}#mobile-next-button:hover{background-color:var(--primary-hover-color,#0056b3)!important;filter:brightness(100%)}.learning-header{display:flex;justify-content:space-between;align-items:center;position:relative;padding:0 10px}.learning-header h2{flex-grow:1;text-align:center;margin:0}.learning-feedback-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1001;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.learning-feedback-overlay.is-visible{opacity:1;visibility:visible}.feedback-content{background-color:#fff;width:calc(100% - 40px);max-width:400px;padding:24px;border-radius:16px;text-align:center;box-shadow:0 5px 20px rgba(0,0,0,.2);transform:scale(.95);transition:transform .3s cubic-bezier(.25, .8, .25, 1)}.learning-feedback-overlay.is-visible .feedback-content{transform:scale(1)}.learning-feedback-overlay.correct .feedback-content{background-color:#f0fff4;border:1px solid #c3e6cb;color:#155724}.learning-feedback-overlay.incorrect .feedback-content{background-color:#fff5f5;border:1px solid #f5c6cb;color:#721c24}.feedback-content #feedback-icon{font-size:36px;line-height:1}.feedback-content h3{margin-top:8px;margin-bottom:12px}.feedback-content #feedback-explanation{margin-top:10px;font-size:1em;font-style:normal;line-height:1.6}#feedback-continue-btn{width:100%;padding:14px;margin-top:24px;border:none;border-radius:10px;font-size:16px;font-weight:700;color:#fff;cursor:pointer;transition:filter .2s}#feedback-continue-btn:hover{filter:brightness(90%)}.correct #feedback-continue-btn{background-color:#28a745}.incorrect #feedback-continue-btn{background-color:#dc3545}.learning-mobile-footer{display:none}@media (max-width:768px){#learning-desktop-buttons{display:none!important}.learning-mobile-footer{position:fixed!important;left:0!important;bottom:0!important;width:100%!important;background-color:#f8f9fa!important;border-top:1px solid #dee2e6!important;display:flex!important;gap:8px;z-index:1000!important;padding:10px 12px!important;padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;box-shadow:0 -2px 15px rgba(0,0,0,.06)}#learning-mode-screen{padding-bottom:80px}}@media (max-width:768px){#desktop-button-group{display:none!important}.mobile-nav-footer{display:flex!important}}.mobile-nav-footer{background-color:#f8f9fa!important;border-top:1px solid #dee2e6!important;align-items:center!important;justify-content:space-between!important;padding:10px 12px!important;padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;gap:8px;box-shadow:0 -2px 15px rgba(0,0,0,.06)!important}.mobile-nav-btn{display:flex!important;align-items:center!important;justify-content:center!important;flex-direction:row!important;gap:6px!important;padding:10px 16px!important;border:none!important;border-radius:12px!important;font-size:14px!important;font-weight:600!important;cursor:pointer!important;transition:all .2s ease-in-out!important;box-shadow:0 3px 6px rgba(0,0,0,.1)!important;flex-grow:1;white-space:nowrap}.mobile-nav-btn:active{transform:scale(.97) translateY(1px)!important;box-shadow:0 1px 3px rgba(0,0,0,.08)!important}#mobile-next-button{background-color:var(--primary-color,#007bff)!important;color:#fff!important}#mobile-next-button svg{stroke:white!important}#mobile-prev-button,#mobile-review-button{background-color:#e9ecef!important;color:#495057!important}#mobile-prev-button svg,#mobile-review-button svg{stroke:#495057!important}.mobile-nav-btn:disabled{opacity:.5!important;pointer-events:none!important;box-shadow:none!important}@keyframes pulse-blue{0%{box-shadow:0 0 0 0 rgba(0,123,255,.6)}70%{box-shadow:0 0 0 12px rgba(0,123,255,0)}100%{box-shadow:0 0 0 0 rgba(0,123,255,0)}}#mobile-next-button.is-loading,#mobile-prev-button.is-loading,#mobile-review-button.is-loading{background-color:var(--primary-color,#007bff)!important;color:#fff!important;pointer-events:none;animation:pulse-blue 1.5s infinite}#mobile-next-button.is-loading span,#mobile-next-button.is-loading svg,#mobile-prev-button.is-loading span,#mobile-prev-button.is-loading svg,#mobile-review-button.is-loading span,#mobile-review-button.is-loading svg{color:#fff!important;stroke:white!important}.mobile-nav-btn:hover{transform:translateY(-2px);filter:brightness(96%)}#mobile-next-button:hover{background-color:var(--primary-hover-color,#0056b3)!important;filter:brightness(100%)}#start-smart-review-btn{background-color:#28a745!important;color:#fff!important;border:none!important;border-radius:8px!important;padding:12px 20px!important;font-size:1.1em!important;font-weight:700!important;cursor:pointer!important;transition:all .2s ease-in-out!important;box-shadow:0 4px 10px rgba(40,167,69,.3)!important;margin-top:15px!important}#start-smart-review-btn:hover{background-color:#218838!important;box-shadow:0 6px 15px rgba(40,167,69,.4)!important;transform:translateY(-2px)!important}#start-smart-review-btn:active{transform:translateY(0)!important;box-shadow:0 2px 5px rgba(40,167,69,.3)!important}.guidelines-split{display:flex;align-items:center;gap:25px}.guidelines-split-text{flex:2}.guidelines-split-animation{flex:1;min-width:250px}@media (max-width:768px){.guidelines-split{flex-direction:column}.guidelines-split-animation{width:100%;max-width:300px;margin-top:20px}}.learning-header{position:relative}.exit-learning-button-new{position:absolute;top:50%;right:15px;left:auto;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;font-size:24px;font-weight:700;line-height:1;cursor:pointer;border:2px solid;display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.exit-learning-button-new:hover{transform:translateY(-50%) scale(1.1)}@keyframes traffic-light{0%{background-color:#f8d7da;color:#d9534f;border-color:#d9534f}30%{background-color:#fff3cd;color:#856404;border-color:#ffeeba}60%{background-color:#d4edda;color:#155724;border-color:#c3e6cb}100%{background-color:#f8d7da;color:#d9534f;border-color:#d9534f}}.exit-learning-button-animated{animation:traffic-light 3s infinite ease-in-out}.loader-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,.8);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1010;border-radius:8px;transition:opacity .3s ease}.loader{border:5px solid #f3f3f3;border-top:5px solid var(--primary-color);border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite}.loader-overlay p{margin-top:15px;font-weight:500;color:var(--text-color)}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.dark-mode .loader-overlay{background-color:rgba(17,24,39,.85)}.btn-disabled{opacity:.5;cursor:not-allowed!important;pointer-events:none}.review-pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:20px}.pagination-tab{padding:8px 16px;border:1px solid #ccc;background-color:#f0f0f0;color:var(--text-color);border-radius:20px;cursor:pointer;font-size:.9em;font-weight:500;transition:all .2s ease}.pagination-tab:hover{background-color:#e0e0e0;border-color:#a0a0a0}.pagination-tab.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color);font-weight:700}body.dark-mode .pagination-tab{background-color:#374151;border-color:#4b5563}body.dark-mode .pagination-tab:hover{background-color:#4b5563}body.dark-mode .pagination-tab.active{background-color:var(--primary-color);color:#f9fafb}.search-container{display:flex;gap:10px;margin:15px 0 25px 0}#search-input{flex-grow:1;padding:10px 15px;font-size:1em;border:1px solid var(--light-border);border-radius:8px;background-color:var(--white-color);color:var(--text-color)}#search-button{flex-shrink:0;padding:0 18px;font-size:1.2em;background-color:var(--primary-color);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s}#search-button:hover{background-color:var(--primary-hover-color)}body.dark-mode #search-input{background-color:#374151;border-color:#4b5563}
.speed-run-button {
    background-color: var(--warning-color) !important;
    box-shadow: 0 4px 15px rgba(243, 156, 18, .3) !important;
}
.speed-run-button:hover {
    background-color: var(--warning-hover-color) !important;
}
@keyframes pulse-red{0%{transform:scale(1);box-shadow:0 0 0 0 rgba(220,53,69,.7)}70%{transform:scale(1.05);box-shadow:0 0 0 10px rgba(220,53,69,0)}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(220,53,69,0)}}body.speed-run-active .timer{color:var(--danger-color);font-size:1.5em;animation:pulse-red 1.5s infinite;padding:5px 10px;border-radius:8px;background-color:#f8d7da}body.dark-mode.speed-run-active .timer{background-color:rgba(220,53,69,.2)}@keyframes traffic-light-effect{0%{background-color:#28a745;box-shadow:0 0 10px #28a745}33%{background-color:#f39c12;box-shadow:0 0 10px #f39c12}66%{background-color:#dc3545;box-shadow:0 0 10px #dc3545}100%{background-color:#28a745;box-shadow:0 0 10px #28a745}}#show-features-btn.animated-traffic-light{color:#fff!important;border:none;animation:traffic-light-effect 6s infinite linear;transition:transform .2s ease;height:40px;border-radius:5px;font-size:1em}#show-features-btn.animated-traffic-light:hover{transform:scale(1.03)}.features-popup-custom{padding:10px!important}.features-popup-custom .swal2-title{font-size:1.8em!important;color:var(--primary-color);padding-top:20px!important}.features-popup-custom .swal2-html-container{margin:0!important;padding:0!important}.features-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;text-align:left;padding:20px}.feature-card{background-color:var(--body-bg);padding:25px;border-radius:12px;border:1px solid var(--light-border);box-shadow:0 4px 15px rgba(0,0,0,.05);transition:transform .2s ease,box-shadow .2s ease}.feature-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px rgba(0,0,0,.1)}.feature-card h4{font-size:1.2em;color:var(--primary-hover-color);margin-top:0;margin-bottom:20px;display:flex;align-items:center;gap:10px}.feature-card ul{list-style:none;padding:0;margin:0}.feature-card li{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;line-height:1.5}.feature-icon{font-size:1.2em;flex-shrink:0;margin-top:2px}@media (max-width:768px){.features-grid{grid-template-columns:1fr;padding:10px}.features-popup-custom .swal2-title{font-size:1.5em!important}.feature-card{padding:20px}}body.dark-mode #fb-comments-container{background-color:#fff;border-radius:8px;padding:1px 15px 15px 15px;margin-top:20px}body.dark-mode #fb-comments-container h2{color:#1c1e21}body.dark-mode #smart-review-container .guidelines h3,body.dark-mode #smart-review-container .guidelines p{color:#555}a.exam-set-button{text-decoration:none;display:block;box-sizing:border-box}.youtube-lazy-load-container{position:relative;width:100%;padding-top:56.25%;cursor:pointer;background-color:#000;overflow:hidden}.youtube-lazy-load-container img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.youtube-lazy-load-container:hover img{transform:scale(1.05)}.play-button-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:56px;transition:transform .2s ease;pointer-events:none}.youtube-lazy-load-container:hover .play-button-overlay{transform:translate(-50%,-50%) scale(1.15)}.contact-popup{font-size:clamp(16px, 1rem + .1vw, 17px)!important}.contact-popup .contact-popup-title{color:var(--primary-color)!important;font-weight:600!important}.contact-popup .contact-popup-html-container{margin-top:0!important;text-align:left!important;overflow:hidden!important}.contact-popup .contact-info-list{list-style:none;padding:0;margin:20px 0 0 0}.contact-popup .contact-info-list li{display:flex;align-items:flex-start;margin-bottom:16px;line-height:1.6}.contact-popup .contact-info-list .icon{font-size:1.5em;margin-right:18px;margin-top:-3px;color:var(--primary-hover-color);flex-shrink:0}.contact-popup .contact-info-list a{color:var(--primary-color);text-decoration:none;font-weight:500;transition:color .2s ease}.contact-popup .contact-info-list a:hover{color:var(--primary-hover-color);text-decoration:underline}.contact-popup .contact-separator{height:1px;background-color:var(--light-border);margin-top:20px!important;margin-bottom:20px!important;padding:0!important}.guide-popup .swal2-html-container{text-align:left;line-height:1.7}.guide-popup .guide-image{max-width:100%;height:auto;border-radius:8px;margin:15px 0;border:1px solid #ddd;display:block;margin-left:auto;margin-right:auto}body.dark-mode .guide-popup .guide-image{border-color:#4b5563}.feedback-actions{margin-top:20px;padding-top:15px;border-top:1px dashed #ccc;display:flex;align-items:center;gap:10px;font-size:.9em;color:#666}body.dark-mode .feedback-actions{border-top-color:var(--light-border);color:#a0a0a0}.feedback-btn{background:0 0;border:1px solid #ccc;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:1.1em;transition:all .2s ease;display:flex;align-items:center;justify-content:center}body.dark-mode .feedback-btn{border-color:var(--light-border)}.feedback-btn:hover{transform:scale(1.1);border-color:var(--primary-color)}.feedback-btn:disabled{cursor:not-allowed;opacity:.5;transform:none;border-color:#ccc!important}.share-question-btn{background-color:#f0f0f0;color:#333;border:1px solid #ccc;border-radius:20px;padding:5px 12px;cursor:pointer;font-size:.85em;font-weight:500;margin-left:auto;transition:all .2s ease}.share-question-btn:hover{background-color:#e0e0e0;border-color:#999}body.dark-mode .share-question-btn{background-color:var(--secondary-color);border-color:var(--secondary-hover-color);color:var(--text-color)}.swal2-container.swal2-backdrop-show{background:rgba(0,0,0,.4)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.swal2-popup{border-radius:20px!important;padding:2em!important;box-shadow:0 10px 30px rgba(0,0,0,.2),0 0 0 1px rgba(0,0,0,.05)!important}.swal2-popup.popup-correct{background:linear-gradient(145deg,#f0fff4,#d4edda)!important;border:1px solid #a3e6cb!important}.swal2-popup.popup-correct .swal2-title{color:#14532d!important}.swal2-popup.popup-correct .swal2-html-container{color:#166534!important;font-size:1.1em!important;line-height:1.7!important;width:100%;text-align:left;padding-left:1px}.swal2-popup.popup-correct .swal2-confirm{background:linear-gradient(to bottom,#28a745,#218838)!important;box-shadow:0 4px 0 0 #15803d!important}.swal2-popup.popup-incorrect{background:linear-gradient(145deg,#fff5f5,#f8d7da)!important;border:1px solid #f5c6cb!important}.swal2-popup.popup-incorrect .swal2-title{color:#7f1d1d!important}.swal2-popup.popup-incorrect .swal2-html-container{color:#991b1b!important;font-size:1.1em!important;line-height:1.7!important;width:100%;text-align:left;padding-left:1px}#learning-mobile-share-btn{background-color:#6c757d!important;color:#fff!important}#learning-mobile-share-btn svg{stroke:white!important}#learning-mobile-share-btn:hover{background-color:#5a6268!important}body.dark-mode #learning-mobile-share-btn{background-color:#4b5563!important}body.dark-mode #learning-mobile-share-btn:hover{background-color:#6b7280!important}.swal2-popup.popup-incorrect .swal2-confirm{background:linear-gradient(to bottom,#dc3545,#c82333)!important;box-shadow:0 4px 0 0 #b91c1c!important}.swal2-title{font-size:2em!important;font-weight:700!important;padding:.5em 0!important}.swal2-confirm{border:none!important;border-radius:12px!important;padding:.8em 2em!important;font-size:1.1em!important;font-weight:600!important;color:#fff!important;transform:translateY(0);transition:all .15s ease-out!important}.swal2-confirm:hover{filter:brightness(110%);transform:translateY(-2px)}.swal2-confirm:active{transform:translateY(1px);filter:brightness(100%);box-shadow:0 2px 0 0 rgba(0,0,0,.2)!important}.swal2-container.swal2-backdrop-show{background:rgba(0,0,0,.4)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.swal2-popup{display:flex!important;flex-direction:column!important;background:#fff!important;border-radius:20px!important;padding:1.5em 2em 2em 2em!important;box-shadow:0 10px 30px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05)!important;border:1px solid rgba(0,0,0,.05)!important;width:90vw!important;max-width:100%}.swal2-title{font-size:clamp(1.5em, 5vw, 1.8em)!important;font-weight:700!important;padding:.5em 0!important;color:#333!important;line-height:1.3!important}.swal2-html-container{font-size:clamp(1em, 4vw, 1.1em)!important;line-height:1.7!important;color:#555!important;margin:0 0 1.5em 0!important;text-align:left!important}.swal2-html-container p{margin:0 0 10px 0!important}.swal2-html-container strong{color:#333}.swal2-actions{gap:1em!important}.swal2-styled{border-radius:12px!important;padding:.8em 2em!important;font-size:1em!important;font-weight:600!important;transform:translateY(0);transition:all .2s ease-out!important;box-shadow:0 2px 5px rgba(0,0,0,.1)!important;border:none!important}.swal2-styled:hover{transform:translateY(-2px);filter:brightness(105%)}.swal2-styled:active{transform:translateY(0);filter:brightness(100%);box-shadow:0 1px 2px rgba(0,0,0,.1)!important}.swal2-confirm{background:linear-gradient(to top,#007bff,#0d6efd)!important;color:#fff!important}.swal2-cancel{background:#e9ecef!important;color:#495057!important}.swal2-popup.popup-correct{background:linear-gradient(145deg,#f0fff4,#e6f7ec)!important}.swal2-popup.popup-correct .swal2-title{color:#14532d!important}.swal2-popup.popup-correct .swal2-html-container{color:#166534!important}.swal2-popup.popup-correct .swal2-confirm{background:linear-gradient(to top,#28a745,#218838)!important}.swal2-popup.popup-incorrect{background:linear-gradient(145deg,#fff5f5,#fdeded)!important}.swal2-popup.popup-incorrect .swal2-title{color:#7f1d1d!important}.swal2-popup.popup-incorrect .swal2-html-container{color:#991b1b!important}.swal2-popup.popup-incorrect .swal2-confirm{background:linear-gradient(to top,#dc3545,#c82333)!important}.swal2-icon{margin:1em auto .5em auto!important;border-width:.2em!important}body.dark-mode .swal2-popup{background:#2c2c32!important;color:#e5e7eb!important;border:1px solid rgba(255,255,255,.1)!important;box-shadow:0 10px 30px rgba(0,0,0,.2)!important}body.dark-mode .swal2-title{color:#fff!important}body.dark-mode .swal2-html-container{color:#c7c7d2!important}body.dark-mode .swal2-html-container strong{color:#fff}body.dark-mode .swal2-cancel{background:#4b5563!important;color:#e5e7eb!important}body.dark-mode .swal2-popup.popup-correct{background:linear-gradient(145deg,#052e16,#064e3b)!important}body.dark-mode .swal2-popup.popup-incorrect{background:linear-gradient(145deg,#450a0a,#7f1d1d)!important}body.dark-mode .swal2-popup.popup-correct .swal2-html-container,body.dark-mode .swal2-popup.popup-correct .swal2-title,body.dark-mode .swal2-popup.popup-incorrect .swal2-html-container,body.dark-mode .swal2-popup.popup-incorrect .swal2-title{color:#fff!important}.swal2-popup.swal2-toast{width:auto!important;max-width:380px!important;padding:1em 1.2em!important;box-shadow:0 5px 15px rgba(0,0,0,.15)!important;flex-direction:row!important;align-items:center!important;gap:1em!important}.swal2-toast .swal2-icon{width:2.5em!important;height:2.5em!important;margin:0!important;font-size:1.2rem!important}.swal2-toast .swal2-title{font-size:1.1em!important;padding:0!important;text-align:left;color:#333!important}.swal2-toast .swal2-html-container{font-size:1em!important;margin:0!important;padding:0!important;text-align:left;color:#555!important}.swal2-toast .swal2-html-container b{color:var(--primary-color)}.swal2-toast .swal2-actions,.swal2-toast .swal2-footer{display:none!important}.swal2-toast .swal2-timer-progress-bar{height:5px!important;border-radius:0 0 16px 16px;background-color:var(--primary-color)!important;opacity:.7}body.dark-mode .swal2-toast.swal2-popup{background:#374151!important;border-color:rgba(255,255,255,.1)!important}body.dark-mode .swal2-toast .swal2-title{color:#f9fafb!important}body.dark-mode .swal2-toast .swal2-html-container{color:#d1d5db!important}body.dark-mode .swal2-toast .swal2-html-container b{color:#60a5fa}.zalo-chat-bubble{position:fixed;bottom:25px;right:25px;width:60px;height:60px;background-color:#0068ff;border-radius:50%;box-shadow:0 4px 12px rgba(0,0,0,.2);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s ease;z-index:999}.zalo-chat-bubble:hover{transform:scale(1.1)}.zalo-chat-bubble img{width:32px;height:32px}#zalo-iframe-container{display:none;position:fixed;bottom:25px;right:25px;width:350px;height:420px;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 5px 20px rgba(0,0,0,.2);overflow:hidden;z-index:1000}#zalo-iframe{width:100%;height:100%;border:none}#zalo-close-btn{position:absolute;top:5px;right:5px;width:24px;height:24px;background-color:rgba(0,0,0,.3);color:#fff;border:none;border-radius:50%;cursor:pointer;font-weight:700;font-size:14px;line-height:24px;text-align:center;z-index:1001}body.zalo-chat-open .zalo-chat-bubble{display:none}#personal-goal-container{border-left:5px solid var(--primary-color);background-color:#f0f7ff;text-align:center}body.dark-mode #personal-goal-container{background-color:#1f2937;border-left-color:var(--primary-hover-color)}#countdown-timer{font-size:1.3em;font-weight:700;color:var(--danger-color);margin-bottom:15px;animation:pulse-red 2s infinite}#exam-date-input{padding:10px;border-radius:8px;border:1px solid var(--light-border);font-size:1em;margin:0 10px 10px 0;background-color:var(--white-color);color:var(--text-color)}#reset-goal-button,#set-goal-button{width:auto;min-width:150px;margin:0 auto}#reset-goal-button{background-color:var(--secondary-color)!important}.exam-set-button{display:inline-block;padding:10px 24px;font-size:1em;font-weight:600;color:#fff;border:none;border-radius:8px;text-align:center;cursor:pointer;transition:all .2s ease-in-out;text-decoration:none;box-shadow:0 2px 4px rgba(0,0,0,.1)}.exam-set-button:hover{transform:translateY(-2px);box-shadow:0 4px 8px rgba(0,0,0,.15)}.exam-set-button:disabled{cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}#set-goal-button,.category-button-group>.exam-set-button{background-color:var(--primary-color)}#set-goal-button:hover,.category-button-group>.exam-set-button:hover{background-color:var(--primary-hover-color)}#reset-goal-button{background-color:var(--secondary-color)!important}#reset-goal-button:hover{background-color:var(--secondary-hover-color)!important}.swal2-popup.features-popup-custom{max-width:1200px!important}.swal2-popup.contact-popup{max-width:700px!important}.swal2-popup.guide-popup{max-width:650px!important}body.zalo-chat-hidden .zalo-chat-widget{display:none!important;visibility:hidden!important;opacity:0!important}@media (max-width:768px){#quiz-main-screen{position:relative;padding-top:60px}#quiz-main-screen .quiz-header-mobile{position:absolute;top:0;left:0;width:100%;z-index:100;background-color:var(--white-color);padding:8px 15px;box-sizing:border-box;border-bottom:1px solid var(--light-border);display:flex;align-items:center;gap:15px}#quiz-main-screen .quiz-header-mobile.sticky{position:fixed;box-shadow:0 2px 8px rgba(0,0,0,.1)}#quiz-main-screen .quiz-header-mobile .progress-container{flex-grow:1;margin-bottom:0}#quiz-main-screen .quiz-header-mobile .timer{position:static;margin-bottom:0;flex-shrink:0}}.swal2-popup.video-popup-fullscreen{width:90vw!important;max-width:90vw!important;padding:1em!important}.swal2-popup.video-popup-fullscreen .swal2-html-container{padding:0;margin:1em 0 0 0}.swal2-container.custom-toast-container{pointer-events:none}.swal2-popup.custom-toast-popup{padding:1em!important;border-radius:12px!important;width:auto!important;max-width:400px!important;box-shadow:0 5px 15px rgba(0,0,0,.15)!important;pointer-events:auto;display:flex!important;align-items:center!important}.swal2-popup.custom-toast-popup .swal2-header{padding:0 .5em!important}.swal2-popup.custom-toast-popup .swal2-title{font-size:1em!important}.swal2-popup.custom-toast-popup .swal2-actions{margin:0 0 0 1.5em!important}@media (max-width:768px){#quiz-main-screen .quiz-header-mobile{padding-top:12px;padding-bottom:12px}#quiz-main-screen .progress-container{height:26px}#quiz-main-screen .progress-text{font-size:1em}#quiz-main-screen .timer{font-size:1.4em}}
.horizontal-scroll-container .exam-set-button {
    min-width: 230px; 
    text-align: center;
}
/* === HIỆU ỨNG THANH TRƯỢT VÀ SHADOW CHUYỂN MÀU (Bản hoàn chỉnh) === */

/* 1. Tạo không gian cho shadow và định vị các phần tử con */
.horizontal-scroll-container {
    position: relative;
    z-index: 2;
    display: flex;
    overflow-x: auto;
    box-sizing: border-box;
    width: 100%;
}

/* 3. Thanh tiến trình với hiệu ứng trượt màu */
.custom-scrollbar-wrapper .scroll-progress-track {
    position: relative;
    height: 5px;
    background-color: #f0f0f0;
    border-radius: 5px;
    overflow: hidden;
}

.custom-scrollbar-wrapper .scroll-progress-thumb {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    border-radius: 5px;
    background: repeating-linear-gradient(
        90deg,
        #f1c40f, #e67e22 16.66%,
        #e74c3c 16.66%, #e91e63 33.33%,
        #3498db 33.33%, #2ecc71 50%,
        #f1c40f 50%, #e67e22 66.66%,
        #e74c3c 66.66%, #e91e63 83.33%,
        #3498db 83.33%, #2ecc71 100%
    );
    background-size: 200% 100%; /* Giữ nguyên, cần thiết cho hiệu ứng trượt */
    animation: slide-colors 5s linear infinite; /* Giữ nguyên animation */
    transition: left 0.1s linear, width 0.1s linear;
}

/* 4. Định nghĩa chuyển động trượt ngang */
@keyframes slide-colors {
    0% { background-position: 0% 50%; }
    100% { background-position: -100% 50%; }
}

/* === SỬA LỖI THANH TIẾN TRÌNH CHO DI ĐỘNG === */
@media (max-width: 768px) {
    .custom-scrollbar-wrapper {
        width: 100%;
        margin: 0 auto;
        position: relative;
        box-sizing: border-box;
    }


    .horizontal-scroll-container {
        padding: 0;
        width: 100%;
        justify-content: flex-start;
    }
}
/* Sửa đổi file style.css */
/* Tạo khoảng cách cho các nút và đường kẻ */
.horizontal-scroll-container {
    padding-left: 8px; /* Tạo khoảng cách nhỏ với đường kẻ dọc bên trái */
    padding-right: 8px; /* Tạo khoảng cách nhỏ với đường kẻ dọc bên phải */
    box-sizing: border-box;
}

/* TẠO LỚP PHỦ CHỨA CÁC ĐƯỜNG KẺ DỌC */
.custom-scrollbar-wrapper::before,
.custom-scrollbar-wrapper::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 5px; /* Tăng độ dày từ 2px lên 5px */
    background-color: #ffb703; /* Màu vàng cam của đường kẻ */
    z-index: 10;
}

.custom-scrollbar-wrapper::before {
    left: 0;
}

.custom-scrollbar-wrapper::after {
    right: 0;
}

/* Đảm bảo thanh tiến trình trên và dưới không bị bo tròn ở đầu */
.scroll-progress-track.top,
.scroll-progress-track.bottom {
    border-radius: 0;
}

.scroll-progress-track.top {
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
}

.scroll-progress-track.bottom {
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
}

.custom-scrollbar-wrapper .scroll-progress-thumb {
    border-radius: 0;
}
/* Thêm đoạn mã này vào cuối file style.css */
.custom-scrollbar-wrapper {
    position: relative; /* Đảm bảo các pseudo-element được định vị tương đối */
    padding-left: 5px;  /* Thêm khoảng cách cho đường kẻ dọc */
    padding-right: 5px; /* Thêm khoảng cách cho đường kẻ dọc */
    box-sizing: border-box;
}

.custom-scrollbar-wrapper::before,
.custom-scrollbar-wrapper::after {
    content: '';
    position: absolute;
    
    background-color: #ffb703;
    z-index: 10;
    border-radius: 0; /* Vẫn giữ nguyên dòng này */
}

.custom-scrollbar-wrapper::before {
    left: 0;
}

.custom-scrollbar-wrapper::after {
    right: 0;
}

/* Sửa đổi để các thanh tiến trình không bị bo tròn ở hai đầu */
.scroll-progress-track {
    border-radius: 0 !important;
}
/* === CSS CHO LINH VẬT TƯƠNG TÁC === */

#interactive-mascot {
    position: fixed; /* Luôn hiển thị ở một vị trí cố định trên màn hình */
    bottom: 5px; /* Vị trí cách đáy màn hình */
    left: -80px; /* Bắt đầu từ bên ngoài màn hình bên trái */
    width: 70px; /* Chiều rộng của chú mèo */
    height: 70px; /* Chiều cao của chú mèo */
    background-image: url('./images/cat.png'); /* Sử dụng hình ảnh bạn đã tải */
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 999; /* Hiển thị trên các phần tử khác */
    cursor: pointer;
    transition: transform 0.2s ease-in-out;

    /* Gọi hiệu ứng đi bộ */
    animation: walk-across-screen 25s linear infinite;
    animation-delay: 5s; /* Bắt đầu đi sau 5 giây */
}

/* Hiệu ứng đi bộ qua màn hình */
@keyframes walk-across-screen {
    from {
        left: -80px; /* Bắt đầu từ trái */
        transform: scaleX(1); /* Hướng mặt sang phải */
    }
    49% {
        transform: scaleX(1); /* Vẫn hướng mặt sang phải */
    }
    50% {
        left: calc(100vw + 80px); /* Đi đến hết bên phải */
        transform: scaleX(-1); /* Lật ngược hình ảnh để quay đầu lại */
    }
    99% {
        transform: scaleX(-1); /* Vẫn hướng mặt sang trái */
    }
    to {
        left: -80px; /* Về lại vị trí ban đầu */
        transform: scaleX(1); /* Quay đầu lại cho vòng lặp tiếp theo */
    }
}

/* Hiệu ứng nhảy lên khi được chạm vào */
#interactive-mascot.jump {
    transform: translateY(-20px) rotate(-10deg) scale(1.1);
}

/* Chỉ hiển thị trên di động */
@media (min-width: 769px) {
    #interactive-mascot {
        display: none;
    }
}
/* === CSS CHO NÚT CHIA SẺ BỘ ĐỀ === */

/* CSS cho nút Sao chép link và các nút chia sẻ khác */
.social-share-btn {
    background-color: #252525;
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 10px 18px;
    font-size: 1em;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,.1);
    display: flex;
    align-items: center;
    gap: 8px;
}
.social-share-btn:hover {
    background-color: #444;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,.15);
}
.fb-share-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px; /* Thêm khoảng cách giữa các nút */
}
.fb-like {
    padding-top: 5px;
}
/* CSS cho Lộ Trình (đã cập nhật) */
.strategy-timeline {
    position: relative;
    padding: 20px 0;
    margin-top: 20px;
}
.strategy-timeline::before {
    content: '';
    position: absolute;
    top: 0;
    left: 30px;
    height: 100%;
    width: 4px;
    background-color: #e9ecef;
    border-radius: 2px;
}
body.dark-mode .strategy-timeline::before {
    background-color: var(--light-border);
}
.strategy-step {
    position: relative;
    display: flex;
    align-items: flex-start;
    margin-bottom: 30px;
    padding-left: 60px;
}
.strategy-step:last-child {
    margin-bottom: 0;
}
.strategy-icon {
    position: absolute;
    left: 30px;
    top: 0;
    transform: translateX(-50%);
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: var(--primary-color);
    color: white;
    font-size: 1.4em;
    font-weight: 700;
    display: flex;
    justify-content: center;
    align-items: center;
    border: 5px solid var(--body-bg);
    z-index: 1;
}
body.dark-mode .strategy-icon {
    border-color: var(--white-color);
}
.strategy-content {
    background-color: var(--light-bg);
    padding: 15px 20px;
    border-radius: 8px;
    width: 100%;
    border: 1px solid var(--light-border);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.strategy-content:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
}
body.dark-mode .strategy-content:hover {
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
}
.strategy-content h4 {
    margin-top: 0;
    margin-bottom: 8px;
    color: var(--primary-hover-color);
}
.strategy-content p {
    margin: 0;
    line-height: 1.6;
}
.strategy-icon.learning-icon {
    background-color: var(--success-color);
}
@media (max-width: 768px) {
    .strategy-timeline::before { left: 15px; }
    .strategy-step { padding-left: 40px; }
    .strategy-icon { width: 34px; height: 34px; font-size: 1em; }
}

/* CSS cho tính năng thu gọn/mở rộng (đã cập nhật) */
.guidelines.guidelines-animated {
    padding: 0; /* Xóa padding của thẻ cha */
    position: relative; /* Bắt buộc để định vị các đường kẻ con */
    overflow: hidden; /* Ẩn các phần thừa của animation */
}
.collapsible-inner-wrapper {
    padding: 20px; /* Di chuyển padding vào thẻ con */
    background-color: var(--white-color);
    border-radius: 8px; /* Bo góc cho nội dung bên trong */
    overflow: hidden; /* Đảm bảo nội dung được bo góc đúng */
}
body.dark-mode .collapsible-inner-wrapper {
    background-color: var(--body-bg);
}
.collapsible-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    background-color: transparent;
    border: none;
    padding: 10px 0;
    cursor: pointer;
    text-align: left;
}
.collapsible-header h3 {
    margin: 0;
    color: var(--text-color);
    font-size: 1.3em;
    font-weight: 700;
}
.toggle-icon {
    font-size: 2.5em;
    font-weight: 200;
    color: var(--primary-color);
    transition: transform 0.3s ease;
}
.collapsible-header.active .toggle-icon {
    transform: rotate(45deg);
}
.collapsible-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-in-out;
}

/* === HIỆU ỨNG VỆT SÁNG QUÉT QUANH VIỀN (PHIÊN BẢN MỚI) === */

/* Bọc ngoài cùng của khối animation */
.guidelines.guidelines-animated {
    padding: 5px; /* TĂNG ĐỘ DÀY VIỀN */
    position: relative;
    background: var(--light-border); /* Màu nền mờ cho viền */
    border-radius: 10px; /* Bo góc ngoài cùng */
    overflow: hidden;
}

/* Lớp giả tạo hiệu ứng ánh sáng xoay */
.guidelines.guidelines-animated::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200%; /* Lớn hơn thẻ cha để tạo hiệu ứng quét */
    height: 200%;
    /* MÀU ĐÃ ĐƯỢC CHUYỂN SANG ĐỎ ĐỂ NỔI BẬT HƠN */
    background: conic-gradient(
        from 0deg,
        transparent 0%,
        transparent 70%,
        var(--danger-color) 80%,
        var(--danger-color) 90%,
        transparent 100%
    );
    animation: rotate-light 4s linear infinite;
    transform-origin: center center;
}

/* Lớp nội dung bên trong, che đi hiệu ứng và chỉ để lộ phần viền */
.collapsible-inner-wrapper {
    padding: 15px; /* Điều chỉnh padding để khớp với viền mới (20px cũ - 5px viền) */
    background-color: var(--white-color);
    border-radius: 8px; /* Bo góc nhỏ hơn một chút để tạo viền */
    overflow: hidden;
    position: relative; /* Đè lên trên lớp giả ::before */
    z-index: 1;
}

body.dark-mode .collapsible-inner-wrapper {
    background-color: var(--body-bg);
}

/* Animation xoay vệt sáng */
@keyframes rotate-light {
    from {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

/* Tắt animation khi đã mở */
.guidelines-animated.is-opened::before {
    display: none;
}
/* CSS cho nút Thu gọn ở cuối lộ trình */
.collapse-footer-button {
    display: block;
    width: 150px;
    margin: 20px auto 0;
    padding: 10px 20px;
    background-color: var(--secondary-color);
    color: var(--white-color);
    border: none;
    border-radius: 20px;
    font-size: 1em;
    font-weight: 600;
    cursor: pointer;
    transition: all .2s ease;
}

.collapse-footer-button:hover {
    background-color: var(--secondary-hover-color);
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
/* CSS cho khối Cá nhân hóa */
#personalization-container {
    border-left: 5px solid var(--success-color);
    background-color: #f0fff4;
}

body.dark-mode #personalization-container {
    background-color: #1a2c21;
    border-left-color: var(--success-hover-color);
}

.name-input-group {
    display: flex;
    gap: 10px;
    margin-top: 15px;
}

#user-name-input {
    flex-grow: 1;
    padding: 12px 15px;
    font-size: 1em;
    border: 1px solid var(--light-border);
    border-radius: 8px;
    background-color: var(--white-color);
    color: var(--text-color);
}

#save-name-button {
    flex-shrink: 0;
    padding: 12px 25px;
    font-size: 1em;
    font-weight: 600;
    background-color: var(--success-color);
    color: #fff;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color .2s;
}

#save-name-button:hover {
    background-color: var(--success-hover-color);
}
#test-mode-section {
    margin-top: 20px;
}

.section-title {
    font-size: 1.2em; /* Tăng kích thước chữ cho dễ đọc hơn */
}
/* --- CSS CHO CHỨC NĂNG CHỈNH CỠ CHỮ --- */

/* 1. Tạo kiểu cho nút mới thay thế nút rung */
#font-size-toggle-button {
    background: none;
    border: 2px solid var(--light-border);
    border-radius: 20px;
    cursor: pointer;
    font-size: 1.2rem;
    padding: 6px 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all .3s ease;
    margin-right: 10px;
    font-weight: bold;
}

#font-size-toggle-button:hover {
    border-color: var(--primary-color);
}

/* 2. Tạo kiểu cho bảng điều khiển (mặc định ẩn) */
.font-size-controls {
    display: none; /* Mặc định ẩn */
    position: fixed;
    top: 75px; /* Vị trí ngay dưới header */
    right: 20px;
    background-color: var(--white-color);
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.15);
    z-index: 101;
    padding: 8px;
    border: 1px solid var(--light-border);
}

.font-size-controls.visible {
    display: flex; /* Hiện khi có class 'visible' */
    gap: 8px;
}

.font-size-controls button {
    padding: 8px 16px;
    font-size: 0.9em;
    font-weight: 600;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background-color: transparent;
    color: var(--text-color);
    transition: all 0.2s ease;
}

.font-size-controls button:hover {
    background-color: var(--light-bg);
}

.font-size-controls button.active {
    background-color: var(--primary-color);
    color: var(--white-color);
}

body.dark-mode .font-size-controls button.active {
     color: #fff;
}

/* 3. Các lớp CSS để thay đổi cỡ chữ toàn trang */
body.font-size-small {
    font-size: 14px;
    line-height: 1.5;
}

body.font-size-medium {
    font-size: 16px; /* Cỡ chữ mặc định */
    line-height: 1.6;
}

body.font-size-large {
    font-size: 18px;
    line-height: 1.7;
}

.typing-effect {
  display: inline-block;
  position: relative;
  overflow: hidden;
  white-space: nowrap;
  border-right: .15em solid transparent;
  animation: 
    typing 4s steps(33, end),
    blink-caret .75s step-end infinite; /* Tốc độ nháy có thể chỉnh ở đây */
}

/* Hiệu ứng gõ chữ */
@keyframes typing {
  from { width: 0; }
  to { width: 100%; }
}

/* Hiệu ứng nhấp nháy cho con trỏ */
@keyframes blink-caret {
  from, to { border-color: transparent; }
  50% { 
    border-color: var(--caret-color); /* THAY ĐỔI: Sử dụng biến màu tại đây */
  }
}

/* Lớp giả tạo vệt sáng */
.typing-effect::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.5) 50%, transparent 100%);
  transform: translateX(-100%);
  animation: light-sweep 1s forwards 4s;
}

@keyframes light-sweep {
  to { transform: translateX(100%); }
}

/* ---- BẮT ĐẦU ĐOẠN CODE THAY THẾ ---- */

/* 1. Thiết lập layout Flexbox cho thẻ cha lớn nhất */
.scroll-container-wrapper {
    position: relative; /* Giữ lại để làm điểm tựa cho các phần tử con nếu cần */
    display: flex; /* QUAN TRỌNG: Chuyển sang Flexbox */
    align-items: center; /* Căn giữa các phần tử theo chiều dọc */
    gap: 10px; /* Tạo khoảng cách nhỏ giữa nút và khu vực cuộn */
}

/* 2. Cho phép khu vực cuộn co giãn linh hoạt */
.custom-scrollbar-wrapper {
    flex-grow: 1; /* QUAN TRỌNG: Cho phép nó chiếm hết không gian còn lại */
    min-width: 0; /* QUAN TRỌNG: Một mẹo để Flexbox hoạt động đúng với overflow */
}

/* 3. Thiết lập lại style cho các nút bấm (không còn position: absolute) */
.scroll-btn {
    /* BỎ ĐI CÁC THUỘC TÍNH CŨ: position, top, transform, left, right, z-index */
    flex-shrink: 0; /* Ngăn nút bị co lại khi không đủ không gian */
    z-index: 20;
    /* Giữ lại các style trang trí */
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.9);
    border: 1px solid #ddd;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
    font-size: 24px;
    font-weight: bold;
    color: #333;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 1;
}

.scroll-btn:hover {
    background-color: #fff;
    transform: scale(1.1); /* Giữ lại hiệu ứng hover đẹp mắt */
}

.scroll-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
    transform: none; /* Bỏ hiệu ứng hover khi nút bị vô hiệu hóa */
}

body.dark-mode .scroll-btn {
    background-color: rgba(55, 65, 81, 0.9);
    border-color: #4b5563;
    color: #e5e7eb;
}

body.dark-mode .scroll-btn:hover {
    background-color: #4b5563;
}

/* Ẩn nút trên màn hình di động vì đã có thể vuốt */
@media (max-width: 768px) {
    .scroll-btn {
        display: none;
    }
}

/* ---- KẾT THÚC ĐOẠN CODE THAY THẾ ---- */
/* Thêm vào cuối file style.css */
/* Ẩn menu điều hướng câu hỏi trên di động */
@media (max-width: 768px) {
    #question-navigation-menu,
    #question-paging-tabs {
        display: none;
    }
}
/* CSS cho nút Donate */
#donate-button {
    background-color: #f39c12; /* Màu vàng cam ấm áp */
    color: #fff;
    margin-top: 15px;
    border: none;
    box-shadow: 0 4px 15px rgba(243, 156, 18, .3);
}

#donate-button:hover {
    background-color: #e67e22; /* Màu đậm hơn khi di chuột qua */
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(243, 156, 18, .4);
}
/* Ghi đè chiều rộng cho popup Donate */
.swal2-popup.donate-popup {
    width: 600px !important;
    max-width: 90%; /* Đảm bảo hiển thị tốt trên màn hình nhỏ hơn */
}
/* Tăng chiều rộng, căn giữa chữ và xóa lề cho ô nhập số tiền */
.swal2-popup.donate-popup .swal2-input {
    width: 100% !important;
    box-sizing: border-box;
    text-align: center;
    margin-left: 0 !important;  /* Ghi đè lề trái */
    margin-right: 0 !important; /* Ghi đè lề phải */
}
/* --- CSS cho danh sách Cam kết --- */
.commitment-list {
    list-style: none; /* Xóa dấu chấm đầu dòng mặc định */
    padding-left: 0;
    margin: 0;
}

.commitment-list li {
    display: flex; /* Sắp xếp icon và chữ trên một hàng */
    align-items: flex-start; /* Căn lề trên cho đẹp nếu text dài */
    font-size: 1.05em;
    line-height: 1.6;
    margin-bottom: 15px; /* Khoảng cách giữa các dòng */
}

.commitment-list li:last-child {
    margin-bottom: 0;
}

/* Thêm icon checkmark màu xanh trước mỗi cam kết */
.commitment-list li::before {
    content: '✅'; /* Biểu tượng checkmark */
    color: var(--success-color);
    font-size: 1.2em;
    margin-right: 12px; /* Khoảng cách giữa icon và chữ */
    margin-top: 1px;
}
/* --- Hiệu ứng Gradient động cho Footer --- */
.footer {
    position: relative; /* Quan trọng để làm nền cho pseudo-element */
    padding: 40px 20px;
    color: var(--text-color);
    overflow: hidden; /* Ẩn phần gradient tràn ra ngoài */
    border-top: 1px solid var(--light-border);
    background-color: var(--white-color); /* Màu nền cho trình duyệt cũ */
}

.footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: -50%; /* Bắt đầu từ bên ngoài */
    width: 200%; /* Rộng gấp đôi để có không gian di chuyển */
    height: 100%;
    z-index: 1; /* Nằm dưới nội dung */
    background: linear-gradient(
        60deg, 
        hsla(200, 80%, 95%, 1), 
        hsla(220, 80%, 95%, 1), 
        hsla(280, 80%, 95%, 1), 
        hsla(220, 80%, 95%, 1),
        hsla(200, 80%, 95%, 1)
    );
    background-size: 200% auto;
    animation: animateGradient 15s linear infinite; /* Tốc độ chuyển màu */
}

/* CSS cho Dark Mode */
body.dark-mode .footer::before {
    background: linear-gradient(
        60deg, 
        hsla(220, 15%, 15%, 1), 
        hsla(220, 15%, 10%, 1),
        hsla(260, 15%, 15%, 1), 
        hsla(220, 15%, 10%, 1),
        hsla(220, 15%, 15%, 1)
    );
    background-size: 200% auto;
}

/* Nội dung của footer */
.footer-content {
    position: relative;
    z-index: 2; /* Đảm bảo nội dung luôn nổi trên nền gradient */
    text-align: center;
}

/* Keyframe cho animation */
@keyframes animateGradient {
    0% {
        background-position: 0% 50%;
    }
    100% {
        background-position: 200% 50%;
    }
}
/* Sửa lỗi màu chữ cho nút Font Size trong Dark Mode */
body.dark-mode #font-size-toggle-button {
    color: var(--text-color); /* Dùng màu chữ mặc định của dark mode */
    border-color: var(--light-border); /* Dùng màu viền mặc định của dark mode */
}

body.dark-mode .font-size-controls {
    background-color: var(--white-color);
    border-color: var(--light-border);
}

body.dark-mode .font-size-controls button {
    color: var(--text-color);
}

body.dark-mode .font-size-controls button:hover {
    background-color: var(--light-bg);
}

body.dark-mode .font-size-controls button.active {
    background-color: var(--primary-color);
    color: #fff; /* Chữ trắng trên nền màu chính */
}
/* Ẩn nút và bảng điều khiển font chữ khi không ở màn hình chọn đề */
body:not([data-screen="selection"]) #font-size-toggle-button,
body:not([data-screen="selection"]) .font-size-controls {
    display: none !important;
}
/* Điều chỉnh bố cục cho ô nhập tên và nút Lưu/Bắt đầu */
.name-input-group {
    display: flex; /* Bật Flexbox */
    flex-wrap: wrap; /* Cho phép các mục tự động xuống hàng */
    gap: 10px; /* Tạo khoảng cách giữa các mục */
    justify-content: center; /* Căn giữa các mục */
    align-items: center; /* Căn giữa theo chiều dọc */
}

.name-input-group input {
    flex-grow: 1; /* Cho phép ô input mở rộng tối đa */
    min-width: 200px; /* Đảm bảo ô input không quá nhỏ */
    padding: 12px 15px; /* Tăng padding cho đẹp hơn */
    border: 1px solid var(--light-border);
    border-radius: 8px;
    font-size: 1.1em;
    transition: border-color 0.3s ease;
}

.name-input-group button {
    /* Đảm bảo nút có thể xuống hàng và hiển thị đẹp */
    flex-shrink: 0; /* Không cho phép nút bị co lại */
    padding: 12px 20px; /* Tăng padding cho nút */
    font-size: 1.1em;
    border-radius: 8px;
    white-space: nowrap; /* Đảm bảo chữ trên nút không bị xuống dòng */
}

/* Đảm bảo input và button trông đẹp trên di động */
@media (max-width: 600px) {
    .name-input-group input,
    .name-input-group button {
        width: 100%; /* Trên màn hình nhỏ, cả hai chiếm toàn bộ chiều rộng */
    }
}