 /* ==========================================================================
           1. ĐỊNH NGHĨA BIẾN MÀU SẮC (THEME VARIABLE)
           ========================================================================== */
 :root {
     --bg: #f8fafc;
     --container-bg: #ffffff;
     --text: #1e293b;
     --text-secondary: #64748b;
     --card-front: #4e46e518;
     --card-back: #10b9811f;
     --card-text-back: #1e1b4b;
     --border: #c5cbd3;
     --primary: #4f46e5;
     --primary-hover: #4338ca;
     --btn-bg: #ffffff;
     --btn-border: #cbd5e1;
     --select-bg: #f1f5f9;
     --danger: #ef44448c;
     --danger-hover: #dc2626;
     --warning: #f59f0b8f;
     --warning-hover: #d97706;
     --btn-comfirm: #10b98188;
     --btn-comfirm-hover: #059669;
     --overlay-bg: rgba(15, 23, 42, 0.4);
 }

 /* Khi kích hoạt chế độ nền tối (Dark Mode) */
 [data-theme="dark"] {
     --bg: #0f172a;
     --container-bg: #1e293b;
     --text: #f8fafc;
     --text-secondary: #94a3b8;
     --card-text-back: #e0e7ff;
     --border: #334155;
     --primary: #6366f1;
     --primary-hover: #4f46e5;
     --btn-bg: #1e293b;
     --btn-border: #475569;
     --select-bg: #334155;
     --overlay-bg: rgba(0, 0, 0, 0.6);
 }

 /* ==========================================================================
           2. CẤU TRÚC LAYOUT VÀ THIẾT KẾ CHUNG
           ========================================================================== */
 * {
        -webkit-tap-highlight-color: transparent;

     box-sizing: border-box;
     margin: 0;
     padding: 0;
 }
/* Tắt viền focus xanh */
button,
select,
input,
textarea,
.flashcard-wrapper,
.audio-btn {
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

/* Tắt focus trên mobile */
button:focus,
button:active,
button:focus-visible,
select:focus,
input:focus,
.flashcard-wrapper:focus {
    outline: none;
    box-shadow: none;
}
 body {
     font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
     background-color: var(--bg);
     color: var(--text);
     display: flex;
     justify-content: center;
     align-items: center;
     min-height: 100vh;
     padding: 10px;
     box-sizing: border-box;
     transition: background-color 0.3s, color 0.3s;
 }

 .container {
     display: flex;
     flex-direction: column;
     background-color: var(--container-bg);
     border: 1px solid var(--border);
     border-radius: 20px;
     padding: 2rem;
     width: 100%;
     max-width: 550px;
     height: 100%;
     box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
     transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s;
 }

 /* Điện thoại */
 @media (max-width: 768px) {
     .container {
         max-width: 100%;
         padding: 20px;
         border-radius: 15px;
     }
 }

 /* Điện thoại rất nhỏ */
 @media (max-width: 480px) {
     .container {
         padding: 15px;
         border-radius: 12px;
     }
 }

 .top-bar {
     display: flex;
     justify-content: space-between;
     align-items: center;
     margin-bottom: .5rem;
 }

 .top-bar h1 {
     text-align: center;
     font-size: 24px;
     font-weight: 700;
     color: var(--text);
     letter-spacing: -0.5px;
 }

 hr {
     display: block;
     height: 1px;
     border: 0;
     border-top: 2px dashed var(--border);
     margin: .5rem 0 .5rem 0;
     padding: 0;
 }

 .action-bar {
     display: flex;
     justify-content: space-between;
     margin-bottom: .5rem;
 }

 .action-bar .counter {
     font-size: 1rem;
     color: var(--text-secondary);
     font-weight: 600;

 }


 /* ==========================================================================
           3. KHU VỰC CẤU HÌNH & CHỌN FILE (CONFIG-ZONE)
           ========================================================================== */
 .config-zone {
     display: flex;
     flex-direction: column;

     /* margin-bottom: .5rem; */
 }



 .file-upload-label {
     background-color: var(--select-bg);
     border: 2px dashed var(--btn-border);
     border-radius: 10px;
     width: auto;
     height: auto;
     padding: 0 16px;

     display: flex;
     align-items: center;
     justify-content: center;
     gap: 8px;

     text-align: center;
     cursor: pointer;

     font-size: 13px;
     font-weight: 600;
     color: var(--text-secondary);

     transition:
         border-color 0.2s,
         background-color 0.2s,
         color 0.2s;
 }

 .file-upload-label:hover {
     border-color: var(--accent-color);
     background: rgba(0, 123, 255, 0.05);
 }

 #fileInput {
     position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
     clip: rect(0, 0, 0, 0);
     border: 0;
 }

 /* Khu vực Dropdown chọn chủ đề */
 .list-selector-zone {
     display: flex;
     flex-direction: column;
     gap: .5rem;
 }

 .list-selector-zone label,
 .review-zone label {
     font-size: 13px;
     font-weight: 700;
     color: var(--text-secondary);
     letter-spacing: 0.3px;
 }

 .selector-row {
     display: flex;
     max-height: 50px;
     margin-bottom: .5rem;
     gap: .5rem;
 }

 select {
     flex: 1;
     padding: 10px 14px;
     font-size: 14px;
     font-weight: 500;
     border-radius: 10px;
     border: 1px solid var(--btn-border);
     background-color: var(--container-bg);
     color: var(--text);
     outline: none;
     cursor: pointer;
     transition: border-color 0.2s;
 }

 select:focus {
     border-color: var(--primary);
 }

 /* Khu vực thiết lập Ôn tập tổng hợp */
 .review-zone {
     display: flex;
     flex-direction: column;
     gap: .5rem;
 }

 /* ==========================================================================
           4. BẢNG QUẢN LÝ CHECKLIST - ĐÃ SỬA THÀNH POPUP WINDOW (MODAL)
           ========================================================================== */
 .modal-overlay {
     position: fixed;
     top: 0;
     left: 0;
     width: 100vw;
     height: 100vh;
     background-color: var(--overlay-bg);
     backdrop-filter: blur(5px);
     -webkit-backdrop-filter: blur(5px);
     display: flex;
     justify-content: center;
     align-items: center;
     z-index: 1000;
     opacity: 0;
     pointer-events: none;
     transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
 }

 .modal-overlay.active {
     opacity: 1;
     pointer-events: auto;
 }

 .checker-panel {
     background-color: var(--container-bg);
     border: 1px solid var(--border);
     border-radius: 16px;
     padding: 24px;
     width: 90%;
     max-width: 500px;
     box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
     transform: scale(0.9);
     transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
     max-height: 85vh;
     display: flex;
     flex-direction: column;
 }

 .modal-overlay.active .checker-panel {
     transform: scale(1);
 }

 .checker-header-main {
     display: flex;
     justify-content: space-between;
     align-items: flex-start;
     border-bottom: 1px solid var(--border);
     padding-bottom: 14px;
     margin-bottom: 16px;
 }

 .checker-title h3 {
     margin: 0;
     font-size: 18px;
     font-weight: 700;
     color: var(--text);
 }

 .checker-subtitle {
     font-size: 12px;
     color: var(--text-secondary);
     margin-top: 2px;
 }

 .close-modal-btn {
     background: none !important;
     border: none !important;
     font-size: 24px;
     color: var(--text-secondary);
     cursor: pointer;
     width: 32px;
     height: 32px;
     display: flex;
     align-items: center;
     justify-content: center;
     border-radius: 50%;
     transition: background-color 0.2s, color 0.2s;
     padding: 0;
 }

 .close-modal-btn:hover {
     background-color: var(--select-bg);
     color: var(--text);
 }

 .checker-actions-top {
     display: flex;
     gap: 10px;
     margin-bottom: 14px;
 }

 .checker-actions-top button {
     font-size: 12px;
     padding: 8px 14px;
     font-weight: 600;
     flex: 1;
 }

 .checker-actions-top button.action-sub-btn {
     background-color: var(--select-bg);
     border-color: var(--btn-border);
     border: 2px dashed var(--btn-comfirm);
 }

 .checker-actions-top button.action-sub-btn:hover {
     background-color: var(--select-bg);
     border-color: var(--btn-comfirm-hover);
 }

 .checker-actions-top button.danger-btn {
     background-color: var(--select-bg);
     border: 2px dashed var(--danger);
 }

 .checker-actions-top button.danger-btn:hover {
     background-color: var(--select-bg);
     border-color: var(--danger-hover);
 }

 .checker-actions-top button.warning-btn {
     background-color: var(--select-bg);
     border: 2px dashed var(--warning);
 }

 .checker-actions-top button.warning-btn:hover {
     background-color: var(--select-bg);
     border-color: var(--warning-hover);
 }

 .checker-list {
     overflow-y: auto;
     display: flex;
     flex-direction: column;
     gap: 6px;
     padding-right: 4px;
     flex-grow: 1;
 }

 /* Tùy biến thanh cuộn trong danh sách modal */
 .checker-list::-webkit-scrollbar {
     width: 6px;
 }

 .checker-list::-webkit-scrollbar-track {
     background: transparent;
 }

 .checker-list::-webkit-scrollbar-thumb {
     background: var(--btn-border);
     border-radius: 10px;
 }

 .checker-list::-webkit-scrollbar-thumb:hover {
     background: var(--text-secondary);
 }

 .checker-item {
     display: flex;
     align-items: center;
     gap: 12px;
     padding: 10px 14px;
     background-color: var(--select-bg);
     border-radius: 8px;
     border: 1px solid transparent;
     transition: all 0.2s ease;
 }

 .checker-item:hover:not(.system-item) {
     border-color: var(--btn-border);
     background-color: var(--bg);
 }

 .checker-item label {
     cursor: pointer;
     font-size: 13.5px;
     font-weight: 500;
     color: var(--text);
     flex: 1;
     display: flex;
     justify-content: space-between;
     align-items: center;
     user-select: none;
 }

 /* Badge nhãn định dạng loại file bên phải */
 .checker-badge {
     font-size: 11px;
     padding: 2px 8px;
     border-radius: 12px;
     font-weight: 600;
 }

 .badge-local {
     background-color: rgba(79, 70, 229, 0.1);
     color: var(--primary);
 }

 .badge-system {
     background-color: rgba(100, 116, 139, 0.1);
     color: var(--text-secondary);
 }

 .checker-item input[type="checkbox"] {
     width: 18px;
     height: 18px;
     accent-color: var(--primary);
     cursor: pointer;
 }

 /* Vô hiệu hóa và làm mờ các bộ từ của API hệ thống */
 .checker-item.system-item {
     opacity: 0.5;
     background-color: transparent;
     border: 1px dashed var(--border);
     cursor: not-allowed;
 }

 .checker-item.system-item label {
     cursor: not-allowed;
     color: var(--text-secondary);
 }

 .checker-item.system-item input[type="checkbox"] {
     cursor: not-allowed;
 }

 /* ==========================================================================
           5. TIẾN ĐỘ & BỘ ĐẾM (PROGRESS & COUNTER)
           ========================================================================== */
 .counter {
     text-align: center;
     font-size: 14px;
     color: var(--text-secondary);
     font-weight: 600;


 }

 .progress-container {
     background-color: var(--select-bg);
     border-radius: 10px;
     height: 6px;
     width: 100%;
     margin-bottom: .5rem;
     overflow: hidden;
 }

 .progress-bar {
     background-color: var(--primary);
     height: 100%;
     width: 0%;
     border-radius: 10px;
     transition: width 0.3s ease;
 }

 /* ==========================================================================
           6. GIAO DIỆN THẺ FLASHCARD THÔNG MINH
           ========================================================================== */
 .flashcard-wrapper {
     perspective: 1000px;
     width: 100%;
     min-height: 200px;
     height: 300px;
     margin-bottom: .5rem;
     cursor: pointer;
 }

 .flashcard {
     width: 100%;
     height: 100%;
     position: relative;
     transform-style: preserve-3d;
     transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
 }

 .flashcard.flipped {
     transform: rotateY(180deg);
 }

 .card-face {
     display: flex;
     position: absolute;
     width: 100%;
     height: 100%;
     backface-visibility: hidden;
     border-radius: 16px;
     border: 2px dashed var(--btn-comfirm);

     flex-direction: column;
     justify-content: center;
     align-items: center;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
 }



 /* Mặt trước */
 .card-front {
     border-color: var(--primary);
     background-color: var(--card-front);
     color: var(--text);
 }

 /* Mặt sau */
 .card-back {
     background-color: var(--card-back);
     color: var(--card-text-back);
     transform: rotateY(180deg);
 }

 .word {
     font-size: 38px;
     font-weight: 700;
     letter-spacing: -0.5px;
     text-align: center;
     margin-bottom: 10px;
     word-break: break-word;
 }

 .meaning {
     font-size: 28px;
     font-weight: 600;
     text-align: center;
     margin-bottom: 10px;
     word-break: break-word;
 }

 .hint-text {
     font-size: 11px;
     color: var(--text-secondary);
     position: absolute;
     bottom: 20px;
     text-transform: uppercase;
     letter-spacing: 1.5px;
     opacity: 0.7;
 }

 /* Nút phát âm âm thanh độc lập đặt trên mặt Front */
 .audio-btn {
     position: absolute;
     top: 15px;
     right: 15px;
     width: 42px;
     height: 42px;
     padding: 0;
     font-size: 18px;
     border-radius: 50%;
     background-color: var(--bg);
     border: 1px dashed var(--warning);
     color: var(--text);
     cursor: pointer;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
     transition: transform 0.2s, background-color 0.2s;
     z-index: 10;
 }

 .audio-btn:hover {

     transform: scale(1.08);
 }

 /* ==========================================================================
           7. HỆ THỐNG NÚT BẤM ĐIỀU KHIỂN (BUTTONS & CONTROLS)
           ========================================================================= */
 button {
     padding: 10px 16px;
     font-size: 14px;
     font-weight: 600;
     border-radius: 10px;
     border: 1px solid var(--btn-border);
     background-color: var(--btn-bg);
     color: var(--text);
     cursor: pointer;
     outline: none;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     transition: all 0.2s ease;
 }

 button:hover:not(:disabled) {
     background-color: var(--select-bg);
     border-color: var(--text-secondary);
 }

 button:disabled {
     opacity: 0.4;
     cursor: not-allowed;
 }

 .controls {
     display: flex;
     justify-content: space-between;
     gap: 15px;

 }

 .controls button {
     flex: 1;
     padding: 12px;
     font-size: 15px;
 }

 button.primary-btn {
     background-color: var(--primary);
     color: white;
     border: none;
 }

 button.primary-btn:hover:not(:disabled) {
     background-color: var(--primary-hover);
 }

 .manage-btn {
     padding: 0 16px;
 }

 .action-btns {
     display: flex;
     gap: 10px;
     border-top: 1px solid var(--border);
     padding-top: 20px;
 }

 .action-btns button {
     flex: 1;
     font-size: 13px;
     padding: 8px 12px;
 }

 /* Nút chuyển chế độ sáng tối ở góc trên */
 .theme-toggle-container {
     position: absolute;
     top: 20px;
     right: 20px;
 }

 .theme-btn {
     width: 40px;
     height: 40px;
     padding: 0;
     font-size: 18px;
     border-radius: 50%;
 }

 .current-word {
     color: #ef4444;
     /* đỏ */
     font-weight: 700;
 }

 .total-word {
     color: #22c55e;
     /* xanh */
     font-weight: 700;
 }

 .topic-name {
     color: var(--text-secondary);
     font-size: 0.9em;
 }