:root{--primary:#4a6cf7;--primary-dark:#3451db;--primary-light:#eef1fe;--accent-orange:#f97316;--accent-amber:#fbbf24;--accent-coral:#f43f5e;--bg:#fafaf8;--card-bg:#fff;--border:#e8e8e4;--text:#1a1a2e;--text-secondary:#6b7280;--text-light:#6b7280;--text-tertiary:#9ca3af;--success:#10b981;--error:#ef4444;--error-dark:#dc2626;--warning:#fbbf24}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fafaf8;background:var(--bg);color:#1a1a2e;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app,.auth-container{min-height:100vh}.auth-container{align-items:center;display:flex;justify-content:center;padding:1rem}.auth-card{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 8px #0000001a;max-width:400px;padding:2rem;width:100%}.auth-card h1{color:#4a6cf7;color:var(--primary);font-size:1.5rem;margin-bottom:.5rem}.auth-card h2{color:#1a1a2e;color:var(--text);font-size:1.25rem;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{color:#1a1a2e;color:var(--text);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select{border:1px solid #e8e8e4;border:1px solid var(--border);border-radius:8px;font-size:16px;padding:.75rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#4a6cf7;border-color:var(--primary);box-shadow:0 0 0 3px #4a6cf726;outline:none}.button-primary,button{background:#4a6cf7;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-size:16px;font-weight:600;padding:.875rem;text-align:center;text-decoration:none;transition:background .2s,transform .1s;width:100%}.button-primary:hover,button:hover{background:#3451db;background:var(--primary-dark)}button:active{transform:scale(.98)}button:disabled{cursor:not-allowed;opacity:.5;transform:none}.button-secondary{background:#0000;border:2px solid #4a6cf7;border:2px solid var(--primary);color:#4a6cf7;color:var(--primary)}.button-secondary:hover{background:#eef1fe;background:var(--primary-light)}.error-message{background:#fef2f2;color:#ef4444;color:var(--error)}.error-message,.success-message{border-radius:8px;font-size:.875rem;margin-bottom:1rem;padding:.75rem 1rem}.success-message{background:#ecfdf5;color:#10b981;color:var(--success)}.dashboard{margin:0 auto;max-width:800px;padding:1rem}.dashboard header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.dashboard header h1{font-size:1.5rem}.upload-button{align-items:center;display:flex;font-size:.875rem;gap:.5rem;padding:.625rem 1rem;width:auto}.stats-card{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin:1rem 0}.stat{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:1.5rem;text-align:center}.stat-value{color:#4a6cf7;color:var(--primary);display:block;font-size:2rem;font-weight:700}.stat-label{color:#6b7280;color:var(--text-light);display:block;font-size:.875rem;margin-top:.5rem}.filters-section{margin:1.5rem 0}.search-bar{display:flex;gap:.5rem;margin-bottom:1rem}.search-input{border:1px solid #e8e8e4;border:1px solid var(--border);border-radius:8px;flex:1 1;font-size:16px;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:#4a6cf7;border-color:var(--primary);box-shadow:0 0 0 3px #4a6cf726;outline:none}.filter-toggle-btn{background:#fff;background:var(--card-bg);border:1px solid #e8e8e4;border:1px solid var(--border);border-radius:8px;color:#4a6cf7;color:var(--primary);cursor:pointer;font-size:14px;font-weight:600;padding:.75rem 1.5rem;transition:background .2s,border-color .2s;white-space:nowrap}.filter-toggle-btn:hover{background:#fafaf8;background:var(--bg);border-color:#4a6cf7;border-color:var(--primary)}.filters-panel{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 4px #0000000d;margin-bottom:1rem;padding:1.5rem}.filter-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1rem}.filter-row:last-child{margin-bottom:0}.filter-group{display:flex;flex-direction:column}.filter-group label{color:#1a1a2e;color:var(--text);font-size:.875rem;font-weight:500;margin-bottom:.5rem}.filter-group input[type=date],.filter-group select{background:#fff;border:1px solid #e8e8e4;border:1px solid var(--border);border-radius:8px;font-size:14px;padding:.625rem;transition:border-color .2s,box-shadow .2s}.filter-group input[type=date]:focus,.filter-group select:focus{border-color:#4a6cf7;border-color:var(--primary);box-shadow:0 0 0 3px #4a6cf726;outline:none}.clear-filters-btn{background:#0000;border:1px solid #ef4444;border:1px solid var(--error);border-radius:8px;color:#ef4444;color:var(--error);cursor:pointer;font-size:14px;font-weight:600;padding:.625rem 1.25rem;transition:background .2s;width:100%}.clear-filters-btn:hover{background:#ef44441a}.lessons-list{margin-top:1.5rem}.lesson-card{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 4px #0000000d;color:inherit;display:block;margin-bottom:1rem;padding:1.5rem;text-decoration:none;transition:box-shadow .2s,transform .2s}.lesson-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.lesson-card h3{color:#1a1a2e;color:var(--text);font-size:1.125rem;margin-bottom:.5rem}.lesson-card p{font-size:.875rem;margin-bottom:1rem}.lesson-card p,.lesson-meta{color:#6b7280;color:var(--text-light)}.lesson-meta{display:flex;font-size:.75rem;gap:1rem}.empty-state{color:#6b7280;color:var(--text-light);padding:3rem 1rem;text-align:center}.empty-state p{margin-bottom:.5rem}.empty-state .button-primary{display:inline-block;margin-top:1rem;padding:.75rem 1.5rem;width:auto}.upload-container{margin:0 auto;max-width:600px;padding:1rem}.upload-container h1{font-size:1.5rem;margin-bottom:1.5rem}.image-preview{border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:1rem 0;overflow:hidden}.image-preview img{display:block;height:auto;transform-origin:center center;transition:transform .2s ease;width:100%}.image-preview-container{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:1.5rem 0;padding:1rem}.preview-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.preview-header h3{color:#1a1a2e;color:var(--text);font-size:1.125rem;margin:0}.remove-image-btn{background:#ef4444;background:var(--error);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background .2s;width:auto}.remove-image-btn:hover{background:#dc2626;background:var(--error-dark)}.image-metadata{background:#fafaf8;background:var(--bg);border-radius:8px;display:flex;flex-wrap:wrap;font-size:.875rem;gap:1rem;margin-bottom:1rem;padding:.75rem}.metadata-item{color:#6b7280;color:var(--text-light);gap:.25rem}.metadata-item,.zoom-controls{align-items:center;display:flex}.zoom-controls{background:#fafaf8;background:var(--bg);border-radius:8px;gap:.5rem;justify-content:center;margin-bottom:1rem;padding:.75rem}.zoom-controls button{background:#4a6cf7;background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;padding:.5rem 1rem;transition:background .2s;width:auto}.zoom-controls button:hover:not(:disabled){background:#3451db;background:var(--primary-dark)}.zoom-controls button:disabled{cursor:not-allowed;opacity:.4}.zoom-level{color:#1a1a2e;color:var(--text);font-weight:600;min-width:50px;text-align:center}.image-preview-wrapper{background:#f9f9f9;border-radius:8px;max-height:500px;overflow:auto}.image-preview-wrapper .image-preview{align-items:center;display:flex;justify-content:center;min-height:200px;padding:1rem}.language-selectors{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin:1rem 0}.lesson-detail{margin:0 auto;max-width:800px;padding:1rem}.lesson-detail h1{font-size:1.5rem;margin-bottom:.5rem}.lesson-detail .description{color:#6b7280;color:var(--text-light);margin-bottom:1.5rem}.content-list{margin-bottom:2rem}.content-item{align-items:center;background:#fff;background:var(--card-bg);border-radius:8px;display:flex;justify-content:space-between;margin-bottom:.75rem;padding:1rem}.content-item .source{font-weight:500}.content-item .target{color:#4a6cf7;color:var(--primary)}.start-practice{margin-top:2rem}.practice-session{display:flex;flex-direction:column;margin:0 auto;max-width:600px;min-height:100vh;padding:1rem}.progress-bar{background:#e8e8e4;background:var(--border);border-radius:2px;height:4px;margin-bottom:2rem}.progress-fill{background:#4a6cf7;background:var(--primary);border-radius:2px;height:100%;transition:width .3s ease}.practice-card{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex:1 1;flex-direction:column;padding:2rem}.flashcard .question,.multiple-choice .question{align-items:center;display:flex;flex:1 1;font-size:1.5rem;font-weight:600;justify-content:center;margin-bottom:2rem;text-align:center}.flashcard input{border:2px solid #e8e8e4;border:2px solid var(--border);border-radius:8px;font-size:1.125rem;padding:1rem;text-align:center;width:100%}.flashcard input:focus{border-color:#4a6cf7;border-color:var(--primary);outline:none}.options{display:flex;flex-direction:column;gap:.75rem}.options button{background:#eef1fe;background:var(--primary-light);border:2px solid #0000;color:#1a1a2e;color:var(--text);padding:1rem;text-align:left;width:100%}.options button:hover{background:#e8e8e4;background:var(--border)}.options button.selected{background:#4a6cf7;background:var(--primary);border-color:#4a6cf7;border-color:var(--primary);color:#fff}.feedback{border-radius:8px;font-weight:500;margin:1rem 0;padding:1rem;text-align:center}.feedback.correct{background:#ecfdf5;color:#10b981;color:var(--success)}.feedback.incorrect{background:#fef2f2;color:#ef4444;color:var(--error)}.feedback p{font-size:.875rem;font-weight:400;margin-top:.5rem}.submit-button{margin-top:auto}.session-info{color:#6b7280;color:var(--text-light);display:flex;font-size:.875rem;justify-content:space-between}.session-info,.word-list-view{padding:1rem 0}.session-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.progress-summary{text-align:right}.progress-text{color:#6b7280;color:var(--text-light);display:block;font-size:.875rem;margin-bottom:.5rem}.progress-bar-small{background:#e8e8e4;background:var(--border);border-radius:4px;height:8px;overflow:hidden;width:150px}.progress-bar-small .progress-fill{background:linear-gradient(90deg,#10b981,#059669);background:linear-gradient(90deg,var(--success),#059669);height:100%;transition:width .3s ease}.level-instructions{color:#6b7280;color:var(--text-light);font-size:.875rem;margin-bottom:1.5rem}.word-cards{grid-gap:1rem;display:grid;gap:1rem}.word-card{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 8px #00000014;padding:1.25rem}.word-title{color:#1a1a2e;color:var(--text);font-size:1.125rem;margin-bottom:1rem}.level-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.level-button{background:#eef1fe;background:var(--primary-light);border:2px solid #e8e8e4;border:2px solid var(--border);border-radius:8px;cursor:pointer;flex:1 1;min-width:100px;padding:.75rem .5rem;transition:all .2s ease}.level-button:hover:not(.locked):not(:disabled){background:#fff;background:var(--card-bg);border-color:#4a6cf7;border-color:var(--primary)}.level-button.completed{background:#ecfdf5;border-color:#10b981;border-color:var(--success)}.level-button.locked{background:#e8e8e4;background:var(--border);cursor:not-allowed;opacity:.6}.level-badge{align-items:center;display:flex;flex-direction:column;gap:.25rem}.level-emoji{font-size:1.5rem}.level-name{color:#6b7280;color:var(--text-light);font-size:.75rem;font-weight:600}.level-badge.completed .level-name{color:#10b981;color:var(--success)}.level-badge.locked .level-name{color:#9ca3af;color:var(--text-tertiary)}.level-indicator{background:linear-gradient(135deg,#eef1fe,#e8e8e4);background:linear-gradient(135deg,var(--primary-light) 0,var(--border) 100%);border-radius:20px;color:#6b7280;color:var(--text-secondary);font-size:.875rem;margin-bottom:1.5rem;padding:.5rem 1rem;text-align:center}.practice-header{margin-bottom:1rem}.unlock-message{color:inherit;font-weight:600;margin-top:.5rem}.completion-screen{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:2rem;text-align:center}.completion-screen h1{font-size:2rem;margin-bottom:1rem}.completion-screen p{color:#6b7280;color:var(--text-light);font-size:1.25rem;margin-bottom:.5rem}.completion-screen .button-primary{margin-top:2rem;padding:.875rem 2rem;width:auto}.nav-back{align-items:center;color:#4a6cf7;color:var(--primary);display:flex;font-weight:500;gap:.5rem;margin-bottom:1rem;text-decoration:none}.nav-back:hover{text-decoration:underline}.loading{align-items:center;color:#6b7280;color:var(--text-light);display:flex;justify-content:center;min-height:200px}a{color:#4a6cf7;color:var(--primary)}@media (min-width:640px){.stats-card{grid-template-columns:repeat(4,1fr)}.auth-card{padding:2.5rem}}@media (max-width:480px){.dashboard header{align-items:stretch;flex-direction:column;gap:1rem}.dashboard header h1{text-align:center}.language-selectors{grid-template-columns:1fr}.search-bar{flex-direction:column}.filter-row{grid-template-columns:1fr}.lesson-meta{flex-wrap:wrap}}.admin-page{margin:0 auto;max-width:960px;padding:1rem}.admin-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.admin-header h1{font-size:1.5rem}.admin-subtitle{color:#6b7280;color:var(--text-light);font-size:.875rem}.admin-nav{display:flex;flex-wrap:wrap;gap:.5rem}.admin-btn{font-size:.8rem;padding:.5rem 1rem;width:auto}.admin-stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin-bottom:2rem}.admin-stat-card{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 4px #0000000d;display:flex;flex-direction:column;gap:.25rem;padding:1.25rem;text-align:center}.admin-stat-icon{font-size:1.5rem}.admin-stat-value{color:#4a6cf7;color:var(--primary);font-size:2rem;font-weight:700}.admin-stat-label{color:#6b7280;color:var(--text-light);font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.admin-quick-actions{margin-top:1rem}.admin-quick-actions h2{font-size:1.1rem;margin-bottom:1rem}.admin-actions-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.admin-action-card{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 4px #0000000d;color:#1a1a2e;color:var(--text);display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;text-decoration:none;transition:transform .15s,box-shadow .15s}.admin-action-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.admin-action-icon{font-size:1.75rem}.admin-action-title{font-size:1rem;font-weight:600}.admin-action-desc{color:#6b7280;color:var(--text-light);font-size:.8rem}.admin-search-bar{margin-bottom:1rem}.admin-search-input{border:1px solid #e8e8e4;border:1px solid var(--border);border-radius:8px;font-size:1rem;padding:.75rem 1rem;transition:border-color .2s,box-shadow .2s;width:100%}.admin-search-input:focus{border-color:#4a6cf7;border-color:var(--primary);box-shadow:0 0 0 3px #4a6cf726;outline:none}.admin-table-wrapper{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 4px #0000000d;overflow-x:auto}.admin-table{border-collapse:collapse;font-size:.9rem;width:100%}.admin-table th{border-bottom:2px solid #e8e8e4;border-bottom:2px solid var(--border);color:#6b7280;color:var(--text-light);font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.75rem 1rem;text-align:left;text-transform:uppercase;white-space:nowrap}.admin-table td{border-bottom:1px solid #e8e8e4;border-bottom:1px solid var(--border);padding:.75rem 1rem;vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr:hover{background:#4a6cf70a}.user-disabled-row{opacity:.6}.user-name-cell{font-weight:500}.user-date-cell,.user-email-cell{color:#6b7280;color:var(--text-light)}.user-date-cell{font-size:.85rem;white-space:nowrap}.role-badge{border-radius:999px;display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .6rem}.role-admin{color:#f97316;color:var(--accent-orange)}.role-admin,.role-user{background:#eef1fe;background:var(--primary-light)}.role-user{color:#4a6cf7;color:var(--primary)}.status-badge{font-size:.8rem;font-weight:500}.status-active{color:#10b981;color:var(--success)}.status-disabled{color:#ef4444;color:var(--error)}.you-badge{background:#ecfdf5;border-radius:999px;color:#10b981;color:var(--success);display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .6rem}.toggle-btn{border:none;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:600;padding:.35rem .75rem;transition:background .2s;width:auto}.toggle-disable{background:#fef2f2;color:#ef4444;color:var(--error)}.toggle-disable:hover{background:#fee2e2}.toggle-enable{background:#ecfdf5;color:#10b981;color:var(--success)}.toggle-enable:hover{background:#d1fae5}.admin-pagination{align-items:center;display:flex;gap:1rem;justify-content:center;margin-top:1rem;padding:1rem 0}.pagination-btn{background:#fff;background:var(--card-bg);border:1px solid #e8e8e4;border:1px solid var(--border);border-radius:6px;color:#4a6cf7;color:var(--primary);font-size:.85rem;padding:.5rem 1rem;width:auto}.pagination-btn:hover:not(:disabled){background:#eef1fe;background:var(--primary-light)}.pagination-info{color:#6b7280;color:var(--text-light);font-size:.85rem}.admin-link{align-items:center;background:#eef1fe;background:var(--primary-light);border:2px solid #fbbf24;border:2px solid var(--accent-amber);border-radius:8px;color:#f97316;color:var(--accent-orange);display:flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.625rem 1rem;text-decoration:none;transition:background .2s;width:auto}.admin-link:hover{background:#fef3c7}@media (max-width:600px){.admin-stats-grid{grid-template-columns:repeat(2,1fr)}.admin-header{align-items:flex-start;flex-direction:column}.admin-table{font-size:.8rem}.admin-table td,.admin-table th{padding:.5rem}}
/*# sourceMappingURL=main.2e4c82ee.css.map*/