:root{--bg-primary: #1a1a2e;--bg-secondary: #16213e;--bg-tertiary: #0f3460;--text-primary: #ffffff;--text-secondary: #b8b8b8;--accent: #e94560;--accent-hover: #ff6b6b;--user-bubble: #0f3460;--assistant-bubble: #2a2a4e;--border-color: #2a2a4e;--success: #4ade80;--error: #f87171;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6}.app{display:flex;flex-direction:column;height:100vh;max-width:800px;margin:0 auto;background-color:var(--bg-secondary)}.app.loading{justify-content:center;align-items:center}.loading-spinner{font-size:1.2rem;color:var(--text-secondary);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.app-header{background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);padding:1rem 1.5rem;position:sticky;top:0;z-index:10}.header-content{display:flex;align-items:center;gap:.75rem;flex:1}.header-controls{display:flex;align-items:center;gap:.5rem}.header-btn{background-color:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.header-btn:hover{background-color:var(--accent);border-color:var(--accent);color:#fff}.header-btn.enabled{background-color:var(--success);border-color:var(--success);color:#fff}.lang-toggle-small{font-size:1.25rem;padding:.4rem .6rem}.header-icon{font-size:1.5rem}.app-header h1{font-size:1.25rem;font-weight:600;flex:1}.connection-indicator{width:10px;height:10px;background-color:var(--success);border-radius:50%;box-shadow:0 0 8px var(--success)}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem;text-align:center}.welcome-icon{font-size:4rem;margin-bottom:1rem}.welcome-screen h1{font-size:1.75rem;margin-bottom:.5rem;color:var(--text-primary)}.welcome-subtitle{color:var(--text-secondary);margin-bottom:2rem;max-width:400px}.welcome-suggestions{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:400px}.welcome-suggestion-btn{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:.875rem 1.25rem;border-radius:12px;cursor:pointer;font-size:.95rem;transition:all .2s ease;text-align:left}.welcome-suggestion-btn:hover{background-color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.welcome-input-form{display:flex;gap:.75rem;align-items:center;width:100%;max-width:400px;margin-top:1.5rem}.welcome-input{flex:1;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:24px;padding:.75rem 1.25rem;color:var(--text-primary);font-family:inherit;font-size:.95rem;transition:border-color .2s ease}.welcome-input:focus{outline:none;border-color:var(--accent)}.welcome-input::placeholder{color:var(--text-secondary)}.welcome-send-btn{background-color:var(--accent);border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.welcome-send-btn:hover:not(:disabled){background-color:var(--accent-hover);transform:scale(1.05)}.welcome-send-btn:disabled{opacity:.5;cursor:not-allowed}.welcome-send-btn svg{width:20px;height:20px;color:#fff;margin-left:2px}.chat-window{display:flex;flex-direction:column;height:100%}.chat-window-empty{flex:1;overflow-y:auto}.message-list{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.message-bubble{max-width:85%;padding:.875rem 1rem;border-radius:16px;position:relative;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-bubble.user{align-self:flex-end;background-color:var(--user-bubble);border-bottom-right-radius:4px}.message-bubble.assistant{align-self:flex-start;background-color:var(--assistant-bubble);border-bottom-left-radius:4px}.message-content p{margin:0;line-height:1.5}.message-content ul,.message-content ol{margin:.5rem 0;padding-left:1.5rem}.message-content li{margin:.25rem 0}.message-content strong{color:var(--accent)}.message-time{display:block;font-size:.7rem;color:var(--text-secondary);margin-top:.5rem;text-align:right}.typing-indicator{display:flex;gap:4px;padding:.25rem 0}.typing-indicator span{width:8px;height:8px;background-color:var(--text-secondary);border-radius:50%;animation:bounce 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:-.32s}.typing-indicator span:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.chat-input-container{border-top:1px solid var(--border-color);padding:1rem 1.5rem;background-color:var(--bg-secondary)}.quick-replies{display:flex;gap:.5rem;margin-bottom:.75rem;overflow-x:auto;padding-bottom:.25rem}.quick-replies::-webkit-scrollbar{height:4px}.quick-replies::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:2px}.quick-reply-chip{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:.5rem .875rem;border-radius:20px;cursor:pointer;font-size:.85rem;white-space:nowrap;transition:all .2s ease}.quick-reply-chip:hover{background-color:var(--accent);border-color:var(--accent)}.chat-input-wrapper{width:100%}.chat-input{display:flex;gap:.75rem;align-items:flex-end}.chat-input textarea{flex:1;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:24px;padding:.75rem 1.25rem;color:var(--text-primary);font-family:inherit;font-size:.95rem;resize:none;max-height:120px;line-height:1.4;transition:border-color .2s ease}.chat-input textarea:focus{outline:none;border-color:var(--accent)}.chat-input textarea:disabled{opacity:.6;cursor:not-allowed}.chat-input button{background-color:var(--accent);border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.chat-input button:hover:not(:disabled){background-color:var(--accent-hover);transform:scale(1.05)}.chat-input button:disabled{opacity:.5;cursor:not-allowed}.chat-input button svg{width:20px;height:20px;color:#fff;margin-left:2px}.message-list::-webkit-scrollbar{width:6px}.message-list::-webkit-scrollbar-track{background:transparent}.message-list::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:3px}@media (max-width: 600px){.app{height:100vh;max-width:100%}.message-bubble{max-width:90%}.welcome-screen h1{font-size:1.5rem}.welcome-icon{font-size:3rem}.app-header{padding:.875rem 1rem}.chat-input-container{padding:.75rem 1rem}}.rich-card{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem;margin:1rem 0;overflow:hidden}.rich-card.loading{display:flex;align-items:center;justify-content:center;min-height:80px;color:var(--text-secondary);font-style:italic}.rich-card.error{background-color:#f871711a;border-color:var(--error);color:var(--error);text-align:center}.pricing-card{padding:0}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:1.25rem}@media (max-width: 700px){.pricing-grid{grid-template-columns:1fr}}.pricing-plan{background-color:var(--bg-secondary);border:2px solid;border-radius:10px;padding:1.25rem;position:relative;transition:transform .2s ease}.pricing-plan:hover{transform:translateY(-4px)}.pricing-plan.popular{border-width:3px;box-shadow:0 4px 20px #2196f34d}.popular-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#2196f3,#21cbf3);color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600}.plan-name{font-size:1.25rem;margin-bottom:.5rem;text-align:center}.plan-price{text-align:center;margin-bottom:.5rem}.plan-price .currency{font-size:1.25rem;vertical-align:top}.plan-price .amount{font-size:2.5rem;font-weight:700}.plan-price .period{color:var(--text-secondary);font-size:.9rem}.plan-annual{text-align:center;color:var(--text-secondary);font-size:.85rem;margin-bottom:.75rem}.plan-description{text-align:center;font-size:.9rem;margin-bottom:1rem;color:var(--text-secondary)}.plan-features{list-style:none;padding:0;margin:0 0 1rem}.plan-features li{display:flex;align-items:flex-start;gap:.5rem;padding:.375rem 0;font-size:.85rem}.plan-features li.included{color:var(--text-primary)}.plan-features li.not-included{color:var(--text-secondary);opacity:.6}.plan-features .check{font-weight:700;min-width:16px}.plan-features li.included .check{color:var(--success)}.plan-features li.not-included .check{color:var(--text-secondary)}.plan-terms{border-top:1px solid var(--border-color);padding-top:.75rem;text-align:center}.plan-terms small{color:var(--text-secondary);font-size:.8rem}.pricing-extra{border-top:1px solid var(--border-color);padding:1rem 1.25rem;background-color:var(--bg-secondary)}.pricing-extra p{margin:.5rem 0;font-size:.9rem;color:var(--text-secondary)}.pricing-extra strong{color:var(--text-primary)}.schedule-card{max-height:400px;overflow-y:auto}.schedule-card.full-week{max-height:500px}.schedule-day,.schedule-title{font-size:1.25rem;margin-bottom:1rem;color:var(--accent)}.schedule-day-block{margin-bottom:1.5rem}.schedule-day-block h4{font-size:1rem;color:var(--accent);margin-bottom:.5rem;text-transform:capitalize}.schedule-list{display:flex;flex-direction:column;gap:.5rem}.schedule-item{display:flex;align-items:flex-start;gap:1rem;padding:.75rem;background-color:var(--bg-secondary);border-radius:8px;border-left:3px solid var(--accent)}.schedule-time{font-weight:600;color:var(--accent);min-width:50px;font-size:.9rem}.schedule-details{flex:1}.schedule-class{display:block;font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.schedule-trainer{display:block;font-size:.85rem;color:var(--text-secondary);margin-bottom:.25rem}.schedule-meta{display:block;font-size:.8rem;color:var(--text-secondary);opacity:.8}.trainer-card.single{max-width:500px}.trainer-header{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem}.trainer-photo{width:80px;height:80px;border-radius:50%;background-color:var(--bg-secondary);border:3px solid var(--accent)}.trainer-info{flex:1}.trainer-name{font-size:1.25rem;margin:0 0 .25rem;color:var(--text-primary)}.trainer-role{color:var(--accent);font-weight:500;margin:0 0 .25rem;font-size:.95rem}.trainer-experience{color:var(--text-secondary);font-size:.85rem;margin:0}.trainer-bio{color:var(--text-primary);line-height:1.6;margin-bottom:1rem;font-size:.9rem}.trainer-specialties,.trainer-teaches{margin-bottom:1rem}.trainer-specialties strong,.trainer-teaches strong{display:block;color:var(--accent);margin-bottom:.5rem;font-size:.9rem}.specialty-tags,.teaches-tags{display:flex;flex-wrap:wrap;gap:.5rem}.specialty-tag,.teaches-tag{background-color:var(--bg-secondary);color:var(--text-primary);padding:.375rem .75rem;border-radius:20px;font-size:.8rem;border:1px solid var(--border-color)}.trainer-funfact{background-color:#e945601a;border-left:3px solid var(--accent);padding:.75rem;border-radius:0 8px 8px 0;font-size:.9rem}.trainer-funfact strong{color:var(--accent)}.trainer-card.grid{padding:1.25rem}.trainer-title{font-size:1.25rem;color:var(--accent);margin-bottom:1rem;text-align:center}.trainers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media (max-width: 500px){.trainers-grid{grid-template-columns:1fr}}.trainer-item{background-color:var(--bg-secondary);padding:1rem;border-radius:8px;text-align:center;border:1px solid var(--border-color);transition:border-color .2s ease}.trainer-item:hover{border-color:var(--accent)}.trainer-photo-small{width:60px;height:60px;border-radius:50%;margin-bottom:.75rem;background-color:var(--bg-tertiary);border:2px solid var(--accent)}.trainer-name-small{font-size:1rem;margin:0 0 .25rem;color:var(--text-primary)}.trainer-role-small{color:var(--accent);font-size:.85rem;margin:0 0 .25rem}.trainer-experience-small{color:var(--text-secondary);font-size:.8rem;margin:0 0 .5rem}.trainer-teaches-small{display:flex;flex-wrap:wrap;justify-content:center;gap:.25rem}.teaches-tag-small{background-color:var(--bg-tertiary);color:var(--text-primary);padding:.25rem .5rem;border-radius:12px;font-size:.7rem}.map-card{text-align:center}.map-card h3{color:var(--accent);margin-bottom:.75rem}.map-card p{color:var(--text-secondary);margin-bottom:1rem;line-height:1.6}.map-card strong{color:var(--text-primary)}.map-link{display:inline-block;background-color:var(--accent);color:#fff;padding:.75rem 1.5rem;border-radius:24px;text-decoration:none;font-weight:500;transition:background-color .2s ease}.map-link:hover{background-color:var(--accent-hover)}.message-with-cards{display:flex;flex-direction:column;gap:.5rem}.message-with-cards>*:last-child{margin-bottom:0}.booking-confirmation{border-top:4px solid var(--success);background:linear-gradient(180deg,rgba(74,222,128,.05) 0%,var(--bg-tertiary) 100%)}.booking-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.booking-icon{font-size:2rem}.booking-title{font-size:1.5rem;color:var(--success);margin:0}.booking-reference{background-color:var(--bg-secondary);border-radius:8px;padding:1.25rem;text-align:center;margin-bottom:1.25rem;border:1px solid var(--success)}.reference-label{font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem}.reference-code{font-size:2rem;font-weight:700;color:var(--success);font-family:Courier New,monospace;letter-spacing:4px;margin-bottom:.5rem}.reference-note{font-size:.8rem;color:var(--text-secondary)}.booking-details{background-color:var(--bg-secondary);border-radius:8px;padding:1rem;margin-bottom:1.25rem}.booking-details .detail-row{display:flex;justify-content:space-between;padding:.625rem 0;border-bottom:1px solid var(--border-color);font-size:.9rem}.booking-details .detail-row:last-child{border-bottom:none}.booking-details .detail-label{color:var(--text-secondary);font-weight:500}.booking-details .detail-value{color:var(--text-primary);font-weight:600;text-align:right}.booking-checklist{background-color:var(--bg-secondary);border-radius:8px;padding:1rem;margin-bottom:1.25rem}.booking-checklist h4{color:var(--accent);font-size:.95rem;margin:0 0 .75rem}.booking-checklist ul{list-style:none;padding:0;margin:0}.booking-checklist li{color:var(--text-secondary);font-size:.85rem;padding:.375rem 0 .375rem 1.25rem;position:relative}.booking-checklist li:before{content:"✓";position:absolute;left:0;color:var(--success);font-weight:700}.booking-footer{border-top:1px solid var(--border-color);padding-top:1rem}.booking-footer p{margin:.5rem 0;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.booking-footer strong{color:var(--text-primary)}.cancel-note{background-color:#e945601a;border-left:3px solid var(--accent);padding:.75rem;border-radius:0 8px 8px 0;font-size:.85rem!important}.booking-status{text-align:center}.booking-status h3{color:var(--accent);margin-bottom:.75rem}.booking-status p{margin:.5rem 0;color:var(--text-secondary)}.booking-status strong{color:var(--text-primary);font-family:Courier New,monospace;letter-spacing:2px}.booking-status-info{font-size:.85rem;font-style:italic}.voice-button{width:40px;height:40px;border-radius:50%;border:none;background-color:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.voice-button:hover:not(:disabled){background-color:var(--accent);color:#fff}.voice-button.listening{background-color:var(--error);color:#fff;animation:voice-button-pulse 1.5s ease-in-out infinite}.voice-button.disabled{opacity:.3;cursor:not-allowed}.voice-button:disabled{opacity:.5;cursor:not-allowed}.mic-icon{width:20px;height:20px}@keyframes voice-button-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.8}}.interim-transcript{font-size:.85rem;color:var(--text-secondary);font-style:italic;opacity:.7;margin-bottom:.5rem;min-height:1.2em;animation:fadeIn .2s ease}.visualizer-container{display:flex;align-items:flex-end;justify-content:center;gap:4px;height:60px;padding:0 10px}.visualizer-bar{width:6px;background:linear-gradient(to top,var(--accent),var(--accent-hover));border-radius:3px;min-height:10%;transition:height .05s ease}.visualizer-large{height:120px;gap:6px}.visualizer-large .visualizer-bar{width:10px;border-radius:5px}.voice-mode{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0a0a1a;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.voice-mode-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:#1a1a2ecc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lang-toggle{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-primary);padding:.5rem 1rem;border-radius:20px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.lang-toggle:hover{background-color:var(--accent);border-color:var(--accent)}.voice-mode-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;border-radius:50%;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.voice-mode-close:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.voice-mode-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:2rem;overflow-y:auto}.voice-mode-visualizer{margin:1rem 0}.voice-mode-status{font-size:1.5rem;color:var(--text-primary);font-weight:500;text-align:center;min-height:2rem}.status-dots{animation:dots 1.5s steps(4,end) infinite}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.voice-mode-transcript,.voice-mode-response{max-width:600px;width:100%;padding:1rem 1.5rem;border-radius:12px;background-color:#1a1a2e80;border:1px solid var(--border-color)}.voice-mode-transcript{border-left:4px solid var(--accent)}.voice-mode-response{border-left:4px solid var(--success)}.transcript-label,.response-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:1px;margin-bottom:.5rem;color:var(--text-secondary);font-weight:600}.voice-mode-transcript p,.voice-mode-response p{margin:0;font-size:1rem;line-height:1.6;color:var(--text-primary)}.voice-mode-footer{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;background-color:#1a1a2ecc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.voice-mode-mic-wrapper{display:flex;align-items:center;justify-content:center}.voice-mode-mic{width:80px;height:80px;border-radius:50%;border:3px solid var(--bg-tertiary);background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 4px 20px #e9456066}.voice-mode-mic:hover{transform:scale(1.05);box-shadow:0 6px 30px #e9456099}.voice-mode-mic.listening{animation:voice-mode-mic-pulse 1.5s ease-in-out infinite;border-color:var(--error)}@keyframes voice-mode-mic-pulse{0%,to{transform:scale(1);box-shadow:0 4px 20px #e9456066}50%{transform:scale(1.1);box-shadow:0 8px 40px #e94560b3}}.mic-icon-large{width:36px;height:36px}.voice-mode-controls{display:flex;gap:1rem}.tts-toggle{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);padding:.75rem;border-radius:50%;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.tts-toggle:hover{background-color:var(--bg-secondary)}.tts-toggle.enabled{background-color:var(--success);border-color:var(--success);color:#fff}@media (max-width: 600px){.voice-mode-content{padding:1rem;gap:1.5rem}.voice-mode-status{font-size:1.25rem}.voice-mode-mic{width:70px;height:70px}.mic-icon-large{width:32px;height:32px}.visualizer-large{height:100px}.voice-mode-transcript,.voice-mode-response{padding:.75rem 1rem}.voice-mode-transcript p,.voice-mode-response p{font-size:.9rem}}.voice-mode-interim{font-size:16px;color:#94a3b8;font-style:italic;text-align:center;max-width:80%}.voice-mode-label{font-weight:600;color:#818cf8}.voice-mode-error{color:#ef4444;font-size:14px;padding:8px 16px;background:#1c1117;border-radius:8px}.voice-mode-lang{display:flex;gap:8px}.lang-btn{padding:6px 12px;border:1px solid #333;border-radius:20px;background:transparent;color:#94a3b8;cursor:pointer;font-size:14px}.lang-btn.active{background:#4f46e5;color:#fff;border-color:#4f46e5}.voice-mode-tts{width:48px;height:48px;border-radius:50%;border:none;background:#1e293b;font-size:20px;cursor:pointer}.voice-mode-tts.active{background:#4f46e5}.voice-mode-status.listening{color:#ef4444}.voice-mode-status.thinking{color:#818cf8}.voice-mode-mic.loading{opacity:.5;cursor:not-allowed}.voice-mode-mic:active{transform:scale(.95)}@keyframes pulse-large{0%,to{transform:scale(1);box-shadow:0 0 #ef444466}50%{transform:scale(1.05);box-shadow:0 0 0 20px #ef444400}}.header-controls{display:flex;gap:8px;align-items:center}.header-btn{width:36px;height:36px;border:none;background:#1e293b;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.header-btn.active{background:#4f46e5}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
