Spaces:
No application file
No application file
/* Основные переменные */ | |
:root { | |
--primary-color: #4a4ae8; | |
--primary-dark: #3b3b98; | |
--secondary-color: #6c5ce7; | |
--dark-bg: #1a1a2e; | |
--darker-bg: #16213e; | |
--dark-text: #e2e2e2; | |
--light-text: #ffffff; | |
--success-color: #00b894; | |
--danger-color: #d63031; | |
--warning-color: #fdcb6e; | |
--info-color: #0984e3; | |
--border-radius: 12px; | |
--box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); | |
} | |
/* Базовые стили */ | |
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
} | |
body { | |
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | |
background-color: var(--darker-bg); | |
color: var(--light-text); | |
line-height: 1.6; | |
} | |
h2, label{ | |
color: #fff; | |
} | |
/* Контейнер приложения */ | |
.app-container { | |
display: flex; | |
min-height: 100vh; | |
position: relative; | |
} | |
/* Предупреждения */ | |
.alert-text { | |
color: #fff; | |
} | |
body::-webkit-scrollbar { | |
display: none; | |
width: 0; | |
background: transparent; | |
} | |
.enhanced-alert { | |
padding: 20px 25px ; | |
font-size: 1.1rem ; | |
border: 2px solid rgba(255,255,255,0.3) ; | |
backdrop-filter: blur(5px); | |
display: flex ; | |
align-items: center; | |
gap: 15px; | |
} | |
.flash-info.enhanced-alert { | |
background: rgba(74, 74, 232, 0.9) ; | |
color: #fff ; | |
border-color: var(--primary-color) ; | |
} | |
.alert-icon { | |
font-size: 1.5rem; | |
min-width: 30px; | |
} | |
.alert-icon .fa-info-circle { | |
color: #ff0000; | |
} | |
.flash-close { | |
background: none ; | |
color: rgba(255,255,255,0.8) ; | |
padding: 0 ; | |
} | |
.flash-close:hover { | |
color: #ff0000 ; | |
} | |
/* Анимация появления */ | |
@keyframes pulse-alert { | |
0% { transform: translateY(20px); opacity: 0; } | |
80% { transform: translateY(-5px); } | |
100% { transform: translateY(0); opacity: 1; } | |
} | |
.enhanced-alert { | |
animation: pulse-alert 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); | |
} | |
/* Боковая панель */ | |
.app-sidebar { | |
width: 280px; | |
background: var(--dark-bg); | |
display: flex; | |
flex-direction: column; | |
padding: 20px 0; | |
border-right: 1px solid rgba(255, 255, 255, 0.1); | |
position: fixed; | |
top: 0; | |
left: 0; | |
height: 100vh; | |
width: 280px; | |
z-index: 1000; | |
overflow-y: auto; | |
transition: transform 0.3s ease; | |
} | |
.sidebar-header { | |
padding: 0 20px 20px; | |
border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.logo-link { | |
text-decoration: none ; | |
border-bottom: none ; | |
} | |
.logo-link:hover, | |
.logo-link:focus { | |
box-shadow: none ; | |
} | |
.sidebar-header h2 { | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
font-size: 1.3rem; | |
color: var(--light-text); | |
} | |
.sidebar-nav { | |
flex: 1; | |
padding: 20px 0; | |
} | |
.nav-item { | |
display: flex; | |
align-items: center; | |
gap: 12px; | |
padding: 12px 20px; | |
color: var(--light-text); | |
text-decoration: none; | |
transition: all 0.3s ease; | |
border-left: 3px solid transparent; | |
} | |
.nav-item:hover, .nav-item.active { | |
background: rgba(74, 74, 232, 0.1); | |
border-left: 3px solid var(--primary-color); | |
} | |
.nav-item i { | |
width: 20px; | |
text-align: center; | |
} | |
.sidebar-footer { | |
padding: 20px; | |
border-top: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.user-info span{ | |
color: white | |
} | |
.user-info { | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
margin-bottom: 15px; | |
} | |
.user-info i { | |
font-size: 1.8rem; | |
color: var(--primary-color); | |
} | |
.logout-btn { | |
display: block; | |
width: 100%; | |
padding: 10px; | |
background: rgba(214, 48, 49, 0.1); | |
color: var(--danger-color); | |
border: none; | |
border-radius: var(--border-radius); | |
text-align: center; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
} | |
.logout-btn:hover { | |
background: rgba(214, 48, 49, 0.2); | |
} | |
.auth-links { | |
display: flex; | |
gap: 10px; | |
} | |
.auth-link { | |
flex: 1; | |
padding: 10px; | |
text-align: center; | |
color: var(--light-text); | |
text-decoration: none; | |
border-radius: var(--border-radius); | |
transition: all 0.3s ease; | |
} | |
.auth-link:first-child { | |
background: rgba(74, 74, 232, 0.1); | |
} | |
.auth-link:last-child { | |
background: rgba(0, 184, 148, 0.1); | |
} | |
.auth-link:hover { | |
background: rgba(255, 255, 255, 0.1); | |
} | |
/* Основное содержимое */ | |
/* Welcome Page Styles */ | |
.welcome-container { | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
min-height: 100vh; | |
padding: 2rem; | |
} | |
.welcome-content { | |
max-width: 1200px; | |
text-align: center; | |
} | |
.welcome-header h1 { | |
font-size: 3.5rem; | |
margin-bottom: 1rem; | |
color: var(--light-text); | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
gap: 1rem; | |
} | |
.tagline { | |
font-size: 1.5rem; | |
color: rgba(255, 255, 255, 0.8); | |
margin-bottom: 3rem; | |
} | |
.welcome-cards { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
gap: 2rem; | |
margin-bottom: 4rem; | |
} | |
.feature-card { | |
background: rgba(255, 255, 255, 0.05); | |
padding: 2rem; | |
border-radius: var(--border-radius); | |
transition: all 0.3s ease; | |
} | |
.feature-card:hover { | |
transform: translateY(-10px); | |
box-shadow: var(--box-shadow); | |
} | |
.feature-icon { | |
width: 80px; | |
height: 80px; | |
margin: 0 auto 1.5rem; | |
background: rgba(74, 74, 232, 0.2); | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
font-size: 2rem; | |
} | |
.feature-card h3 { | |
font-size: 1.5rem; | |
margin-bottom: 1rem; | |
color: var(--light-text); | |
} | |
.feature-card p { | |
color: rgba(255, 255, 255, 0.7); | |
line-height: 1.6; | |
} | |
.auth-buttons { | |
display: flex; | |
gap: 1.5rem; | |
justify-content: center; | |
} | |
.btn-secondary { | |
display: inline-flex; | |
align-items: center; | |
gap: 0.8rem; | |
padding: 1rem 2rem; | |
background: rgba(255, 255, 255, 0.1); | |
color: white; | |
border: none; | |
border-radius: var(--border-radius); | |
text-decoration: none; | |
transition: all 0.3s ease; | |
} | |
.btn-secondary:hover { | |
background: rgba(255, 255, 255, 0.2); | |
transform: translateY(-2px); | |
} | |
@media (max-width: 768px) { | |
.welcome-header h1 { | |
font-size: 2.5rem; | |
} | |
.tagline { | |
font-size: 1.2rem; | |
} | |
.auth-buttons { | |
flex-direction: column; | |
} | |
} | |
.app-main { | |
flex: 1; | |
padding: 30px; | |
background: linear-gradient(135deg, #1e1e2f, #2a2a40); | |
margin-left: 280px; | |
min-height: 100vh; | |
} | |
@media (max-width: 992px) { | |
.app-sidebar { | |
transform: translateX(-100%); | |
} | |
.app-main { | |
margin-left: 0; | |
} | |
.app-container.sidebar-open .app-sidebar { | |
transform: translateX(0); | |
} | |
} | |
.mobile-menu-toggle { | |
display: none; | |
position: fixed; | |
top: 20px; | |
left: 20px; | |
z-index: 1100; | |
padding: 10px 15px; | |
background: rgba(74, 74, 232, 0.9); | |
color: white; | |
border: none; | |
border-radius: 8px; | |
font-size: 1.1rem; | |
} | |
@media (max-width: 992px) { | |
.mobile-menu-toggle { | |
display: block; | |
} | |
} | |
.flash-messages { | |
position: fixed; | |
top: 20px; | |
right: 20px; | |
z-index: 1000; | |
max-width: 400px; | |
} | |
.flash-message { | |
padding: 15px 20px; | |
margin-bottom: 10px; | |
border-radius: var(--border-radius); | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
animation: slideIn 0.3s ease-out; | |
box-shadow: var(--box-shadow); | |
} | |
.flash-success { | |
background: var(--success-color); | |
color: white; | |
} | |
.flash-error { | |
background: var(--danger-color); | |
color: white; | |
} | |
.flash-info { | |
background: var(--info-color); | |
color: white; | |
} | |
.flash-warning { | |
background: var(--warning-color); | |
color: #333; | |
} | |
.flash-close { | |
background: none; | |
border: none; | |
color: inherit; | |
cursor: pointer; | |
margin-left: 10px; | |
} | |
@keyframes slideIn { | |
from { transform: translateX(100%); opacity: 0; } | |
to { transform: translateX(0); opacity: 1; } | |
} | |
/* Стили для чата */ | |
@keyframes pulse { | |
0% { transform: scale(1); } | |
50% { transform: scale(1.1); } | |
100% { transform: scale(1); } | |
} | |
.recording { | |
animation: pulse 1.2s infinite ease-in-out ; | |
box-shadow: 0 0 20px rgba(214, 48, 49, 0.6) ; | |
} | |
.chat-container { | |
display: flex; | |
height: calc(100vh - 60px); | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
overflow: hidden; | |
box-shadow: var(--box-shadow); | |
} | |
.chat-sidebar { | |
width: 300px; | |
background: var(--dark-bg); | |
padding: 20px; | |
border-right: 1px solid rgba(255, 255, 255, 0.1); | |
display: flex; | |
flex-direction: column; | |
} | |
.new-chat-btn { | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
gap: 8px; | |
width: 100%; | |
padding: 12px; | |
margin-bottom: 20px; | |
background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)); | |
color: white; | |
border: none; | |
border-radius: var(--border-radius); | |
cursor: pointer; | |
font-size: 0.95rem; | |
transition: all 0.3s ease; | |
} | |
.new-chat-btn:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 4px 12px rgba(74, 74, 232, 0.3); | |
} | |
.chat-list { | |
flex: 1; | |
overflow-y: auto; | |
padding-right: 5px; | |
} | |
.chat-item { | |
padding: 12px; | |
margin-bottom: 8px; | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
cursor: pointer; | |
transition: all 0.3s ease; | |
display: flex; | |
align-items: center; | |
gap: 12px; | |
} | |
.chat-item:hover { | |
background: rgba(255, 255, 255, 0.1); | |
} | |
.chat-item.active { | |
background: rgba(74, 74, 232, 0.2); | |
border-left: 3px solid var(--primary-color); | |
} | |
.chat-item i { | |
color: var(--primary-color); | |
font-size: 1.1rem; | |
} | |
.chat-item-content { | |
flex: 1; | |
overflow: hidden; | |
} | |
.chat-title { | |
display: block; | |
font-weight: 500; | |
white-space: nowrap; | |
overflow: hidden; | |
text-overflow: ellipsis; | |
color: white; | |
} | |
.chat-date { | |
display: block; | |
font-size: 0.75rem; | |
color: rgba(255, 255, 255, 0.6); | |
} | |
.chat-main { | |
flex: 1; | |
display: flex; | |
flex-direction: column; | |
} | |
.chat-header { | |
padding: 20px; | |
border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.chat-header h3 { | |
font-size: 1.3rem; | |
color: var(--light-text); | |
} | |
.chat-box { | |
flex: 1; | |
padding: 20px; | |
overflow-y: auto; | |
background: rgba(0, 0, 0, 0.2); | |
} | |
.welcome-message { | |
text-align: center; | |
padding: 40px 20px; | |
max-width: 500px; | |
margin: 0 auto; | |
} | |
.welcome-icon { | |
width: 80px; | |
height: 80px; | |
margin: 0 auto 20px; | |
background: rgba(74, 74, 232, 0.2); | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
font-size: 2.5rem; | |
color: var(--primary-color); | |
} | |
.welcome-message h4 { | |
color: rgba(255, 255, 255, 0.7); | |
margin-bottom: 10px; | |
font-size: 1.5rem; | |
} | |
.welcome-message p { | |
color: rgba(255, 255, 255, 0.7); | |
margin-bottom: 20px; | |
} | |
.message { | |
max-width: 70%; | |
padding: 12px 16px; | |
margin-bottom: 12px; | |
border-radius: var(--border-radius); | |
position: relative; | |
animation: fadeIn 0.3s ease-out; | |
} | |
.user-message { | |
background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)); | |
color: white; | |
margin-left: auto; | |
border-bottom-right-radius: 0; | |
} | |
.bot-message { | |
background: rgba(255, 255, 255, 0.1); | |
color: var(--light-text); | |
margin-right: auto; | |
border-bottom-left-radius: 0; | |
} | |
@keyframes fadeIn { | |
from { opacity: 0; transform: translateY(10px); } | |
to { opacity: 1; transform: translateY(0); } | |
} | |
.chat-controls { | |
padding: 20px; | |
border-top: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.input-group { | |
display: flex; | |
gap: 10px; | |
margin-bottom: 15px; | |
} | |
.chat-input { | |
flex: 1; | |
padding: 12px 16px; | |
background: rgba(255, 255, 255, 0.1); | |
border: 1px solid rgba(255, 255, 255, 0.1); | |
border-radius: var(--border-radius); | |
color: var(--light-text); | |
font-size: 0.95rem; | |
transition: all 0.3s ease; | |
} | |
.chat-input:focus { | |
outline: none; | |
border-color: var(--primary-color); | |
background: rgba(255, 255, 255, 0.15); | |
} | |
.send-btn { | |
width: 50px; | |
background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)); | |
color: white; | |
border: none; | |
border-radius: var(--border-radius); | |
cursor: pointer; | |
transition: all 0.3s ease; | |
} | |
.send-btn:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 4px 12px rgba(74, 74, 232, 0.3); | |
} | |
.audio-controls { | |
display: flex; | |
gap: 15px; | |
} | |
.file-upload { | |
flex: 1; | |
position: relative; | |
} | |
.file-upload-btn { | |
display: block; | |
width: 100%; | |
padding: 12px; | |
background: rgba(255, 255, 255, 0.1); | |
color: var(--light-text); | |
border: 1px dashed rgba(255, 255, 255, 0.3); | |
border-radius: var(--border-radius); | |
text-align: center; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
} | |
.file-upload-btn:hover { | |
background: rgba(255, 255, 255, 0.15); | |
border-color: var(--primary-color); | |
} | |
.file-upload-btn i { | |
margin-right: 8px; | |
} | |
input[type="file"] { | |
display: none; | |
} | |
.file-info { | |
display: none; | |
align-items: center; | |
justify-content: space-between; | |
padding: 10px 15px; | |
margin-top: 8px; | |
background: rgba(0, 184, 148, 0.1); | |
border-radius: var(--border-radius); | |
color: var(--success-color); | |
} | |
.clear-file-btn { | |
background: none; | |
border: none; | |
color: var(--success-color); | |
cursor: pointer; | |
} | |
@keyframes pulse { | |
0% { transform: scale(1); } | |
50% { transform: scale(1.1); } | |
100% { transform: scale(1); } | |
} | |
.record-btn.recording { | |
animation: pulse 1.2s infinite; | |
box-shadow: 0 0 20px rgba(214, 48, 49, 0.5); | |
} | |
.record-controls { | |
display: flex; | |
gap: 10px; | |
} | |
.record-btn, .stop-btn { | |
width: 50px; | |
height: 50px; | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
border: none; | |
cursor: pointer; | |
transition: all 0.3s ease, animation 0.3s ease; | |
} | |
.record-btn { | |
background: linear-gradient(135deg, var(--danger-color), #c0392b); | |
color: white; | |
} | |
.stop-btn { | |
background: rgba(255, 255, 255, 0.1); | |
color: var(--light-text); | |
} | |
.record-btn:hover { | |
transform: scale(1.05); | |
box-shadow: 0 4px 12px rgba(214, 48, 49, 0.3); | |
} | |
/* Стили для профиля */ | |
.profile-container { | |
max-width: 1200px; | |
margin: 0 auto; | |
padding: 30px; | |
} | |
.profile-header { | |
display: flex; | |
flex-direction: column; | |
gap: 30px; | |
margin-bottom: 40px; | |
} | |
.user-info { | |
display: flex; | |
align-items: center; | |
gap: 20px; | |
} | |
.user-avatar { | |
width: 80px; | |
height: 80px; | |
background: rgba(74, 74, 232, 0.2); | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
font-size: 2.5rem; | |
color: var(--primary-color); | |
} | |
.user-details h2 { | |
font-size: 1.8rem; | |
margin-bottom: 5px; | |
color: white; | |
} | |
.user-details p { | |
color: rgba(255, 255, 255, 0.7); | |
font-size: 0.95rem; | |
} | |
.stats-cards { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); | |
gap: 20px; | |
} | |
.stat-card { | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
padding: 20px; | |
display: flex; | |
align-items: center; | |
gap: 15px; | |
transition: all 0.3s ease; | |
} | |
.stat-card:hover { | |
transform: translateY(-5px); | |
box-shadow: var(--box-shadow); | |
} | |
.stat-icon { | |
width: 50px; | |
height: 50px; | |
background: rgba(74, 74, 232, 0.2); | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
font-size: 1.5rem; | |
color: var(--primary-color); | |
} | |
.stat-content h3 { | |
font-size: 0.95rem; | |
color: rgba(255, 255, 255, 0.7); | |
margin-bottom: 5px; | |
} | |
.stat-content p { | |
color: white; | |
} | |
.stat-value { | |
font-size: 1.5rem; | |
font-weight: 600; | |
} | |
.section-title { | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
margin-bottom: 20px; | |
font-size: 1.3rem; | |
color: var(--light-text); | |
} | |
.section-title i { | |
color: var(--primary-color); | |
} | |
.reports-list { | |
display: grid; | |
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); | |
gap: 20px; | |
} | |
.report-card { | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
overflow: hidden; | |
transition: all 0.3s ease; | |
} | |
.report-card:hover { | |
transform: translateY(-5px); | |
box-shadow: var(--box-shadow); | |
} | |
.report-header { | |
padding: 15px; | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
background: rgba(0, 0, 0, 0.2); | |
border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.report-date { | |
font-size: 0.8rem; | |
color: rgba(255, 255, 255, 0.6); | |
} | |
.report-emotion { | |
padding: 5px 10px; | |
border-radius: 20px; | |
font-size: 0.8rem; | |
font-weight: 500; | |
} | |
.report-emotion.joy, .report-emotion.happy { | |
background: rgba(0, 184, 148, 0.2); | |
color: var(--success-color); | |
} | |
.report-emotion.anger, .report-emotion.angry, .report-emotion.sadness, .report-emotion.sad { | |
background: rgba(214, 48, 49, 0.2); | |
color: var(--danger-color); | |
} | |
.report-emotion.neutral { | |
background: rgba(253, 203, 110, 0.2); | |
color: var(--warning-color); | |
} | |
.report-content { | |
padding: 15px; | |
} | |
.report-content p { | |
font-size: 0.95rem; | |
line-height: 1.6; | |
color: rgba(255, 255, 255, 0.8); | |
} | |
.report-footer { | |
padding: 15px; | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
background: rgba(0, 0, 0, 0.1); | |
border-top: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.confidence-meter { | |
flex: 1; | |
height: 6px; | |
background: rgba(255, 255, 255, 0.1); | |
border-radius: 3px; | |
overflow: hidden; | |
} | |
.confidence-fill { | |
height: 100%; | |
background: linear-gradient(90deg, var(--primary-color), var(--primary-dark)); | |
border-radius: 3px; | |
} | |
.confidence-value { | |
font-size: 0.8rem; | |
font-weight: 500; | |
color: var(--primary-color); | |
} | |
.empty-state { | |
text-align: center; | |
padding: 60px 20px; | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
} | |
.empty-state i { | |
font-size: 3rem; | |
color: var(--primary-color); | |
margin-bottom: 20px; | |
} | |
.empty-state h4 { | |
font-size: 1.3rem; | |
margin-bottom: 10px; | |
} | |
.empty-state p { | |
color: rgba(255, 255, 255, 0.6); | |
margin-bottom: 20px; | |
} | |
.btn-primary { | |
display: inline-flex; | |
align-items: center; | |
gap: 8px; | |
padding: 12px 20px; | |
background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)); | |
color: white; | |
border: none; | |
border-radius: var(--border-radius); | |
text-decoration: none; | |
font-weight: 500; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
} | |
.btn-primary:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 4px 12px rgba(74, 74, 232, 0.3); | |
} | |
/* Адаптивность */ | |
@media (max-width: 992px) { | |
.app-sidebar { | |
width: 80px; | |
padding: 15px 0; | |
} | |
.sidebar-header h2 span, | |
.nav-item span, | |
.user-info span, | |
.auth-links { | |
display: none; | |
} | |
.sidebar-header h2 { | |
justify-content: center; | |
} | |
.nav-item { | |
justify-content: center; | |
padding: 15px 0; | |
} | |
.logout-btn { | |
padding: 15px 0; | |
border-radius: 0; | |
} | |
.chat-sidebar { | |
width: 250px; | |
} | |
} | |
@media (max-width: 768px) { | |
.chat-container { | |
flex-direction: column; | |
height: auto; | |
} | |
.chat-sidebar { | |
width: 100%; | |
border-right: none; | |
border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.stats-cards { | |
grid-template-columns: 1fr; | |
} | |
} | |
@media (max-width: 576px) { | |
.app-main { | |
padding: 15px; | |
} | |
.audio-controls { | |
flex-direction: column; | |
} | |
.record-controls { | |
justify-content: center; | |
} | |
} | |
.delete-chat-btn { | |
background: none; | |
border: none; | |
color: #999; | |
cursor: pointer; | |
padding: 5px; | |
margin-left: auto; | |
opacity: 0; | |
transition: opacity 0.2s; | |
} | |
.chat-item:hover .delete-chat-btn { | |
opacity: 1; | |
} | |
.delete-chat-btn:hover { | |
color: #ff4444; | |
} | |
.chat-import-section { | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
padding: 20px; | |
margin-bottom: 30px; | |
border: 1px dashed rgba(255, 255, 255, 0.1); | |
transition: all 0.3s ease; | |
} | |
.chat-import-section:hover { | |
border-color: var(--primary-color); | |
background: rgba(74, 74, 232, 0.05); | |
} | |
.import-box { | |
display: flex; | |
flex-direction: column; | |
gap: 15px; | |
margin-top: 15px; | |
} | |
.import-chat-btn { | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
gap: 10px; | |
padding: 12px; | |
background: linear-gradient(135deg, var(--secondary-color), #5d4ae8); | |
color: white; | |
border: none; | |
border-radius: var(--border-radius); | |
cursor: pointer; | |
transition: all 0.3s ease; | |
} | |
.import-chat-btn:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 4px 12px rgba(108, 92, 231, 0.3); | |
} | |
.hint { | |
font-size: 0.85rem; | |
color: rgba(255, 255, 255, 0.6); | |
text-align: center; | |
margin-top: 10px; | |
} | |
/* Стили для графиков аналитики */ | |
.analytics-section { | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
padding: 25px; | |
margin-bottom: 30px; | |
} | |
.chart-container { | |
position: relative; | |
height: 300px; | |
margin: 20px 0; | |
} | |
.emotion-stats { | |
display: grid; | |
grid-template-columns: repeat(3, 1fr); | |
grid-auto-rows: minmax(min-content, max-content); | |
gap: 15px; | |
margin-top: 25px; | |
} | |
.emotion-stat { | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
padding: 15px; | |
transition: all 0.3s ease; | |
} | |
.emotion-stat:hover { | |
transform: translateY(-3px); | |
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); | |
} | |
.emotion-label { | |
display: flex; | |
align-items: center; | |
gap: 8px; | |
font-weight: 500; | |
margin-bottom: 10px; | |
font-size: 0.95rem; | |
} | |
.emotion-count { | |
font-size: 0.85rem; | |
color: rgba(255, 255, 255, 0.7); | |
margin-bottom: 8px; | |
} | |
.confidence-bar { | |
height: 6px; | |
background: rgba(255, 255, 255, 0.1); | |
border-radius: 3px; | |
margin: 10px 0; | |
overflow: hidden; | |
} | |
.confidence-fill { | |
height: 100%; | |
border-radius: 3px; | |
} | |
.confidence-value { | |
font-size: 0.8rem; | |
text-align: right; | |
color: rgba(255, 255, 255, 0.7); | |
} | |
/* Цвета для разных эмоций */ | |
.emotion-stat[data-emotion="joy"] .confidence-fill, | |
.emotion-stat[data-emotion="happy"] .confidence-fill { | |
background: linear-gradient(90deg, #00b894, #00cec9); | |
} | |
.emotion-stat[data-emotion="sadness"] .confidence-fill, | |
.emotion-stat[data-emotion="sad"] .confidence-fill { | |
background: linear-gradient(90deg, #0984e3, #6c5ce7); | |
} | |
.emotion-stat[data-emotion="anger"] .confidence-fill, | |
.emotion-stat[data-emotion="angry"] .confidence-fill { | |
background: linear-gradient(90deg, #d63031, #e17055); | |
} | |
.emotion-stat[data-emotion="neutral"] .confidence-fill { | |
background: linear-gradient(90deg, #636e72, #b2bec3); | |
} | |
.emotion-stat[data-emotion="surprise"] .confidence-fill { | |
background: linear-gradient(90deg, #fdcb6e, #e17055); | |
} | |
/* Стили для боковой панели чатов */ | |
.import-chat-sidebar { | |
padding: 15px; | |
margin: 10px 0; | |
background: rgba(74, 74, 232, 0.1); | |
border-radius: var(--border-radius); | |
text-align: center; | |
} | |
.import-chat-sidebar label { | |
display: block; | |
padding: 10px; | |
background: rgba(255, 255, 255, 0.1); | |
border-radius: var(--border-radius); | |
cursor: pointer; | |
transition: all 0.3s ease; | |
font-size: 0.9rem; | |
} | |
.import-chat-sidebar label:hover { | |
background: rgba(74, 74, 232, 0.2); | |
} | |
/* Адаптивные стили */ | |
@media (max-width: 768px) { | |
.emotion-stats { | |
grid-template-columns: 1fr; | |
} | |
.chart-container { | |
height: 250px; | |
} | |
} | |
@media (max-width: 576px) { | |
.analytics-section, | |
.chat-import-section { | |
padding: 15px; | |
} | |
.import-chat-btn { | |
padding: 10px; | |
font-size: 0.9rem; | |
} | |
} | |
/* Telegram Analysis Styles */ | |
.telegram-analysis-section .section-title, | |
.telegram-analysis-section h4 { | |
color: var(--light-text) ; | |
border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
padding-bottom: 10px; | |
margin-bottom: 20px; | |
} | |
.telegram-analysis-section { | |
margin-top: 40px; | |
padding: 25px; | |
background: rgba(255, 255, 255, 0.03); | |
border-radius: var(--border-radius); | |
border: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
#emotion-distribution { | |
background: rgba(255,255,255,0.05); | |
border-radius: var(--border-radius); | |
padding: 15px; | |
margin-top: 15px; | |
max-height: 400px; /* Фиксированная высота */ | |
overflow-y: auto; /* Скролл при переполнении */ | |
} | |
.emotion-stat { | |
background: rgba(255,255,255,0.03); | |
border-radius: 8px; | |
padding: 12px; | |
margin: 8px 0; | |
border-left: 4px solid transparent; | |
transition: all 0.3s ease; | |
display: flex; | |
flex-direction: column; | |
gap: 8px; | |
} | |
.emotion-label { | |
display: flex; | |
align-items: center; | |
gap: 8px; | |
font-size: 0.95rem; | |
color: var(--light-text); | |
} | |
.emotion-label i { | |
font-size: 1.2rem ; /* Увеличиваем иконки */ | |
width: 25px; /* Фиксированная ширина */ | |
color: inherit ; /* Цвет из JS */ | |
} | |
.confidence-bar { | |
height: 6px; | |
background: rgba(255,255,255,0.1); | |
border-radius: 3px; | |
} | |
.confidence-value { | |
text-align: right; | |
font-size: 0.85rem; | |
color: rgba(255,255,255,0.8); | |
} | |
.chart-header { | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
margin-bottom: 20px; | |
flex-wrap: wrap; | |
gap: 15px; | |
} | |
.time-filter { | |
display: flex; | |
gap: 8px; | |
flex-wrap: wrap; | |
} | |
.time-btn { | |
padding: 6px 12px; | |
background: rgba(255, 255, 255, 0.05); | |
border: 1px solid rgba(255, 255, 255, 0.1); | |
border-radius: 20px; | |
color: rgba(255, 255, 255, 0.7); | |
cursor: pointer; | |
font-size: 0.85rem; | |
transition: all 0.3s ease; | |
} | |
.time-btn:hover { | |
background: rgba(255, 255, 255, 0.1); | |
} | |
.time-btn.active { | |
background: rgba(74, 74, 232, 0.3); | |
border-color: var(--primary-color); | |
color: white; | |
} | |
.chart-row { | |
gap: 20px; | |
margin-top: 25px; | |
} | |
.chart-col { | |
background: rgba(255, 255, 255, 0.03); | |
padding: 20px; | |
border-radius: var(--border-radius); | |
border: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.chart-col h4 { | |
margin-bottom: 15px; | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
} | |
@media (max-width: 768px) { | |
.chart-row { | |
flex-direction: column; | |
} | |
.chart-col { | |
width: 100%; | |
} | |
} | |
.clear-file-btn { | |
background: none; | |
border: none; | |
color: rgba(255, 255, 255, 0.6); | |
cursor: pointer; | |
padding: 0 5px; | |
} | |
.clear-file-btn:hover { | |
color: var(--danger-color); | |
} | |
#emotion-timeline { | |
height: 400px; | |
margin: 20px 0; | |
background: rgba(0, 0, 0, 0.2); | |
border-radius: var(--border-radius); | |
} | |
.emotion-stat { | |
background: rgba(255, 255, 255, 0.05); | |
padding: 15px; | |
margin: 10px 0; | |
border-radius: var(--border-radius); | |
transition: transform 0.3s ease; | |
} | |
.emotion-stat:hover { | |
transform: translateY(-3px); | |
} | |
.emotion-label { | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
font-size: 0.95rem; | |
margin-bottom: 8px; | |
} | |
.confidence-bar { | |
height: 6px; | |
background: rgba(255, 255, 255, 0.1); | |
border-radius: 3px; | |
margin: 10px 0; | |
} | |
.confidence-fill { | |
height: 100%; | |
border-radius: 3px; | |
transition: width 0.5s ease; | |
} | |
.file-info { | |
display: flex; | |
align-items: center; | |
gap: 8px; | |
padding: 8px; | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
} | |
#selected-file-name { | |
font-size: 0.9rem; | |
max-width: 250px; | |
overflow: hidden; | |
text-overflow: ellipsis; | |
white-space: nowrap; | |
} | |
.message-preview-panel { | |
position: fixed; | |
right: 20px; | |
top: 100px; | |
width: 300px; | |
background: #1e1e2f; | |
padding: 15px; | |
border-radius: 8px; | |
color: white; | |
z-index: 100; | |
box-shadow: 0 0 10px rgba(0,0,0,0.5); | |
} | |
.analysis-summary { | |
margin-top: 20px; | |
padding: 15px; | |
background: #2c2c3e; | |
border-radius: 8px; | |
} | |
.user-filter { | |
display: flex; | |
align-items: center; | |
gap: 10px; | |
margin-bottom: 10px; | |
} | |
/* Auth Styles */ | |
.auth-container { | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
min-height: 100vh; | |
background: linear-gradient(135deg, var(--darker-bg), var(--dark-bg)); | |
padding: 20px; | |
} | |
.auth-card { | |
width: 100%; | |
max-width: 450px; | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
overflow: hidden; | |
box-shadow: var(--box-shadow); | |
backdrop-filter: blur(10px); | |
border: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.auth-header { | |
padding: 25px; | |
background: rgba(74, 74, 232, 0.1); | |
border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
text-align: center; | |
} | |
.auth-header h3 { | |
color: var(--light-text); | |
font-size: 1.5rem; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
gap: 10px; | |
} | |
.auth-body { | |
padding: 25px; | |
} | |
.form-group { | |
margin-bottom: 20px; | |
} | |
.form-label { | |
display: block; | |
margin-bottom: 8px; | |
color: rgba(255, 255, 255, 0.8); | |
font-size: 0.95rem; | |
display: flex; | |
align-items: center; | |
gap: 8px; | |
} | |
.form-input { | |
width: 100%; | |
padding: 12px 15px; | |
background: rgba(255, 255, 255, 0.1); | |
border: 1px solid rgba(255, 255, 255, 0.1); | |
border-radius: var(--border-radius); | |
color: var(--light-text); | |
font-size: 0.95rem; | |
transition: all 0.3s ease; | |
} | |
.form-input:focus { | |
outline: none; | |
border-color: var(--primary-color); | |
background: rgba(255, 255, 255, 0.15); | |
box-shadow: 0 0 0 3px rgba(74, 74, 232, 0.2); | |
} | |
.form-error { | |
color: var(--danger-color); | |
font-size: 0.85rem; | |
margin-top: 5px; | |
} | |
.btn-auth { | |
width: 100%; | |
padding: 14px; | |
background: linear-gradient(135deg, var(--primary-color), var(--primary-dark)); | |
color: white; | |
border: none; | |
border-radius: var(--border-radius); | |
font-size: 1rem; | |
font-weight: 500; | |
cursor: pointer; | |
transition: all 0.3s ease; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
gap: 10px; | |
} | |
.btn-auth:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 4px 15px rgba(74, 74, 232, 0.4); | |
} | |
.auth-footer { | |
text-align: center; | |
margin-top: 20px; | |
color: rgba(255, 255, 255, 0.7); | |
font-size: 0.95rem; | |
} | |
.auth-link { | |
color: var(--primary-color); | |
text-decoration: none; | |
transition: all 0.3s ease; | |
} | |
.auth-link:hover { | |
color: var(--secondary-color); | |
text-decoration: underline; | |
} | |
/* Responsive */ | |
@media (max-width: 576px) { | |
.auth-card { | |
border-radius: 0; | |
border: none; | |
} | |
.auth-container { | |
padding: 0; | |
align-items: flex-start; | |
} | |
} | |
.analysis-result-card { | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
padding: 15px; | |
margin-top: 10px; | |
border-left: 4px solid transparent; | |
transition: transform 0.3s ease; | |
} | |
.analysis-result-card:hover { | |
transform: translateY(-5px); | |
} | |
.analysis-result-card.joy { | |
border-color: var(--success-color); | |
} | |
.analysis-result-card.anger { | |
border-color: var(--danger-color); | |
} | |
.analysis-result-card.sadness { | |
border-color: var(--info-color); | |
} | |
.analysis-result-card.neutral { | |
border-color: var(--warning-color); | |
} | |
.analysis-result-card.fear { | |
border-color: #a29bfe; | |
} | |
.analysis-header { | |
display: flex; | |
justify-content: space-between; | |
align-items: center; | |
margin-bottom: 10px; | |
} | |
.emotion-label { | |
font-size: 1.1rem; | |
font-weight: 600; | |
} | |
.confidence-bar-container { | |
height: 8px; | |
background: rgba(255, 255, 255, 0.1); | |
border-radius: 4px; | |
overflow: hidden; | |
} | |
.confidence-bar { | |
height: 100%; | |
background: rgba(255, 255, 255, 0.1); | |
border-radius: 4px; | |
overflow: hidden; | |
} | |
.confidence-fill { | |
height: 100%; | |
transition: width 0.5s ease; | |
} | |
.confidence-fill[joy] { | |
background: linear-gradient(90deg, #00b894, #00cec9); | |
} | |
.confidence-fill[anger] { | |
background: linear-gradient(90deg, #d63031, #e17055); | |
} | |
.confidence-fill[sadness] { | |
background: linear-gradient(90deg, #0984e3, #6c5ce7); | |
} | |
.confidence-fill[neutral] { | |
background: linear-gradient(90deg, #fdcb6e, #ffeaa7); | |
} | |
.confidence-fill[fear] { | |
background: linear-gradient(90deg, #a29bfe, #6c5ce7); | |
} | |
.confidence-percent { | |
margin-top: 8px; | |
font-size: 0.85rem; | |
color: rgba(255, 255, 255, 0.7); | |
} | |
/* Admin Styles */ | |
.admin-container { | |
max-width: 1200px; | |
margin: 0 auto; | |
padding: 2rem; | |
} | |
.admin-stats { | |
display: grid; | |
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | |
gap: 1.5rem; | |
margin: 2rem 0; | |
} | |
.stat-card { | |
background: rgba(255, 255, 255, 0.05); | |
border-radius: var(--border-radius); | |
padding: 1.5rem; | |
display: flex; | |
align-items: center; | |
gap: 1rem; | |
transition: transform 0.3s ease; | |
} | |
.stat-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); | |
} | |
.stat-icon { | |
width: 50px; | |
height: 50px; | |
background: rgba(74, 74, 232, 0.2); | |
border-radius: 50%; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
font-size: 1.5rem; | |
color: var(--primary-color); | |
} | |
.stat-content h3 { | |
font-size: 1rem; | |
color: rgba(255, 255, 255, 0.7); | |
margin-bottom: 0.5rem; | |
} | |
.stat-value { | |
font-size: 1.8rem; | |
font-weight: 600; | |
color: white; | |
} | |
.stat-change { | |
font-size: 0.8rem; | |
color: var(--success-color); | |
} | |
.btn-admin { | |
display: inline-flex; | |
align-items: center; | |
gap: 0.5rem; | |
padding: 1rem 1.5rem; | |
background: rgba(74, 74, 232, 0.2); | |
border: 1px solid var(--primary-color); | |
border-radius: var(--border-radius); | |
color: white; | |
text-decoration: none; | |
margin-right: 1rem; | |
margin-bottom: 1rem; | |
transition: all 0.3s ease; | |
} | |
.btn-admin:hover { | |
background: rgba(74, 74, 232, 0.4); | |
transform: translateY(-2px); | |
} | |
/* Таблицы в админке */ | |
.admin-table { | |
width: 100%; | |
border-collapse: collapse; | |
margin: 1.5rem 0; | |
} | |
.admin-table th, .admin-table td { | |
padding: 1rem; | |
text-align: left; | |
border-bottom: 1px solid rgba(255, 255, 255, 0.1); | |
} | |
.admin-table th { | |
background: rgba(74, 74, 232, 0.2); | |
color: var(--primary-color); | |
} | |
.admin-table tr:hover { | |
background: rgba(255, 255, 255, 0.03); | |
} | |
.admin-actions { | |
margin: 2rem 0; | |
} |