:root{--primary: #87CEEB;--success: #90EE90;--warning: #f59e0b;--error: #ef4444;--bg-primary: #F0F8FF;--bg-secondary: #ffffff;--bg-tertiary: #f0f0f0;--text-primary: #333333;--text-secondary: #555555;--border: #dddddd}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;padding:0;font-family:PT Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden}.app{min-height:100vh;display:flex;flex-direction:column;padding:1rem;max-width:600px;margin:0 auto}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0 1rem}.app-header h1{margin:0;font-size:1.5rem}.icon-btn{background:var(--bg-tertiary);border:none;color:var(--text-primary);padding:.5rem 1rem;border-radius:.5rem;font-size:1rem;cursor:pointer;transition:all .2s}.icon-btn:hover{background:var(--bg-secondary);transform:scale(1.05)}.icon-btn:active{transform:scale(.95)}.login-container,.loading,.error,.empty-state,.session-complete{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:1rem}.login-container h1{font-size:3rem;margin:0}.login-container input{width:100%;max-width:300px;padding:1rem;font-size:1rem;border:2px solid var(--border);border-radius:.5rem;background:var(--bg-secondary);color:var(--text-primary)}.login-container button,.error button,.empty-state button,.session-complete button{padding:1rem 2rem;font-size:1rem;font-weight:600;background:var(--primary);color:#fff;border:none;border-radius:.5rem;cursor:pointer;transition:all .2s;min-width:200px}.login-container button:hover,.error button:hover,.empty-state button:hover,.session-complete button:hover{transform:scale(1.05);box-shadow:0 10px 30px #87ceeb66}.login-container button:active{transform:scale(.95)}.hint{color:var(--text-secondary);font-size:.875rem}.google-login-wrapper{display:flex;justify-content:center;align-items:center;margin:1rem 0}.debug-login{margin-top:24px;padding-top:16px;border-top:1px solid #334155;text-align:center}.debug-login p{font-size:.8rem;color:#94a3b8;margin-bottom:8px}.debug-btn{background-color:#475569;color:#e2e8f0;border:1px solid #64748b;padding:10px 16px;border-radius:8px;cursor:pointer;font-weight:500;transition:background-color .2s}.debug-btn:hover{background-color:#64748b}.user-info{color:var(--text-secondary);font-size:.875rem;margin-top:.5rem}.spinner{width:50px;height:50px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.progress-container{margin:1rem 0}.progress-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}.stat{background:var(--bg-secondary);padding:.75rem;border-radius:.5rem;display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.stat-value{font-size:1.25rem;font-weight:700}.stat-value.known{color:var(--success)}.stat-value.review{color:var(--warning)}.progress-bar{height:8px;background:var(--bg-secondary);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:var(--success);transition:width .3s ease}.flashcard-area{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:1rem 0 2rem;min-height:500px}.flashcard-container{width:100%;max-width:400px;height:450px;position:relative;display:flex;align-items:center;justify-content:center}.flashcard-stack-card{width:100%;max-width:400px;height:450px;position:absolute;pointer-events:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.flashcard-drag-wrapper{width:100%;height:100%;position:absolute;cursor:grab;z-index:10;touch-action:none}.flashcard-drag-wrapper:active{cursor:grabbing}.flashcard{width:100%;height:100%;position:relative;transform-style:preserve-3d}.flashcard-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;background:var(--bg-secondary);border-radius:1.5rem;padding:2rem;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 10px 40px #0000001a;border:1px solid var(--border)}.flashcard-front{transform:rotateY(0)}.flashcard-back{transform:rotateY(180deg)}.flashcard-content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:1rem;text-align:center}.word-main{font-size:2.5rem;font-weight:700;color:var(--text-primary);word-wrap:break-word}.word-phonetic{font-size:1rem;color:var(--text-secondary);margin-top:-.5rem}.word-category{display:inline-block;background:var(--primary);color:#fff;padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;margin:0 auto}.word-translation{font-size:1.75rem;font-weight:600;color:var(--success);margin-bottom:1rem}.word-detail{font-size:.9rem;line-height:1.6;color:var(--text-secondary);text-align:left}.word-detail strong{color:var(--text-primary)}.tap-hint{text-align:center;font-size:.875rem;color:var(--text-secondary);opacity:.6;margin-top:.5rem}.swipe-hint{position:absolute;bottom:-2.5rem;left:50%;transform:translate(-50%);font-size:.875rem;color:var(--text-secondary);opacity:.7;white-space:nowrap;pointer-events:none}.swipe-indicator{position:absolute;top:50%;font-size:1.5rem;font-weight:700;padding:1rem 1.5rem;border-radius:1rem;color:#fff;pointer-events:none;z-index:5;box-shadow:0 4px 12px #00000026}.swipe-indicator.review{left:-.5rem;background-color:var(--warning);transform:translateY(-50%) rotate(-10deg)}.swipe-indicator.know{right:-.5rem;background-color:var(--success);transform:translateY(-50%) rotate(10deg)}.controls{display:flex;gap:1rem;padding:1rem 0}.control-btn{flex:1;padding:1rem;font-size:1rem;font-weight:600;border:none;border-radius:.75rem;cursor:pointer;transition:all .2s;color:#fff}.review-btn{background:var(--warning)}.know-btn{background:var(--success)}.control-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 30px #0000001a}.control-btn:active:not(:disabled){transform:translateY(0)}.control-btn:disabled{opacity:.5;cursor:not-allowed}.control-btn:focus{outline:none;box-shadow:0 0 0 3px #87ceeb4d}.setup-container{flex:1;display:flex;align-items:center;justify-content:center}.setup-card{background:var(--bg-secondary);padding:2rem;border-radius:1rem;width:100%;max-width:400px;border:1px solid var(--border);box-shadow:0 10px 40px #0000000d}.setup-card h2{margin:0 0 .5rem;text-align:center}.vocab-count{text-align:center;color:var(--text-secondary);margin-bottom:2rem}.setup-options{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.option-group{display:flex;flex-direction:column;gap:.5rem}.option-group label{font-size:.875rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.option-group select{padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:.5rem;color:var(--text-primary);font-size:1rem;cursor:pointer}.filtered-count{text-align:center;font-size:.875rem;color:var(--text-secondary);margin-bottom:1rem}.start-btn{width:100%;padding:1rem;font-size:1rem;font-weight:600;background:var(--primary);color:#fff;border:none;border-radius:.5rem;cursor:pointer;transition:all .2s}.start-btn:hover:not(:disabled){transform:scale(1.02);box-shadow:0 10px 30px #87ceeb66}.start-btn:disabled{opacity:.5;cursor:not-allowed}.session-complete h2{font-size:2rem;margin:0 0 2rem}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;width:100%;max-width:500px}.summary-stat{background:var(--bg-secondary);padding:1.5rem 1rem;border-radius:.75rem;display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--border)}.summary-stat.known{border-color:var(--success)}.summary-stat.review{border-color:var(--warning)}.summary-label{font-size:.75rem;color:var(--text-secondary);text-transform:uppercase}.summary-value{font-size:2rem;font-weight:700}@media(max-width:480px){.word-main{font-size:2rem}.word-translation{font-size:1.5rem}.flashcard-container{height:400px}.flashcard-face,.setup-card{padding:1.5rem}}@media(min-width:768px){.app{padding:2rem}}
