.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:32px;padding:24px;background:var(--bg-primary)}.loading-spinner{width:56px;height:56px;border:4px solid var(--primary-light);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-size:17px;color:var(--tg-theme-hint-color, var(--text-secondary));font-weight:500;letter-spacing:.3px}.error-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:32px 24px;text-align:center;background:var(--bg-primary)}.error-icon{font-size:72px;margin-bottom:32px;animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.error-title{font-size:28px;font-weight:700;color:var(--tg-theme-text-color, var(--text-primary));margin-bottom:16px;letter-spacing:-.5px}.error-message{font-size:17px;color:var(--tg-theme-hint-color, var(--text-secondary));margin-bottom:40px;line-height:1.6;max-width:400px}.retry-button{padding:16px 32px;background:linear-gradient(135deg,var(--primary-color),#388e3c);color:#fff;border-radius:var(--radius-lg);font-size:17px;font-weight:600;transition:var(--transition);box-shadow:var(--shadow-lg);letter-spacing:.3px}.retry-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.question-card{display:flex;flex-direction:column;min-height:calc(100vh - 120px);padding:32px 24px;max-width:600px;margin:0 auto;position:relative}.question-header{margin-bottom:32px}.question-title{font-size:32px;font-weight:700;color:var(--text-primary);margin-bottom:16px;line-height:1.2;letter-spacing:-.5px}.question-description{font-size:17px;color:var(--text-secondary);line-height:1.6;font-weight:400}.question-content{flex:1;display:flex;flex-direction:column;gap:16px}.options-list{display:flex;flex-direction:column;gap:12px}.option-button{width:100%;padding:20px 24px;background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-color);border-radius:var(--radius-lg);font-size:17px;font-weight:500;text-align:left;transition:var(--transition);position:relative;box-shadow:var(--shadow)}.option-button:hover{background:var(--primary-light);border-color:var(--primary-color);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.option-button.selected{background:linear-gradient(135deg,var(--primary-color),#388e3c);color:#fff;border-color:var(--primary-color);box-shadow:var(--shadow-xl);transform:translateY(-2px)}.option-button.checkbox{display:flex;align-items:center;gap:12px}.checkbox-icon{width:24px;height:24px;border:2px solid currentColor;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}.option-button.checkbox.selected .checkbox-icon{background:currentColor;color:var(--primary-color)}.option-button.checkbox.selected{background:var(--primary-light);color:#4caf50;border-color:var(--primary-color);font-weight:600}.number-input-wrapper{position:relative;display:flex;align-items:center}.number-input{width:100%;padding:20px 70px 20px 24px;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);font-size:24px;font-weight:600;color:var(--text-primary);transition:var(--transition);box-shadow:var(--shadow)}.number-input:focus{border-color:var(--primary-color);background:var(--bg-tertiary);box-shadow:0 0 0 4px var(--primary-light),var(--shadow-lg);outline:none}.input-unit{position:absolute;right:20px;font-size:16px;color:var(--text-secondary);font-weight:500}.text-input{width:100%;padding:20px 24px;background:var(--bg-secondary);border:2px solid var(--border-color);border-radius:var(--radius-lg);font-size:17px;color:var(--text-primary);resize:none;font-family:inherit;transition:var(--transition);box-shadow:var(--shadow);line-height:1.6}.text-input:focus{border-color:var(--primary-color);background:var(--bg-tertiary);box-shadow:0 0 0 4px var(--primary-light),var(--shadow-lg);outline:none}.text-input::placeholder{color:var(--tg-theme-hint-color, var(--text-secondary))}.question-footer{margin-top:auto;padding-top:24px}.question-footer-buttons{display:flex;gap:12px;width:100%}.back-button{flex:0 0 auto;padding:18px 24px;background:var(--bg-secondary);color:var(--text-primary);border-radius:var(--radius-lg);font-size:17px;font-weight:600;transition:var(--transition);border:2px solid var(--border-color);min-width:100px;box-shadow:var(--shadow)}.back-button:hover{background:var(--bg-tertiary);border-color:var(--primary-color);transform:translateY(-1px);box-shadow:var(--shadow-lg)}.continue-button{flex:1;padding:18px 24px;background:linear-gradient(135deg,var(--primary-color),#388e3c);color:#fff;border-radius:var(--radius-lg);font-size:18px;font-weight:600;transition:var(--transition);box-shadow:var(--shadow-lg);letter-spacing:.3px}.continue-button:hover:not(:disabled){background:linear-gradient(135deg,#388e3c,var(--primary-hover));box-shadow:var(--shadow-xl)}.continue-button.with-back{flex:1}.continue-button:hover:not(:disabled){background:var(--primary-hover);box-shadow:var(--shadow-lg)}.continue-button:disabled{opacity:.5;cursor:not-allowed}.progress-bar-container{padding:20px 24px;background:var(--bg-primary);border-top:1px solid var(--border-color);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;bottom:0;z-index:10}.progress-bar-track{width:100%;height:10px;background:var(--bg-tertiary);border-radius:10px;overflow:hidden;margin-bottom:12px;box-shadow:inset 0 2px 4px #0000004d}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary-color),#388e3c,#4caf50);border-radius:10px;box-shadow:0 2px 8px #2e7d3280;position:relative;overflow:hidden}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-bar-text{text-align:center;font-size:15px;color:var(--text-secondary);font-weight:600;letter-spacing:.3px}.questionnaire-page{display:flex;flex-direction:column;min-height:100vh;background:var(--bg-primary);position:relative;padding-top:32px}.error-banner{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:12px;padding:16px 24px;background:linear-gradient(135deg,#2d2d2d,#3a3a3a);border-bottom:2px solid var(--primary-color);box-shadow:var(--shadow);animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.error-banner-icon{font-size:20px;flex-shrink:0}.error-banner-text{flex:1;font-size:15px;font-weight:500;color:#ffcc80;line-height:1.4}.error-banner-close{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border-radius:50%;font-size:20px;font-weight:600;color:#ffcc80;cursor:pointer;transition:var(--transition);border:none;padding:0}.error-banner-close:hover{background:#fff3;transform:scale(1.1)}.loading-page{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg-primary, #1e293b);color:var(--text-primary, #e5e7eb);position:relative;overflow:hidden}.loading-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;text-align:center;z-index:1}.loading-spinner{width:64px;height:64px;border:4px solid var(--primary-light, rgba(99, 102, 241, .2));border-top-color:var(--primary-color, #6366f1);border-radius:50%}.loading-text{font-size:17px;color:var(--text-primary, #e5e7eb);font-weight:500;letter-spacing:.3px;max-width:320px;line-height:1.5;margin:0}.loading-text.error{color:#fca5a5}.retry-button{margin-top:8px;padding:14px 24px;border-radius:12px;background:linear-gradient(135deg,#22d3ee,#6366f1);border:none;color:#0f172a;font-weight:700;font-size:16px;cursor:pointer;box-shadow:0 10px 30px #6366f159;transition:transform .2s ease}.retry-button:active{transform:scale(.98)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:64px;background:#111827f2;border-top:1px solid rgba(255,255,255,.05);display:grid;grid-template-columns:repeat(2,1fr);align-items:center;z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.nav-item{text-decoration:none;color:#9ca3af;text-align:center;font-weight:700;padding:10px 0;transition:color .2s ease,transform .2s ease}.nav-item.active{color:#22d3ee;transform:translateY(-2px)}.home-page{min-height:100vh;background:linear-gradient(180deg,#0f172a,#111827);color:#e5e7eb;padding:16px 16px 100px}.week-strip{display:flex;gap:8px;overflow-x:auto;padding:6px 2px 12px}.day-chip{min-width:54px;border:none;border-radius:14px;background:#1f2937;color:#cbd5e1;padding:8px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;transition:all .2s ease}.day-chip.selected{background:linear-gradient(135deg,#22d3ee,#6366f1);color:#0f172a;box-shadow:0 10px 30px #6366f159}.day-chip.today{border:1px solid rgba(34,211,238,.6)}.day-short{font-weight:700;font-size:13px}.day-number{font-size:12px}.card{background:#1f2937e6;border:1px solid rgba(255,255,255,.05);border-radius:16px;padding:14px;margin-top:12px;box-shadow:0 10px 30px #00000059}.card.info{color:#cbd5e1}.card.error{color:#fca5a5;border-color:#f8717159}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.card-title{margin:0;font-weight:700;color:#e5e7eb}.card-subtitle{margin:4px 0 0;color:#9ca3af;font-size:14px}.chevron{font-size:18px;color:#9ca3af}.workout-block,.meals-block{margin-top:12px}.workout-desc{color:#cbd5e1;margin-bottom:12px;line-height:1.5}.exercise-list{display:flex;flex-direction:column;gap:10px}.exercise-item{background:#ffffff08;border-radius:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.05)}.exercise-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.exercise-name{margin:0;font-weight:700}.exercise-sets,.exercise-meta{margin:2px 0 0;color:#9ca3af;font-size:13px}.exercise-desc{margin:6px 0 4px;color:#cbd5e1;line-height:1.4}.meals-block{display:flex;flex-direction:column;gap:10px}.meal-item{background:#ffffff08;border-radius:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.05)}.meal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.meal-type{margin:0;font-weight:700}.dish-item{padding:8px 0;border-top:1px solid rgba(255,255,255,.04)}.dish-title-row{display:flex;align-items:center;justify-content:space-between}.dish-name{margin:0;font-weight:700}.dish-kcal{margin:0;color:#22d3ee}.dish-desc,.dish-recipe,.dish-portion{margin:4px 0;color:#cbd5e1;line-height:1.4}.dish-macros{margin:4px 0;color:#9ca3af}.empty-text{color:#9ca3af;margin:8px 0}.dev-mode-banner{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;font-size:12px;font-weight:600;box-shadow:0 2px 8px #0003;letter-spacing:.5px;pointer-events:none}.dev-mode-icon{font-size:14px}.dev-mode-text{text-transform:uppercase}.app{min-height:100vh;width:100%;background:var(--bg-primary);position:relative}*{margin:0;padding:0;box-sizing:border-box}:root{--tg-theme-bg-color: #1a1a1a;--tg-theme-text-color: #e0e0e0;--tg-theme-hint-color: #9e9e9e;--tg-theme-link-color: #4caf50;--tg-theme-button-color: #2e7d32;--tg-theme-button-text-color: #ffffff;--tg-theme-secondary-bg-color: #2d2d2d;--primary-color: #2e7d32;--primary-hover: #1b5e20;--primary-light: rgba(46, 125, 50, .15);--success-color: #4caf50;--error-color: #f44336;--text-primary: #e0e0e0;--text-secondary: #b0b0b0;--text-tertiary: #9e9e9e;--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--border-color: #404040;--shadow: 0 2px 8px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .5);--shadow-xl: 0 8px 32px rgba(0, 0, 0, .6);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--transition: all .2s cubic-bezier(.4, 0, .2, 1)}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-color:var(--bg-primary);background:linear-gradient(135deg,#1a1a1a,#252525);color:var(--text-primary);overflow-x:hidden;min-height:100vh}#root{min-height:100vh;width:100%}button{font-family:inherit;cursor:pointer;border:none;outline:none}input,textarea,select{font-family:inherit;outline:none}
