@import "tailwindcss"; @keyframes gradient { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } .animate-gradient { background-size: 300% 300%; animation: gradient 10s ease infinite; } /* Ionic переменные для кастомизации */ :root { /* Основные цвета приложения */ --ion-color-primary: #0f766e; --ion-color-primary-rgb: 15, 118, 110; --ion-color-primary-contrast: #ffffff; --ion-color-primary-contrast-rgb: 255, 255, 255; --ion-color-primary-shade: #0d6660; --ion-color-primary-tint: #27847e; /* Вторичные цвета */ --ion-color-secondary: #06b6d4; --ion-color-secondary-rgb: 6, 182, 212; --ion-color-secondary-contrast: #ffffff; --ion-color-secondary-contrast-rgb: 255, 255, 255; --ion-color-secondary-shade: #05a0ba; --ion-color-secondary-tint: #1fc1d8; /* Цвет успеха */ --ion-color-success: #10b981; --ion-color-success-rgb: 16, 185, 129; --ion-color-success-contrast: #ffffff; --ion-color-success-contrast-rgb: 255, 255, 255; --ion-color-success-shade: #0ea372; --ion-color-success-tint: #28c78e; /* Цвет предупреждения */ --ion-color-warning: #f59e0b; --ion-color-warning-rgb: 245, 158, 11; --ion-color-warning-contrast: #ffffff; --ion-color-warning-contrast-rgb: 255, 255, 255; --ion-color-warning-shade: #d8890a; --ion-color-warning-tint: #f6a824; /* Цвет опасности */ --ion-color-danger: #ef4444; --ion-color-danger-rgb: 239, 68, 68; --ion-color-danger-contrast: #ffffff; --ion-color-danger-contrast-rgb: 255, 255, 255; --ion-color-danger-shade: #d23c3c; --ion-color-danger-tint: #f15757; /* Фон приложения */ --ion-background-color: #f8fafc; --ion-background-color-rgb: 248, 250, 252; /* Цвет текста */ --ion-text-color: #1e293b; --ion-text-color-rgb: 30, 41, 59; /* Цвета для карточек */ --ion-card-background: rgba(255, 255, 255, 0.9); --ion-item-background: rgba(255, 255, 255, 0.8); } /* Кастомные стили для медицинского приложения */ .medical-gradient { background: linear-gradient(135deg, #0f766e 0%, #06b6d4 100%); } .medical-card { background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); border: 1px solid rgba(15, 118, 110, 0.1); box-shadow: 0 8px 32px rgba(15, 118, 110, 0.1); } .exercise-timer { background: linear-gradient(135deg, #0f766e, #06b6d4); color: white; border-radius: 16px; padding: 1rem; } /* Анимации для таймера */ @keyframes pulse-medical { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } } .timer-pulse { animation: pulse-medical 2s ease-in-out infinite; } /* Стили для прогресс-бара */ .progress-medical { background: linear-gradient(90deg, #10b981, #06b6d4); border-radius: 8px; height: 8px; } /* Кастомные стили для Ionic компонентов */ ion-card.medical-card { --background: rgba(255, 255, 255, 0.9); --color: #1e293b; border: 1px solid rgba(15, 118, 110, 0.1); box-shadow: 0 8px 32px rgba(15, 118, 110, 0.1); } ion-button.medical-button { --background: linear-gradient(135deg, #0f766e, #06b6d4); --color: white; --border-radius: 12px; --box-shadow: 0 4px 16px rgba(15, 118, 110, 0.3); } ion-button.medical-button:hover { --box-shadow: 0 6px 20px rgba(15, 118, 110, 0.4); transform: translateY(-2px); } /* Стили для header и footer */ ion-header.medical-header { --background: rgba(15, 23, 42, 0.95); --color: white; backdrop-filter: blur(20px); border-bottom: 1px solid rgba(15, 118, 110, 0.3); } ion-footer.medical-footer { --background: rgba(15, 23, 42, 0.95); --color: white; backdrop-filter: blur(20px); border-top: 1px solid rgba(15, 118, 110, 0.3); } /* Адаптивность */ @media (max-width: 768px) { .medical-card { margin: 0.5rem; border-radius: 12px; } .exercise-timer { padding: 0.75rem; border-radius: 12px; } } /* Стили для статусов упражнений */ .exercise-completed { background: rgba(16, 185, 129, 0.1); border: 1px solid rgba(16, 185, 129, 0.2); } .exercise-active { background: rgba(6, 182, 212, 0.1); border: 1px solid rgba(6, 182, 212, 0.2); animation: pulse-medical 2s ease-in-out infinite; } .exercise-pending { background: rgba(148, 163, 184, 0.1); border: 1px solid rgba(148, 163, 184, 0.2); } /* Улучшенные тени для глубины */ .shadow-medical { box-shadow: 0 4px 6px -1px rgba(15, 118, 110, 0.1), 0 2px 4px -1px rgba(15, 118, 110, 0.06); } .shadow-medical-lg { box-shadow: 0 10px 15px -3px rgba(15, 118, 110, 0.1), 0 4px 6px -2px rgba(15, 118, 110, 0.05); } /* Кастомные скроллбары */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: rgba(148, 163, 184, 0.1); border-radius: 3px; } ::-webkit-scrollbar-thumb { background: rgba(15, 118, 110, 0.3); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: rgba(15, 118, 110, 0.5); }