*{margin:0;padding:0;box-sizing:border-box}body{font-family:-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:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;color:#333}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;padding:40px;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);max-width:400px;width:100%}.login-card h1{font-size:28px;margin-bottom:10px;color:#667eea;text-align:center}.subtitle{text-align:center;color:#6b7280;margin-bottom:30px;font-size:14px}.app-container{max-width:1200px;margin:0 auto;padding:20px;min-height:100vh}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:40px;background:#fff;padding:20px 30px;border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.1)}header h1{font-size:28px;color:#667eea}.logout-btn{background:#ef4444;color:#fff;border:none;padding:10px 20px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.logout-btn:hover{background:#dc2626}section{background:#fff;padding:30px;border-radius:16px;margin-bottom:30px;box-shadow:0 4px 6px rgba(0,0,0,.1)}section h2{font-size:22px;color:#667eea}.form-group,section h2{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:14px}input[type=password],input[type=text],textarea{width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:14px;transition:border-color .2s;font-family:inherit}input[type=password]:focus,input[type=text]:focus,textarea:focus{outline:none;border-color:#667eea}input:disabled,textarea:disabled{background:#f3f4f6;cursor:not-allowed}button{width:100%;padding:12px 24px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;margin-top:10px}button:hover:not(:disabled){background:#5568d3}button:disabled{background:#9ca3af;cursor:not-allowed}.generate-btn{background:#10b981}.generate-btn:hover:not(:disabled){background:#059669}.error{padding:12px 16px;border-radius:8px;margin:10px 0;font-size:14px}.error,.error-message{color:#ef4444;background:#fee2e2}.error-message{padding:8px 12px;border-radius:6px;margin-top:10px;font-size:13px}.audiobook-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));grid-gap:20px;gap:20px}.audiobook-card{background:#f9fafb;padding:20px;border-radius:12px;border:2px solid #e5e7eb;transition:transform .2s,box-shadow .2s}.audiobook-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.audiobook-card.generating{border-color:#3b82f6;background:#eff6ff}.audiobook-header{display:flex;justify-content:space-between;align-items:start;margin-bottom:12px;gap:10px}.audiobook-header h3{font-size:18px;color:#1f2937;flex:1 1;word-break:break-word}.status-badge{padding:4px 12px;border-radius:12px;color:#fff;font-size:12px;font-weight:600;text-transform:uppercase;white-space:nowrap}.timestamp{font-size:13px;color:#6b7280;margin-bottom:8px}.audio-player{margin-top:15px;padding-top:15px;border-top:1px solid #e5e7eb}audio{width:100%;margin-bottom:10px}.download-btn{display:inline-block;padding:8px 16px;background:#667eea;color:#fff;text-decoration:none;border-radius:6px;font-size:14px;font-weight:500;transition:background .2s}.download-btn:hover{background:#5568d3}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;color:#fff}.loading-container p{margin-top:20px;font-size:18px}.spinner{width:50px;height:50px;border:4px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin:20px auto}.audiobook-card.generating .spinner{width:30px;height:30px;border-color:#3b82f6 rgba(59,130,246,.3) rgba(59,130,246,.3)}@keyframes spin{to{transform:rotate(1turn)}}.empty-state{text-align:center;color:#6b7280;padding:40px 20px;font-size:16px}@media (max-width:768px){.audiobook-list{grid-template-columns:1fr}header{flex-direction:column;gap:15px;text-align:center}header h1{font-size:24px}.logout-btn{width:100%}}