@@ -0,0 +1,293 @@
/* Специальные стили для максимального комфорта в ночное время */
/* Снижение напряжения глаз */
[ data-theme = "dark" ] {
/* Дополнительные переменные для ночного режима */
--night-comfort-bg : #1c1c28 ;
--night-comfort-card : #242430 ;
--night-comfort-text : #e0e0e6 ;
--night-comfort-border : #35353f ;
--warm-white : #f5f5dc ;
--soft-purple : #8b5cf6 ;
--gentle-glow : rgba ( 139 , 92 , 246 , 0.08 ) ;
}
/* Фильтр синего света для комфортного чтения */
[ data-theme = "dark" ] body {
filter : hue-rotate ( -10 deg ) brightness ( 0.95 ) contrast ( 1.05 ) ;
}
/* Мягкие переходы для всех интерактивных элементов */
[ data-theme = "dark" ] button ,
[ data-theme = "dark" ] . btn ,
[ data-theme = "dark" ] a ,
[ data-theme = "dark" ] . nav-link ,
[ data-theme = "dark" ] . card ,
[ data-theme = "dark" ] . form-control ,
[ data-theme = "dark" ] . dropdown-item {
transition : all 0.3 s cubic-bezier ( 0.25 , 0.46 , 0.45 , 0.94 ) ;
}
/* Улучшенная читаемость текста */
[ data-theme = "dark" ] body ,
[ data-theme = "dark" ] . card ,
[ data-theme = "dark" ] . modal-content {
text-rendering : optimizeLegibility ;
-webkit- font-smoothing : antialiased ;
-moz- osx-font-smoothing : grayscale ;
}
/* Мягкие тени вместо резких границ */
[ data-theme = "dark" ] . card {
box-shadow :
0 4 px 20 px rgba ( 0 , 0 , 0 , 0.1 ) ,
0 1 px 3 px rgba ( 0 , 0 , 0 , 0.1 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.03 ) ;
border : 1 px solid rgba ( 139 , 92 , 246 , 0.1 ) ;
}
[ data-theme = "dark" ] . card : hover {
box-shadow :
0 8 px 30 px rgba ( 0 , 0 , 0 , 0.15 ) ,
0 2 px 6 px rgba ( 0 , 0 , 0 , 0.1 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.05 ) ,
0 0 20 px rgba ( 139 , 92 , 246 , 0.1 ) ;
}
/* Комфортные кнопки с мягким свечением */
[ data-theme = "dark" ] . btn-primary {
background : linear-gradient ( 135 deg , #7c3aed 0 % , #8b5cf6 50 % , #9333ea 100 % ) ;
border : none ;
box-shadow :
0 4 px 15 px rgba ( 124 , 58 , 237 , 0.25 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.1 ) ;
}
[ data-theme = "dark" ] . btn-primary : hover {
background : linear-gradient ( 135 deg , #8b5cf6 0 % , #9333ea 50 % , #a855f7 100 % ) ;
box-shadow :
0 6 px 20 px rgba ( 124 , 58 , 237 , 0.35 ) ,
0 0 25 px rgba ( 139 , 92 , 246 , 0.2 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.15 ) ;
transform : translateY ( -1 px ) ;
}
[ data-theme = "dark" ] . btn-primary : active {
transform : translateY ( 0 ) ;
box-shadow :
0 2 px 10 px rgba ( 124 , 58 , 237 , 0.3 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.05 ) ;
}
/* Успокаивающие формы ввода */
[ data-theme = "dark" ] . form-control ,
[ data-theme = "dark" ] . form-select {
background : linear-gradient ( 145 deg , #1c1c28 , #242430 ) ;
border : 1 px solid #35353f ;
box-shadow : inset 0 2 px 4 px rgba ( 0 , 0 , 0 , 0.1 ) ;
}
[ data-theme = "dark" ] . form-control : focus ,
[ data-theme = "dark" ] . form-select : focus {
background : linear-gradient ( 145 deg , #1c1c28 , #242430 ) ;
border-color : #8b5cf6 ;
box-shadow :
inset 0 2 px 4 px rgba ( 0 , 0 , 0 , 0.1 ) ,
0 0 0 3 px rgba ( 139 , 92 , 246 , 0.15 ) ,
0 0 20 px rgba ( 139 , 92 , 246 , 0.1 ) ;
}
/* Мягкие модальные окна */
[ data-theme = "dark" ] . modal-content {
background : linear-gradient ( 145 deg , #22222f , #2a2a3a ) ;
border : 1 px solid rgba ( 139 , 92 , 246 , 0.2 ) ;
box-shadow :
0 25 px 50 px rgba ( 0 , 0 , 0 , 0.3 ) ,
0 10 px 25 px rgba ( 0 , 0 , 0 , 0.2 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.05 ) ;
}
[ data-theme = "dark" ] . modal-backdrop {
background : linear-gradient ( 135 deg , rgba ( 26 , 26 , 35 , 0.8 ) , rgba ( 26 , 26 , 35 , 0.9 ) ) ;
-webkit- backdrop-filter : blur ( 8 px ) ;
backdrop-filter : blur ( 8 px ) ;
}
/* Навигация с мягким свечением */
[ data-theme = "dark" ] . navbar {
background : linear-gradient ( 145 deg , #22222f , #2a2a3a ) ;
border-bottom : 1 px solid rgba ( 139 , 92 , 246 , 0.1 ) ;
box-shadow : 0 2 px 20 px rgba ( 0 , 0 , 0 , 0.1 ) ;
-webkit- backdrop-filter : blur ( 10 px ) ;
backdrop-filter : blur ( 10 px ) ;
}
[ data-theme = "dark" ] . nav-link {
color : #b8b8c8 ;
transition : all 0.3 s ease ;
}
[ data-theme = "dark" ] . nav-link : hover {
color : #e8e8f0 ;
text-shadow : 0 0 10 px rgba ( 139 , 92 , 246 , 0.3 ) ;
}
[ data-theme = "dark" ] . nav-link . active {
color : #8b5cf6 ;
text-shadow : 0 0 15 px rgba ( 139 , 92 , 246 , 0.5 ) ;
}
/* Dropdown с улучшенной видимостью */
[ data-theme = "dark" ] . dropdown-menu {
background : linear-gradient ( 145 deg , #22222f , #2a2a3a ) ;
border : 1 px solid rgba ( 139 , 92 , 246 , 0.2 ) ;
box-shadow :
0 10 px 30 px rgba ( 0 , 0 , 0 , 0.2 ) ,
inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.05 ) ;
-webkit- backdrop-filter : blur ( 10 px ) ;
backdrop-filter : blur ( 10 px ) ;
}
[ data-theme = "dark" ] . dropdown-item {
color : #b8b8c8 ;
transition : all 0.2 s ease ;
}
[ data-theme = "dark" ] . dropdown-item : hover {
background : linear-gradient ( 135 deg , rgba ( 139 , 92 , 246 , 0.1 ) , rgba ( 139 , 92 , 246 , 0.05 ) ) ;
color : #e8e8f0 ;
border-radius : 6 px ;
}
/* Списки с мягкими границами */
[ data-theme = "dark" ] . list-group-item {
background : linear-gradient ( 145 deg , #22222f , #2a2a3a ) ;
border : 1 px solid #35353f ;
transition : all 0.3 s ease ;
}
[ data-theme = "dark" ] . list-group-item : hover {
background : linear-gradient ( 145 deg , #2a2a3a , #32323f ) ;
border-color : rgba ( 139 , 92 , 246 , 0.3 ) ;
box-shadow : 0 4 px 15 px rgba ( 139 , 92 , 246 , 0.1 ) ;
}
/* Вкладки с плавными переходами */
[ data-theme = "dark" ] . nav-tabs {
border-bottom : 2 px solid #35353f ;
}
[ data-theme = "dark" ] . nav-tabs . nav-link {
background : transparent ;
border : none ;
color : #9090a0 ;
border-radius : 8 px 8 px 0 0 ;
transition : all 0.3 s ease ;
}
[ data-theme = "dark" ] . nav-tabs . nav-link : hover {
background : linear-gradient ( 145 deg , rgba ( 139 , 92 , 246 , 0.05 ) , rgba ( 139 , 92 , 246 , 0.1 ) ) ;
color : #b8b8c8 ;
}
[ data-theme = "dark" ] . nav-tabs . nav-link . active {
background : linear-gradient ( 145 deg , #22222f , #2a2a3a ) ;
color : #8b5cf6 ;
border-bottom : 3 px solid #8b5cf6 ;
box-shadow : 0 -2 px 10 px rgba ( 139 , 92 , 246 , 0.2 ) ;
}
/* Алерты с мягкими цветами */
[ data-theme = "dark" ] . alert {
border : none ;
border-radius : 12 px ;
border-left-width : 4 px ;
border-left-style : solid ;
-webkit- backdrop-filter : blur ( 10 px ) ;
backdrop-filter : blur ( 10 px ) ;
}
/* Скроллбар с улучшенной видимостью */
[ data-theme = "dark" ] :: -webkit-scrollbar {
width : 14 px ;
height : 14 px ;
}
[ data-theme = "dark" ] :: -webkit-scrollbar-track {
background : #1c1c28 ;
border-radius : 8 px ;
margin : 2 px ;
}
[ data-theme = "dark" ] :: -webkit-scrollbar-thumb {
background : linear-gradient ( 135 deg , #7c3aed , #8b5cf6 ) ;
border-radius : 8 px ;
border : 2 px solid #1c1c28 ;
box-shadow : inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.1 ) ;
}
[ data-theme = "dark" ] :: -webkit-scrollbar-thumb : hover {
background : linear-gradient ( 135 deg , #8b5cf6 , #9333ea ) ;
box-shadow :
inset 0 1 px 0 rgba ( 255 , 255 , 255 , 0.15 ) ,
0 0 10 px rgba ( 139 , 92 , 246 , 0.3 ) ;
}
/* Медиа-запросы для адаптации к предпочтениям пользователя */
@ media ( prefers-reduced-motion : reduce ) {
[ data-theme = "dark" ] * {
transition : none !important ;
animation : none !important ;
}
}
@ media ( prefers-contrast : high ) {
[ data-theme = "dark" ] {
--text : #f0f0f6 ;
--text-secondary : #c8c8d0 ;
--border : #4a4a5a ;
}
}
@ media ( prefers-color-scheme : dark ) and ( prefers-reduced-transparency : reduce ) {
[ data-theme = "dark" ] . modal-backdrop ,
[ data-theme = "dark" ] . navbar ,
[ data-theme = "dark" ] . dropdown-menu {
-webkit- backdrop-filter : none ;
backdrop-filter : none ;
}
}
/* Специальные утилиты для ночного комфорта */
. night-text {
color : var ( - - night - comfort - text ) !important ;
line-height : 1.7 ;
}
. night-card {
background : var ( - - night - comfort - card ) !important ;
border : 1 px solid var ( - - night - comfort - border ) !important ;
border-radius : 12 px ;
}
. gentle-shadow {
box-shadow : 0 4 px 20 px rgba ( 0 , 0 , 0 , 0.08 ) !important ;
}
. soft-glow {
box-shadow : 0 0 20 px var ( - - gentle - glow ) !important ;
}
/* Анимации для плавности */
@ keyframes gentle-pulse {
0 % , 100 % {
opacity : 0.8 ;
}
50 % {
opacity : 1 ;
}
}
[ data-theme = "dark" ] . pulse-gentle {
animation : gentle-pulse 3 s ease-in-out infinite ;
}