Файл: public/assets/css/main.css
Строк: 610
body.modal-open {
padding-right: 0 !important;
}
.flag {
vertical-align: middle;
box-shadow: 0 0 0 1px rgba(128, 128, 128,
.3);
}
.section {
background: var(--bs-body-bg);
padding: 15px;
overflow: hidden;
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3)
!important;
}
.section-body {
padding: 0.25rem 0;
margin: 0.25rem
0;
overflow: hidden;
}
.section-header {
padding-bottom:
0.5rem;
}
.section-footer {
padding: 0.25rem 0;
margin: 0.25rem
0;
}
.section-message {
overflow-wrap: break-word;
margin-bottom:
1rem;
}
.section-message p {
margin-bottom:
0.1rem;
}
.section-message p:empty {
min-height:
1em;
}
.section-title {
font-size: 1.1rem;
font-weight: 600;
z-index: 2;
}
.section-form {
background: var(--base-bg);
padding:
15px;
--bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.3)
!important;
}
.section-media {
margin-top: 1.25rem;
margin-bottom:
1.25rem;
}
.avatar-default {
height: 64px;
width: 64px;
font-size: 42px;
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: bold;
text-decoration: none;
color: #fff;
}
.avatar-mini > .avatar-default {
height: 32px;
width: 32px;
font-size: 21px;
}
.avatar-micro > .avatar-default {
height: 20px;
width: 20px;
font-size: 14px;
}
.avatar-guest {
background-color: #6aaab6;
line-height: 64px;
}
@media (max-width:
768px) {
.avatar-guest {
line-height: 48px;
}
}
.user-avatar {
width: 64px;
height: 64px;
float: left;
margin-right: 14px;
}
.user-status {
width: 18px;
height: 18px;
position: relative;
border-radius: 50%;
z-index: 1;
border:
2px solid #fff;
left: 44px;
bottom: 18px;
}
@media (max-width:
768px) {
.section, .section-form {
margin: 0 -15px;
}
.user-avatar {
width: 48px;
height: 48px;
margin-right: 10px;
}
.user-status {
width: 14px;
height: 14px;
left: 32px;
bottom: 14px;
}
.avatar-default {
height: 48px;
width: 48px;
font-size: 32px;
}
.section-user {
min-height: 48px;
}
}
.cursor-pointer {
cursor: pointer;
}
textarea.form-control {
resize: vertical;
}
.media-file {
max-width: 600px;
margin-bottom:
1rem;
}
.media-file img,
.media-file video {
max-height:
450px;
}
.is-invalid .form-control,
.is-invalid .form-select,
.is-invalid
.input-group-text {
border-color:
var(--bs-form-invalid-border-color);
}
.is-invalid
.form-control:focus,
.is-invalid .form-select:focus {
border-color:
var(--bs-form-invalid-border-color);
box-shadow: 0 0 0 0.2rem rgba(220,
53, 69, 0.25);
}
.is-invalid .invalid-feedback {
display:
block;
}
.is-valid .form-control,
.is-valid .form-select,
.is-valid
.input-group-text {
border-color:
var(--bs-form-valid-border-color);
}
.is-valid
.form-control:focus,
.is-valid .form-select:focus {
border-color:
var(--bs-form-valid-border-color);
box-shadow: 0 0 0 0.2rem rgba(40,
167, 69, 0.25);
}
.section-action {
display: flex;
align-items:
center;
justify-content: end;
gap: 3px;
}
.post-rating-up.active
{
color: #fff;
background-color: #78c062;
display:
inline-block;
border-radius: 20px;
}
.post-rating-down.active {
color: #fff;
background-color: #f75c48;
display: inline-block;
border-radius: 20px;
}
.scrollup {
position: fixed;
bottom: 20px;
right: 20px;
display: block;
cursor: pointer;
opacity: 0;
pointer-events: none;
transition: opacity 0.3s
ease;
}
.scrollup:before {
content: "\f139";
font:
var(--fa-font-solid);
font-size: 30px;
}
.scrollup:hover {
opacity: .5;
}
.message-block {
overflow: hidden;
cursor:
pointer;
}
.message-block:hover,
.message-block:focus {
background-color: var(--base-bg);
}
.pagination {
overflow-y:
hidden;
}
@media (max-width: 768px) {
.pagination .page-link {
padding: 0.25rem 0.5rem;
font-size: 0.7875rem;
line-height:
1.5;
}
}
.performance {
background-color: var(--base-bg);
border: 1px solid var(--bs-border-color);
margin: 10px 0;
padding:
10px;
}
.performance .list-inline {
margin-bottom: 0;
}
@media
(max-width: 767px) {
.performance {
font-size: 0.75rem;
}
}
.stretched-link[aria-expanded=true] .treeview-indicator {
transform: rotate(180deg);
}
.progress {
position: relative;
max-width: 500px;
height: 15px;
margin-bottom:
10px;
}
.form-required .form-label:after {
content: "*";
color: red;
}
/* Fix input width in form-group */
.form-control-color {
max-width: 3rem;
}
.thumbnail {
width: 100px;
height: 100px;
object-fit: cover;
border: 1px solid #ccc;
border-radius: 3px;
margin: 3px 0;
}
.thumbnail-wrap {
position: relative;
display:
inline-block;
line-height: 0;
vertical-align:
middle;
}
.slide-main img {
width: auto;
margin: 0 auto
5px;
}
.slide-thumbnails {
display: flex;
gap: 8px;
flex-wrap:
wrap;
padding-left: 3px;
}
.slide-thumbnails img {
width: 50px;
height: 50px;
object-fit: cover;
border: 1px solid #ccc;
border-radius: 3px;
cursor: pointer;
transition: all
0.2s;
}
.slide-thumbnails img:hover {
transform:
scale(1.1);
}
.slide-thumb-image.active {
border: 2px solid #0d6efd
!important;
border-radius: 3px;
box-shadow: 0 0 5px rgba(13, 110,
253, 0.5);
}
.slide-thumb-video {
position: relative;
width:
50px;
height: 50px;
cursor: pointer;
overflow:
hidden;
}
.slide-thumb-video video {
width: 50px;
height: 50px;
object-fit: cover;
border: 1px solid #ccc;
border-radius: 3px;
display: block;
transition: transform 0.2s;
}
.slide-thumb-video:hover
video {
transform: scale(1.1);
}
.slide-thumb-video.active video {
border: 2px solid #0d6efd !important;
border-radius: 3px;
box-shadow: 0 0 5px rgba(13, 110, 253, 0.5);
}
.slide-play-icon {
position: absolute;
inset: 0;
display: flex;
align-items:
center;
justify-content: center;
background: none;
color:
#fff;
text-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
font-size: 16px;
border-radius: 3px;
pointer-events: none;
}
.slide-main-inner {
position: relative;
display: inline-block;
}
:target {
animation:
highlight-fade 2s ease-out;
}
/* Подсветка комментария
по якорю шире блока, почти до краёв
секции (padding 15px) */
.comment-item:target {
animation: none;
position: relative;
z-index: 0;
}
.comment-item:target::before {
content: '';
position: absolute;
inset: 0 -12px;
border-radius: 0.375rem;
pointer-events: none;
z-index: -1;
animation: highlight-fade 2s ease-out;
}
@keyframes highlight-fade {
0% {
background-color: rgba(150, 200, 255, 0.6);
}
100% {
background-color: transparent;
}
}
.section-content.short-view
{
overflow: hidden;
position: relative;
max-height:
500px;
}
.section-content.short-view.clamped::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height:
40px;
background: linear-gradient(
to top,
var(--bs-body-bg) 15%,
transparent 100%
);
pointer-events:
none;
}
.section-content.short-view:not(.clamped)::after,
.section-content.short-view.expanded::after
{
display: none;
}
.section-content.short-view.expanded {
max-height: none;
}
/* Notyf */
.notyf__toast {
max-width: 800px
!important;
}
.notyf__toast .notyf__ripple {
height: 960px;
width:
960px;
}
/* Confirm dialog */
.confirm-dialog {
border: none;
border-radius: 8px;
padding: 20px 24px;
width: 500px;
max-width: calc(100% - 32px);
margin: 15vh auto auto;
box-shadow: 0
4px 24px rgba(0, 0, 0, 0.2);
background: var(--bs-body-bg);
color:
var(--bs-body-color);
}
.confirm-dialog::backdrop {
background:
rgba(0, 0, 0, 0.5);
}
.confirm-message {
margin: 0 0 16px;
padding-bottom: 16px;
border-bottom: 1px solid
var(--bs-border-color);
}
.confirm-footer {
display: flex;
justify-content: flex-end;
gap: 8px;
}
/* Print styles */
@media print
{
*,
*::before,
*::after {
color: #000 !important;
background: transparent !important;
box-shadow: none
!important;
text-shadow: none !important;
}
body {
background: #fff !important;
color: #000 !important;
}
a,
a:hover,
a:focus,
a:visited {
text-decoration:
underline;
color: #000 !important;
}
}
/* Feed dots loader
*/
.feed-loader {
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
padding: 20px 0;
}
.feed-loader
span {
display: block;
width: 12px;
height: 12px;
border-radius: 50%;
background: var(--bs-secondary-color);
animation: feed-bounce 1.2s ease-in-out infinite;
}
.feed-loader
span:nth-child(1) { animation-delay: 0s; }
.feed-loader span:nth-child(2) {
animation-delay: 0.15s; }
.feed-loader span:nth-child(3) { animation-delay:
0.3s; }
.feed-loader span:nth-child(4) { animation-delay: 0.45s;
}
.feed-loader span:nth-child(5) { animation-delay: 0.6s; }
@keyframes
feed-bounce {
0%, 80%, 100% { transform: translateY(0); opacity: 0.4;
}
40% { transform: translateY(-10px); opacity: 1; }
}
/* Comment
thread */
.comment-left {
width: 25px;
flex-shrink: 0;
display:
flex;
flex-direction: column;
align-items: center;
position:
relative;
}
.comment-thread-ctrl {
display: flex;
flex-direction:
column;
align-items: center;
flex-grow: 1;
margin-top: 8px;
cursor: pointer;
color:
var(--bs-secondary-color);
}
.comment-thread-ctrl:hover {
color:
var(--bs-primary);
}
.comment-thread-ctrl:hover .comment-thread-line {
background: var(--bs-primary);
}
.comment-thread-btn {
width: 14px;
height: 14px;
border: 1px solid currentColor;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 9px;
flex-shrink: 0;
line-height:
1;
}
.comment-thread-line {
width: 1px;
background:
var(--bs-border-color);
flex-grow: 1;
min-height: 8px;
border-radius: 1px;
margin-top: 3px;
transition: background
.15s;
}
.comment-children .comment-left::before {
content: '';
position: absolute;
left: -21px;
top: 0;
width: 15px;
height: 15px;
border-left: 1px solid var(--bs-border-color);
border-bottom: 1px solid var(--bs-border-color);
border-bottom-left-radius: 12px;
z-index: 2;
transition:
border-color .15s;
}
.comment-children > .comment-item:last-child >
.comment-left::after {
content: '';
position: absolute;
left:
-22px;
top: 0;
bottom: -10px;
width: 5px;
background:
var(--bs-body-bg);
z-index:
1;
}
.comment-left:has(.comment-thread-ctrl:hover) + .comment-right >
.comment-body > .comment-children > .comment-item >
.comment-left::before {
border-color:
var(--bs-primary);
}
.comment-right {
flex-grow: 1;
min-width: 0;
padding-left: 8px;
}
.comment-header {
min-height: 32px;
display: flex;
align-items: center;
flex-wrap: wrap;
gap:
.25rem;
margin-bottom: 0;
}
.comment-actions {
gap: .1rem
!important;
}
.comment-actions .js-rating {
margin-right:
.4rem;
}
.js-rating {
display: inline-flex;
align-items: center;
line-height: 1.5;
font-size: 1rem;
font-weight:
400;
}
.js-rating .rating-value {
display: inline-block;
min-width: 1.2rem;
margin: 0 .1rem;
text-align: center;
font-weight: 700;
}
.js-rating .post-rating-up,
.js-rating
.post-rating-down,
.js-rating .post-rating-disabled {
display:
inline-flex;
align-items: center;
justify-content: center;
width: 1.5rem;
height: 1.5rem;
padding: 0;
border-radius: 50%;
text-decoration: none !important;
transition: background .15s, color
.15s;
}
.js-rating .post-rating-disabled {
color:
var(--bs-secondary-color);
opacity: .25;
}
.js-rating
.post-rating-up:hover {
background-color: #78c062;
color: #fff
!important;
}
.js-rating .post-rating-down:hover {
background-color:
#f75c48;
color: #fff !important;
}
.js-actions {
display:
inline-flex;
align-items: center;
justify-content: flex-end;
font-size: 1rem;
font-weight: 400;
}
.js-actions a {
display:
inline-flex;
align-items: center;
justify-content: center;
width: 1.5rem;
height: 1.5rem;
border-radius: 50%;
text-decoration: none !important;
transition: background .15s, color
.15s;
}
.js-actions a:hover {
color: var(--bs-body-color);
background: var(--bs-secondary-bg);
}
.comment-actions a,
.comment-actions
.comment-more-btn {
text-decoration: none !important;
color:
var(--bs-secondary-color);
font-size: .8rem;
line-height: 1;
display: inline-flex;
align-items: center;
gap: .25rem;
padding: .4rem .55rem;
border-radius: 20px;
transition: background
.15s, color .15s;
}
.comment-actions .comment-more-btn {
border:
none;
background: none;
cursor: pointer;
}
.comment-actions
a:hover,
.comment-actions .comment-more-btn:hover {
color:
var(--bs-body-color);
background:
var(--bs-secondary-bg);
}
.comment-more-dropdown .dropdown-item {
font-size: .85rem;
padding-top: .45rem;
padding-bottom:
.45rem;
}
.comment-expand-label {
display: block;
margin-top:
4px;
font-size: .8rem;
font-weight: 600;
cursor: pointer;
color: var(--bs-primary);
}
.comment-expand-label:hover {
text-decoration: underline;
}
.comment-left .avatar-mini {
display:
flex;
}
@media (max-width: 768px) {
.comment-left {
width:
15px;
}
.comment-left .avatar-mini .avatar-default {
width: 20px;
height: 20px;
font-size: 13px;
min-width: 20px;
}
.comment-children .comment-left::before {
left: -16px;
width: 11px;
height: 13px;
}
.comment-children > .comment-item:last-child > .comment-left::after
{
left: -17px;
}
.comment-header {
min-height:
20px;
}
}
.app-tile {
display: flex;
align-items: center;
gap: .6rem;
padding: .75rem;
border-radius: .5rem;
border: 1px
solid var(--bs-border-color);
box-shadow: 0 1px 3px rgba(0,0,0,.08);
text-decoration: none;
color: inherit;
height:
100%;
}
a.app-tile:hover { background: rgba(128,128,128,.12); box-shadow: 0
2px 8px rgba(0,0,0,.15); color: inherit; text-decoration: none;
}
.app-tile-icon {
width: 36px; height: 36px; min-width: 36px;
border-radius: .35rem;
display: flex; align-items: center;
justify-content: center;
color: #fff; font-size: .85rem; flex-shrink:
0;
}
.app-tile-label { font-size: .88rem; font-weight: 600; line-height:
1.3; display: flex; flex-direction: column; align-items: flex-start;
}
.app-tile-badge { margin-top: .2rem; }
/* Fancybox: компактные
тёмные стрелки — единый вид в лайтбоксе
и инлайн-карусели */
.fancybox__container .f-button.is-arrow
{
--f-button-width: 36px;
--f-button-height: 36px;
--f-button-svg-width: 18px;
--f-button-svg-height: 18px;
--f-button-bg: rgba(0, 0, 0, .2);
--f-button-hover-bg: rgba(0, 0, 0,
.55);
--f-button-color: #fff;
--f-button-border-radius: 50%;
--f-arrow-pos: 1rem;
}
.f-carousel .f-button.is-arrow {
--f-arrow-width: 36px;
--f-arrow-height: 36px;
--f-arrow-svg-width:
18px;
--f-arrow-svg-height: 18px;
--f-arrow-bg: rgba(0, 0, 0, .2);
--f-arrow-hover-bg: rgba(0, 0, 0, .55);
--f-arrow-color: #fff;
--f-arrow-border-radius: 50%;
--f-arrow-pos: 3px;
}