.auth-form-container{display:flex;justify-content:center;align-items:center;min-height:60vh;padding:1rem}.auth-form-card{background:white;border-radius:16px;box-shadow:0 10px 30px #0000001a;padding:1.5rem;width:100%;max-width:100%;border:1px solid #e0e0e0}.auth-header{text-align:center;margin-bottom:1.5rem}.auth-header h2{margin:0 0 .5rem;color:#333;font-size:1.5rem}.auth-header p{margin:0;color:#666;font-size:.9rem}.auth-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.75rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px}.form-group input{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s ease;outline:none;width:100%}.form-group input:focus{border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed;opacity:.6}.error-message{background:#ffebee;color:#d32f2f;padding:.75rem 1rem;border-radius:8px;border:1px solid #ffcdd2;font-size:.9rem;text-align:center}.auth-submit-btn{background:#2196f3;color:#fff;border:none;padding:14px 20px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px;width:100%}.auth-submit-btn:hover:not(:disabled){background:#1976d2;transform:translateY(-1px);box-shadow:0 4px 12px #2196f34d}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{background:#ccc;cursor:not-allowed;transform:none;box-shadow:none}.auth-footer{text-align:center;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid #e0e0e0}.auth-footer p{margin:0;color:#666;font-size:.9rem}.auth-switch-btn{background:none;border:none;color:#2196f3;font-weight:600;cursor:pointer;text-decoration:underline;font-size:.9rem;padding:0}.auth-switch-btn:hover{color:#1976d2}@media (min-width: 768px){.auth-form-container{padding:2rem}.auth-form-card{max-width:450px;padding:2.5rem}.auth-header h2{font-size:1.75rem}.auth-header p{font-size:.95rem}.form-group label{font-size:.8rem}.error-message,.auth-footer p,.auth-switch-btn{font-size:.95rem}}@media (min-width: 1024px){.auth-form-card{max-width:400px;padding:2rem}.auth-header h2{font-size:2rem}.auth-submit-btn{width:100%}}.flashcard-container{width:100%;max-width:100%;margin:0 auto;perspective:1000px;padding:0 .5rem}.flashcard{position:relative;width:100%;height:350px;cursor:pointer;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.4,.2,.2,1);box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;border-radius:12px;background:white;overflow:hidden}.flashcard.flipped{transform:rotateY(180deg)}.flashcard-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;display:flex;flex-direction:column;padding:16px;box-sizing:border-box;background:white}.flashcard-front{z-index:2}.flashcard-back{transform:rotateY(180deg);background:#f8f9fa}.flashcard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-shrink:0}.difficulty-badge{color:#fff;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0003}.card-type{font-size:20px;background:rgba(255,255,255,.8);padding:6px 10px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.flashcard-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;overflow-y:auto}.front-text,.back-text{font-size:28px;font-weight:600;color:#333;line-height:1.2;margin-bottom:12px;word-wrap:break-word}.reading{font-size:18px;color:#666;font-weight:400;margin-bottom:12px;font-style:italic}.meaning{font-size:16px;color:#555;margin-bottom:16px;font-style:italic}.example{text-align:left;align-self:flex-start;margin-top:auto}.example strong{color:#333;margin-bottom:6px;display:block;font-size:14px}.example p{margin:0;color:#666;font-size:13px;line-height:1.4}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;justify-content:center}.tag{background:#e3f2fd;color:#1976d2;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:500}.flashcard-actions,.review-actions{margin-top:auto;display:flex;flex-direction:column;gap:10px;width:100%;flex-shrink:0}.flip-btn{background:#2196f3;color:#fff;border:none;padding:14px 20px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease,transform .1s ease;box-shadow:0 2px 4px #2196f34d}.flip-btn:hover{background:#1976d2;transform:translateY(-1px)}.flip-btn:active{transform:translateY(0)}.review-question{text-align:center;color:#666;font-size:14px;margin-bottom:8px;font-weight:500}.quality-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quality-btn{padding:14px;border:none;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.quality-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.quality-btn.again{background:#f44336;color:#fff}.quality-btn.hard{background:#ff9800;color:#fff}.quality-btn.good{background:#4caf50;color:#fff}.quality-btn.easy{background:#2196f3;color:#fff}@media (min-width: 768px){.flashcard-container{max-width:600px;padding:0}.flashcard{height:400px}.flashcard-face{padding:20px}.flashcard-header{margin-bottom:16px}.difficulty-badge{padding:4px 12px;font-size:12px}.card-type{font-size:24px;padding:8px 12px}.front-text,.back-text{font-size:32px;margin-bottom:16px}.reading{font-size:20px;margin-bottom:16px}.meaning{font-size:18px;margin-bottom:20px}.example{align-self:flex-start}.example strong{font-size:16px;margin-bottom:8px}.example p{font-size:14px}.tags{gap:8px}.tag{padding:4px 8px;font-size:12px}.quality-buttons{gap:8px}}@media (min-width: 1024px){.flashcard{height:400px}.quality-btn{padding:12px;font-size:14px}}.review-session{width:100%;max-width:100%;margin:0 auto;padding:1rem}.session-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #e0e0e0}.session-info h2{margin:0 0 .5rem;color:#333;font-size:1.5rem}.session-info p{margin:0;color:#666;font-size:.9rem}.session-progress{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;width:100%}.progress-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#2196f3,#4caf50);transition:width .3s ease}.progress-text{font-size:.875rem;color:#666;font-weight:600}.flashcard-wrapper{display:flex;justify-content:center;align-items:center;min-height:350px;margin-bottom:1.5rem}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem;padding:2rem 1rem}.error-container{text-align:center;padding:2rem 1.5rem;border:1px solid #ffebee;border-radius:12px;background:#fff;box-shadow:0 2px 8px #0000001a}.error-container h2{color:#d32f2f;margin-bottom:.75rem;font-size:1.5rem}.error-container p{color:#666;margin-bottom:1.5rem;font-size:.95rem}.no-cards-container{text-align:center;padding:2rem 1.5rem;border:1px solid #e8f5e9;border-radius:12px;background:#fff;box-shadow:0 2px 8px #0000001a}.no-cards-container h2{color:#2e7d32;margin-bottom:.75rem;font-size:1.5rem}.no-cards-container p{color:#666;margin-bottom:1.5rem;font-size:.95rem}.session-completed{text-align:center;padding:2rem 1.5rem;border:1px solid #e3f2fd;border-radius:12px;background:#fff;box-shadow:0 2px 8px #0000001a}.completion-header h2{color:#1976d2;margin-bottom:.5rem;font-size:1.75rem}.completion-header p{color:#666;margin-bottom:1.5rem;font-size:1rem}.session-stats{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:2rem}.stat-card{background:#f8f9fa;padding:1.25rem;border-radius:12px;border:1px solid #e0e0e0}.stat-label{display:block;font-size:.75rem;color:#666;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-value{font-size:2rem;font-weight:700;color:#333}.navigation-controls{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1rem;background:#f8f9fa;border-radius:12px;border:1px solid #e0e0e0}.nav-btn{padding:12px 20px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.prev-btn{background:#2196f3;color:#fff}.prev-btn:hover:not(:disabled){background:#1976d2}.next-btn{background:#4caf50;color:#fff}.next-btn:hover:not(:disabled){background:#388e3c}.card-counter{font-size:.875rem;font-weight:600;color:#333;text-align:center}.session-actions,.error-actions,.no-cards-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem;width:100%}.retry-btn,.restart-btn,.back-btn{background:#2196f3;color:#fff;border:none;padding:14px 20px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease;width:100%}.retry-btn:hover,.restart-btn:hover,.back-btn:hover{background:#1976d2}.close-btn,.session-close-btn{background:#f44336;color:#fff;border:none;padding:14px 20px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease;width:100%}.close-btn:hover,.session-close-btn:hover{background:#d32f2f}.session-footer{display:flex;justify-content:center;margin-top:1.25rem}@media (min-width: 768px){.review-session{max-width:800px;padding:1.5rem}.session-header{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}.session-info h2{font-size:1.75rem}.session-progress{align-items:flex-end;width:auto}.progress-bar{width:200px}.flashcard-wrapper{min-height:400px}.session-stats{grid-template-columns:repeat(3,1fr);gap:1rem}.stat-value{font-size:1.5rem}.navigation-controls{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}.nav-btn{width:auto}.session-actions,.error-actions,.no-cards-actions{flex-direction:row;justify-content:center;gap:1rem}.retry-btn,.restart-btn,.back-btn,.close-btn,.session-close-btn{width:auto}}@media (min-width: 1024px){.review-session{padding:2rem}.session-info h2{font-size:2rem}.stat-value{font-size:1.75rem}.nav-btn{padding:10px 20px;font-size:15px}}.vocabulary-list{width:100%;max-width:100%;margin:0 auto;padding:1rem}.vocabulary-header{margin-bottom:2rem}.vocabulary-header h1{margin:0 0 .5rem;color:#333;font-size:1.75rem}.vocabulary-header p{margin:0;color:#666;font-size:.95rem}.filters-section{background:white;padding:1rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;border:1px solid #e0e0e0}.search-box{margin-bottom:1rem}.search-input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s ease;outline:none}.search-input:focus{border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.filter-controls{display:grid;grid-template-columns:1fr;gap:1rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-size:.75rem;color:#666;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.filter-select{padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;background:white;cursor:pointer;transition:border-color .2s ease}.filter-select:focus{border-color:#2196f3;outline:none}.decks-section{margin-bottom:2rem}.decks-section h2{margin:0 0 1rem;color:#333;font-size:1.5rem}.decks-grid{display:grid;grid-template-columns:1fr;gap:1rem}.deck-card{background:white;border:1px solid #e0e0e0;border-radius:12px;padding:1rem;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;justify-content:space-between}.deck-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#2196f3}.deck-info h3{margin:0 0 .5rem;color:#333;font-size:1.125rem}.deck-info p{margin:0 0 .75rem;color:#666;font-size:.9rem;line-height:1.4}.deck-category{display:inline-block;background:#e3f2fd;color:#1976d2;padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.deck-stats{margin-top:auto}.card-count{font-size:.875rem;color:#666;font-weight:600}.flashcards-section{background:white;padding:1rem;border-radius:12px;box-shadow:0 2px 8px #0000001a;border:1px solid #e0e0e0}.section-header{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.section-header h2{margin:0;color:#333;font-size:1.5rem}.count-badge{background:#e3f2fd;color:#1976d2;padding:4px 8px;border-radius:12px;font-size:.875rem;font-weight:600}.flashcards-grid{display:grid;grid-template-columns:1fr;gap:1rem}.flashcard-card{background:white;border:1px solid #e0e0e0;border-radius:12px;padding:1rem;cursor:pointer;transition:all .2s ease;height:180px;display:flex;flex-direction:column}.flashcard-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#2196f3}.flashcard-preview{height:100%;display:flex;flex-direction:column}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.difficulty-badge{color:#fff;padding:4px 10px;border-radius:20px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0003}.card-type{font-size:18px;background:rgba(255,255,255,.8);padding:6px 10px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.card-content{flex:1;display:flex;flex-direction:column;justify-content:center;margin-bottom:.75rem}.front-text{font-size:1.125rem;font-weight:700;color:#333;margin-bottom:.5rem;line-height:1.3}.back-text{font-size:.95rem;color:#666;margin-bottom:.5rem;line-height:1.4}.reading{font-size:.875rem;color:#888;font-style:italic}.card-footer{margin-top:auto;display:flex;flex-direction:column;gap:.5rem}.tags{display:flex;flex-wrap:wrap;gap:.375rem}.tag{background:#f5f5f5;color:#666;padding:2px 6px;border-radius:8px;font-size:.7rem;font-weight:600}.card-date{font-size:.75rem;color:#888;font-weight:500}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background:white;border-radius:12px;max-width:100%;width:100%;position:relative;box-shadow:0 10px 30px #0000004d;overflow:hidden;max-height:90vh;overflow-y:auto}.modal-close{position:absolute;top:12px;right:12px;background:#f44336;color:#fff;border:none;width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;z-index:10;transition:all .2s ease}.modal-close:hover{background:#d32f2f;transform:scale(1.1)}@media (min-width: 768px){.vocabulary-list{padding:1.5rem}.vocabulary-header h1{font-size:2rem}.filters-section{padding:1.25rem}.filter-controls{grid-template-columns:repeat(3,1fr)}.decks-grid,.flashcards-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.flashcard-card{height:200px}.section-header{flex-direction:row;justify-content:space-between;align-items:center}.modal-content{max-width:600px}}@media (min-width: 1024px){.vocabulary-list{max-width:1200px;padding:1.5rem}.decks-grid,.flashcards-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.flashcard-card{height:200px}}.progress-dashboard{width:100%;max-width:100%;margin:0 auto;padding:1rem}.dashboard-header{margin-bottom:1.5rem}.dashboard-header h1{margin:0 0 .5rem;color:#333;font-size:1.75rem}.dashboard-header p{margin:0;color:#666;font-size:.9rem}.tabs-container{margin-bottom:1.5rem;background:white;border-radius:12px;padding:.5rem;box-shadow:0 2px 8px #0000001a;border:1px solid #e0e0e0}.tabs{display:flex;flex-wrap:wrap;gap:.5rem}.tab{padding:.6rem 1rem;border:none;border-radius:8px;background:transparent;color:#666;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.9rem;flex:1;min-width:80px}.tab:hover{background:#f5f5f5;color:#333}.tab.active{background:#2196f3;color:#fff;box-shadow:0 2px 8px #2196f34d}.overview-section{display:grid;gap:1.5rem}.stats-grid{display:grid;grid-template-columns:1fr;gap:1rem}.stat-card{background:white;border:1px solid #e0e0e0;border-radius:12px;padding:1rem;display:flex;align-items:center;gap:1rem;box-shadow:0 2px 8px #0000001a;transition:all .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-card.primary{background:linear-gradient(135deg,#2196f3,#4caf50);color:#fff;border:none}.stat-icon{font-size:1.5rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.2);border-radius:12px;flex-shrink:0}.stat-info{flex:1}.stat-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem;opacity:.8}.stat-value{font-size:1.75rem;font-weight:700}.retention-section{background:white;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.retention-card{text-align:center}.retention-header{margin-bottom:1rem}.retention-header h3{margin:0 0 .5rem;color:#333;font-size:1.25rem}.retention-level{font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:1px}.retention-display{display:flex;justify-content:center;align-items:center}.retention-circle{position:relative;width:140px;height:140px}.retention-svg{width:100%;height:100%;transform:rotate(-90deg)}.retention-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.retention-number{font-size:2rem;font-weight:700;color:#333}.streak-section{background:white;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.streak-card{display:flex;align-items:center;gap:1rem}.streak-icon{font-size:1.5rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff3cd;color:#856404;border-radius:12px;border:2px solid #ffeaa7;flex-shrink:0}.streak-info{flex:1}.streak-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#666;margin-bottom:.25rem}.streak-value{font-size:1.5rem;font-weight:700;color:#856404}.session-section{background:white;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.section-header{margin-bottom:1rem}.section-header h2{margin:0 0 .5rem;color:#333;font-size:1.25rem}.section-header p{margin:0;color:#666;font-size:.875rem}.session-stats-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}.session-stat-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:12px;padding:1rem;display:flex;align-items:center;gap:1rem;transition:all .2s ease}.session-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.session-stat-icon{font-size:1.25rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:white;border-radius:10px;box-shadow:0 2px 4px #0000001a;flex-shrink:0}.session-stat-info{flex:1}.session-stat-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#666;margin-bottom:.25rem}.session-stat-value{font-size:1.25rem;font-weight:700;color:#333}.session-stat-sub{font-size:.75rem;color:#888;margin-top:.25rem}.progress-bar-section{background:#f8f9fa;border-radius:12px;padding:1rem;border:1px solid #e0e0e0}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-weight:600;color:#333;font-size:.9rem}.progress-bar{width:100%;height:10px;background:#e0e0e0;border-radius:6px;overflow:hidden;margin-bottom:.5rem}.progress-fill{height:100%;background:linear-gradient(90deg,#4caf50,#8bc34a);transition:width .3s ease;border-radius:6px}.progress-subtext{font-size:.75rem;color:#666}.progress-section{background:white;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.progress-metrics{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}.metric-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:12px;padding:1rem;display:flex;align-items:center;gap:1rem;transition:all .2s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.metric-icon{font-size:1.25rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:white;border-radius:10px;box-shadow:0 2px 4px #0000001a;flex-shrink:0}.metric-info{flex:1}.metric-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#666;margin-bottom:.25rem}.metric-value{font-size:1.25rem;font-weight:700;color:#333}.last-review-section{background:#fff3cd;border:1px solid #ffeaa7;border-radius:12px;padding:1rem}.last-review-card{display:flex;align-items:center;gap:1rem}.last-review-icon{font-size:1.25rem;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffd54f;color:#856404;border-radius:10px;flex-shrink:0}.last-review-info{flex:1}.last-review-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#856404;margin-bottom:.25rem}.last-review-date{font-size:1rem;font-weight:600;color:#856404}.difficulty-section{background:white;border:1px solid #e0e0e0;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a}.difficulty-grid{display:grid;grid-template-columns:1fr;gap:1rem}.difficulty-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:12px;padding:1rem;transition:all .2s ease}.difficulty-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.difficulty-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.difficulty-level{color:#fff;padding:4px 10px;border-radius:20px;font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0003}.difficulty-name{font-size:.875rem;font-weight:600;color:#666;text-transform:uppercase}.difficulty-stats{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.difficulty-stat{background:white;padding:.75rem;border-radius:8px;border:1px solid #e0e0e0;text-align:center}.difficulty-stat .stat-label{font-size:.7rem;color:#666;font-weight:600;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.5px}.difficulty-stat .stat-value{font-size:1.125rem;font-weight:700;color:#333}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:1rem}.loading-spinner{width:48px;height:48px;border:4px solid #f3f3f3;border-top:4px solid #2196f3;border-radius:50%;animation:spin 1s linear infinite}.error-container{text-align:center;padding:2rem 1rem;border:1px solid #ffebee;border-radius:12px;background:#fff;box-shadow:0 2px 8px #0000001a}.error-container h2{color:#d32f2f;margin-bottom:.75rem;font-size:1.25rem}.error-container p{color:#666;margin-bottom:1.5rem;font-size:.9rem}.retry-btn{background:#2196f3;color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s ease}.retry-btn:hover{background:#1976d2}.empty-state{text-align:center;padding:2rem 1rem;border:1px dashed #e0e0e0;border-radius:12px}.empty-icon{font-size:3rem;margin-bottom:1rem}.empty-state h3{margin:0 0 .5rem;color:#666;font-size:1.25rem}.empty-state p{margin:0;color:#888;font-size:.9rem}@media (min-width: 768px){.progress-dashboard{padding:1.5rem}.dashboard-header h1{font-size:2rem}.tabs{flex-wrap:nowrap}.tab{flex:none}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.stat-card{padding:1.25rem}.stat-icon{width:48px;height:48px;font-size:1.75rem}.stat-value{font-size:2rem}.retention-circle{width:160px;height:160px}.retention-number{font-size:2.25rem}.session-stats-grid,.progress-metrics{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.difficulty-grid{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media (min-width: 1024px){.progress-dashboard{max-width:1200px;padding:1.5rem}.dashboard-header h1{font-size:2.25rem}.section-header h2{font-size:1.5rem}}.learning-session__container{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding:2rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.learning-session__header{text-align:center;margin-bottom:2rem;color:#fff}.learning-session__header h2{font-size:2rem;font-weight:700;margin:0 0 .5rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.learning-session__progress{font-size:1.25rem;font-weight:600;opacity:.95;text-shadow:1px 1px 2px rgba(0,0,0,.2)}.learning-session__content{display:flex;flex-direction:column;align-items:center;width:100%;max-width:800px}.flashcard{position:relative;width:100%;max-width:600px;min-height:400px;background:white;border-radius:16px;box-shadow:0 10px 40px #0003;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;overflow:hidden;margin-bottom:2rem}.flashcard:hover{transform:translateY(-4px);box-shadow:0 14px 48px #00000040}.flashcard:focus{outline:3px solid #667eea;outline-offset:2px}.flashcard__front,.flashcard__back{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:2rem;box-sizing:border-box}.flashcard__front{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.flashcard__back{background:linear-gradient(135deg,#f093fb 0%,#f5576c 100%)}.flashcard__content{font-size:2.5rem;font-weight:600;color:#fff;text-align:center;word-wrap:break-word;text-shadow:2px 2px 4px rgba(0,0,0,.3);width:100%}.flashcard__back-text{margin-bottom:1rem}.flashcard__reading{font-size:1.5rem;margin-bottom:.75rem;opacity:.9}.flashcard__meaning{font-size:1.25rem;margin-bottom:1rem;opacity:.85}.flashcard__examples{margin-top:1.5rem;font-size:1rem;opacity:.8}.example-item{margin-bottom:.5rem;font-style:italic}.learning-session__rating-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;width:100%;max-width:600px;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.learning-session__btn-rating{padding:1.25rem 1rem;font-size:1.1rem;font-weight:700;border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 4px 12px #00000026}.learning-session__btn-rating:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0003}.learning-session__btn-rating:active{transform:translateY(0);box-shadow:0 2px 8px #00000026}.learning-session__btn-rating:focus{outline:3px solid currentColor;outline-offset:2px}.learning-session__btn-rating--again{background:#ffebee;color:#c62828}.learning-session__btn-rating--again:hover{background:#ffcdd2}.learning-session__btn-rating--hard{background:#fff3e0;color:#ef6c00}.learning-session__btn-rating--hard:hover{background:#ffe0b2}.learning-session__btn-rating--good{background:#e8f5e9;color:#2e7d32}.learning-session__btn-rating--good:hover{background:#c8e6c9}.learning-session__btn-rating--easy{background:#e3f2fd;color:#1565c0}.learning-session__btn-rating--easy:hover{background:#bbdefb}.learning-session__flip-hint{color:#fffc;font-size:1rem;font-weight:500;margin-top:1rem;text-align:center;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.learning-session__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#fff}.learning-session__spinner{width:60px;height:60px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1.5rem}@keyframes spin{to{transform:rotate(360deg)}}.learning-session__loading p{font-size:1.25rem;font-weight:600;margin:0}.learning-session__error{background:white;border-radius:16px;padding:3rem;text-align:center;box-shadow:0 10px 40px #0003;max-width:500px}.learning-session__error h2{color:#ee5a6f;font-size:2rem;font-weight:700;margin:0 0 1rem}.learning-session__error p{color:#666;font-size:1.1rem;margin:0 0 2rem}.learning-session__empty{background:white;border-radius:16px;padding:3rem;text-align:center;box-shadow:0 10px 40px #0003;max-width:500px}.learning-session__empty h2{color:#667eea;font-size:2rem;font-weight:700;margin:0 0 1rem}.learning-session__empty p{color:#666;font-size:1.1rem;margin:0 0 2rem}.learning-session__complete{background:white;border-radius:16px;padding:3rem;text-align:center;box-shadow:0 10px 40px #0003;max-width:500px;animation:scaleIn .4s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.learning-session__complete h2{color:#1dd1a1;font-size:2rem;font-weight:700;margin:0 0 1rem}.learning-session__complete p{color:#666;font-size:1.1rem;margin:0 0 2rem}.learning-session__btn-primary{padding:1rem 2rem;font-size:1.1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);border:none;border-radius:12px;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 12px #667eea66}.learning-session__btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea80}.learning-session__btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px #667eea66}.learning-session__btn-primary:focus{outline:3px solid #667eea;outline-offset:2px}@media (max-width: 768px){.learning-session__container{padding:1rem}.learning-session__header h2{font-size:1.5rem}.learning-session__progress{font-size:1rem}.flashcard{min-height:300px;margin-bottom:1.5rem}.flashcard__content{font-size:1.8rem}.learning-session__rating-buttons{grid-template-columns:repeat(2,1fr);gap:.75rem}.learning-session__btn-rating{padding:1rem .75rem;font-size:1rem}.learning-session__error,.learning-session__empty,.learning-session__complete{padding:2rem;margin:1rem}.learning-session__error h2,.learning-session__empty h2,.learning-session__complete h2{font-size:1.5rem}.learning-session__error p,.learning-session__empty p,.learning-session__complete p{font-size:1rem}}@media (max-width: 480px){.flashcard{min-height:250px}.flashcard__content{font-size:1.5rem}.learning-session__rating-buttons{grid-template-columns:1fr;gap:.5rem}.learning-session__btn-rating{padding:.875rem .5rem;font-size:.95rem}}.layout{min-height:100vh;display:flex;flex-direction:column}.header{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;padding:.75rem 1rem;box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:100}.header-content{display:flex;align-items:center;justify-content:space-between;position:relative}.logo{font-size:1.5rem;font-weight:700;text-decoration:none;color:#fff;z-index:102}.hamburger{display:flex;flex-direction:column;justify-content:space-around;width:44px;height:44px;background:transparent;border:none;cursor:pointer;padding:0;z-index:102;border-radius:4px}.hamburger span{width:28px;height:3px;background:white;border-radius:2px;transition:all .3s ease;transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(10px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.nav{display:none;position:absolute;top:100%;left:0;right:0;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);flex-direction:column;padding:1rem 0;gap:0;box-shadow:0 4px 8px #00000026;z-index:101}.nav.nav-open{display:flex}.nav-link{color:#fff;text-decoration:none;padding:1rem 1.5rem;transition:background-color .2s;border-left:3px solid transparent}.nav-link:hover{background-color:#ffffff26}.nav-link.active{background-color:#fff3;border-left-color:#fff}.user-info{display:none;align-items:center;gap:.75rem}.user-name{font-weight:500;display:none}.login-btn,.logout-btn{padding:.6rem 1.2rem;border:none;border-radius:8px;background:rgba(255,255,255,.25);color:#fff;cursor:pointer;transition:background-color .2s;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-btn:hover,.logout-btn:hover{background:rgba(255,255,255,.35)}.mobile-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:100}.main-content{flex:1;padding:1rem;width:100%}.footer{background:#f8f9fa;color:#666;text-align:center;padding:1.5rem 1rem;border-top:1px solid #e9ecef;font-size:.875rem}@media (min-width: 768px){.header{padding:1rem 2rem}.header-content{max-width:1200px;margin:0 auto}.logo{font-size:1.75rem}.hamburger{display:none}.nav{display:flex;position:static;flex-direction:row;padding:0;gap:.5rem;box-shadow:none;background:transparent}.nav-link{padding:.6rem 1rem;border-left:none;border-radius:6px}.user-info{display:flex}.user-name{display:inline}.main-content{padding:1.5rem 2rem;max-width:1200px;margin:0 auto}.mobile-overlay{display:none}}@media (min-width: 1024px){.header{padding:1rem 2rem}.nav{gap:2rem}.nav-link{padding:.75rem 1.25rem;font-size:1rem}.main-content{padding:2rem}.footer{padding:2rem 1rem;font-size:1rem}}.home{min-height:100%;display:flex;flex-direction:column}.hero{text-align:center;padding:3rem 1rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;margin-bottom:1.5rem}.hero h1{font-size:2rem;margin-bottom:.75rem;font-weight:700;line-height:1.2}.hero p{font-size:1rem;margin-bottom:1.5rem;opacity:.9}.welcome{background:rgba(255,255,255,.1);padding:1.25rem;border-radius:8px;display:inline-block;margin-bottom:1rem}.welcome p:first-of-type{font-size:1.25rem;margin-bottom:.5rem;font-weight:600}.welcome p:last-of-type{font-size:.9rem}.cta{background:rgba(255,255,255,.1);padding:1.25rem;border-radius:8px;display:inline-block}.cta p{font-size:.9rem;margin-bottom:1rem}.features{display:grid;grid-template-columns:1fr;gap:1.5rem;padding:1rem;max-width:100%;margin:0 auto}.feature{background:white;padding:1.5rem;border-radius:12px;box-shadow:0 2px 4px #0000001a;text-align:center}.feature h3{color:#667eea;margin-bottom:.75rem;font-size:1.25rem}.feature p{color:#666;line-height:1.5;font-size:.95rem}@media (min-width: 768px){.hero{padding:4rem 2rem}.hero h1{font-size:2.5rem}.hero p{font-size:1.1rem}.welcome{padding:1.5rem}.welcome p:first-of-type{font-size:1.5rem}.welcome p:last-of-type{font-size:1rem}.cta{padding:1.5rem}.cta p{font-size:1rem}.features{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;padding:1.5rem}.feature{padding:1.75rem}.feature h3{font-size:1.5rem}.feature p{font-size:1rem;line-height:1.6}}@media (min-width: 1024px){.hero h1{font-size:3rem}.hero p{font-size:1.2rem}.features{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;padding:2rem;max-width:1200px}.feature{padding:2rem;border-radius:8px}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#333;font-size:16px}#root{height:100%}button{cursor:pointer;border:none;border-radius:8px;padding:12px 20px;font-size:16px;font-weight:600;transition:all .2s ease;min-height:44px;min-width:44px}button:hover{opacity:.9;transform:translateY(-1px)}button:active{transform:translateY(0)}input,textarea,select{border:1px solid #ddd;border-radius:8px;padding:12px 16px;font-size:16px;transition:border-color .2s ease,box-shadow .2s ease;width:100%;min-height:44px}input:focus,textarea:focus,select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}h1{font-size:1.75rem;line-height:1.2}h2{font-size:1.5rem;line-height:1.3}h3{font-size:1.25rem;line-height:1.4}@media (min-width: 768px){html,body{font-size:16px}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.5rem}button{padding:10px 20px;font-size:15px}input,textarea,select{padding:10px 14px;font-size:15px}}@media (min-width: 1024px){html,body{font-size:16px;line-height:1.6}h1{font-size:2.25rem}h2{font-size:2rem}h3{font-size:1.75rem}}.loading{display:inline-block;width:24px;height:24px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
