This commit is contained in:
Professional 2025-05-26 21:12:01 +07:00
parent 73d6eb668d
commit a1ee4f865b

View File

@ -91,7 +91,7 @@
</div> </div>
</div> </div>
<!-- Индикатор стрелки адаптирован для мобильных устройств --> <!-- Индикатор стрелки между участниками -->
<div class="arrow-divider"> <div class="arrow-divider">
<i class="bi-arrow-right arrow-icon"></i> <i class="bi-arrow-right arrow-icon"></i>
<span class="vs-text">vs</span> <span class="vs-text">vs</span>
@ -843,677 +843,202 @@ h2 {
transform: none; transform: none;
} }
/* Модальные окна */ /* Полностью обновленные стили модального окна */
.modal-overlay { .modal-overlay {
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; left: 0;
right: 0; right: 0;
bottom: 0; bottom: 0;
background: rgba(0, 0, 0, 0.5); background-color: rgba(0, 0, 0, 0.7);
display: flex; display: flex;
align-items: center;
justify-content: center; justify-content: center;
z-index: 1000; align-items: center;
padding: 1rem; z-index: 10000; /* Очень высокий z-index для перекрытия всех элементов */
padding: env(safe-area-inset-top, 16px) env(safe-area-inset-right, 16px) env(safe-area-inset-bottom, 16px) env(safe-area-inset-left, 16px);
} }
.modal { .modal {
background: white; position: relative;
border-radius: 0.75rem; width: calc(100% - 32px);
padding: 1.5rem;
max-width: 500px; max-width: 500px;
width: 100%; background-color: #fff;
max-height: 90vh; border-radius: 12px;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.25);
padding: 20px;
max-height: 80vh;
overflow-y: auto; overflow-y: auto;
box-sizing: border-box; z-index: 10001; /* Чуть выше, чем у оверлея */
animation: modal-appear 0.2s ease-out;
}
@keyframes modal-appear {
from { opacity: 0; transform: scale(0.9); }
to { opacity: 1; transform: scale(1); }
} }
.modal-header { .modal-header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 1rem; border-bottom: 1px solid #e9ecef;
padding-bottom: 15px;
margin-bottom: 15px;
} }
.modal-header h3 { .modal-header h3 {
margin: 0; margin: 0;
font-size: 1.25rem;
color: #333; color: #333;
font-size: 1.2rem; font-weight: 600;
} }
.modal-close { .modal-close {
background: transparent; background: transparent;
border: none; border: none;
cursor: pointer; width: 36px;
font-size: 1.25rem; height: 36px;
color: #6c757d; border-radius: 50%;
padding: 0.25rem;
min-width: 32px;
min-height: 32px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
cursor: pointer;
color: #6c757d;
font-size: 20px;
transition: background-color 0.2s;
} }
.modal-close:hover { .modal-close:hover {
background-color: #f0f0f0;
color: #333; color: #333;
background: #f8f9fa; }
border-radius: 0.25rem;
.modal-content {
margin-bottom: 20px;
}
.modal-content p {
margin-top: 0;
color: #495057;
} }
.form-group { .form-group {
margin: 1rem 0; margin-top: 20px;
} }
.form-group label { .form-group label {
display: block; display: block;
font-weight: 600; font-weight: 500;
margin-bottom: 8px;
color: #495057; color: #495057;
margin-bottom: 0.5rem;
} }
.form-group textarea { .form-group textarea {
width: 100%; width: 100%;
min-height: 100px; padding: 12px;
padding: 0.75rem;
border: 1px solid #ced4da; border: 1px solid #ced4da;
border-radius: 0.375rem; border-radius: 8px;
min-height: 100px;
font-family: inherit; font-family: inherit;
font-size: 14px;
resize: vertical; resize: vertical;
box-sizing: border-box; box-sizing: border-box;
} }
.modal-actions { .modal-actions {
display: flex; display: flex;
gap: 1rem;
justify-content: flex-end; justify-content: flex-end;
margin-top: 1.5rem;
flex-wrap: wrap; flex-wrap: wrap;
gap: 10px;
margin-top: 20px;
} }
/* Пользовательские карточки в секции участников */ /* Исправления для корректного отображения блока "Участники" */
.users-grid { .users-grid {
display: grid; display: grid;
grid-template-columns: 1fr auto 1fr; grid-template-columns: 1fr auto 1fr;
gap: 1rem; gap: 15px;
align-items: center; align-items: center;
width: 100%; width: 100%;
}
.user-card {
background: white;
border: 1px solid #e9ecef;
border-radius: 8px;
padding: 15px;
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
display: flex;
flex-direction: column;
height: 100%;
box-sizing: border-box; box-sizing: border-box;
} }
/* На мобильных устройствах меняем сетку на вертикальную */ .user-details {
display: flex;
flex-direction: column;
gap: 8px;
}
.user-name, .user-email {
word-break: break-word;
overflow-wrap: break-word;
}
.arrow-divider {
display: flex;
justify-content: center;
align-items: center;
color: #6c757d;
}
.arrow-icon {
font-size: 20px;
}
.vs-text {
display: none;
font-weight: 600;
font-size: 14px;
color: #495057;
}
/* Адаптивные стили для мобильных устройств */
@media (max-width: 767px) { @media (max-width: 767px) {
.users-grid { .users-grid {
grid-template-columns: 1fr; grid-template-columns: 1fr;
grid-template-rows: auto auto auto; grid-template-rows: auto auto auto;
gap: 0.75rem; gap: 10px;
} }
.arrow-divider { .arrow-divider {
transform: rotate(90deg); display: flex;
margin: 0.5rem 0; justify-content: center;
} height: 40px;
.vs-text {
display: block;
} }
.arrow-icon { .arrow-icon {
display: none; transform: rotate(90deg);
}
}
/* Адаптивные стили для разных экранов */
/* Очень маленькие экраны (до 360px) */
@media (max-width: 360px) {
.admin-report-detail {
padding: 1rem 0.5rem calc(60px + env(safe-area-inset-bottom, 0px)) 0.5rem;
} }
h2 { .vs-text {
font-size: 1.3rem; display: inline;
} margin-left: 8px;
.page-header {
flex-direction: column;
align-items: flex-start;
gap: 0.75rem;
}
.report-header {
padding: 0.75rem;
flex-direction: column;
align-items: flex-start;
gap: 0.75rem;
min-height: auto;
}
.report-info {
width: 100%;
gap: 0.5rem;
}
.report-id-section {
gap: 0.5rem;
}
.report-icon {
font-size: 1.25rem;
}
.report-title {
font-size: 1.1rem;
margin-bottom: 0.25rem;
}
.full-id-container {
flex-direction: column;
gap: 0.125rem;
align-items: flex-start;
}
.id-label {
font-size: 0.75rem;
}
.full-id {
font-size: 0.75rem;
padding: 0.0625rem 0.125rem;
width: 100%;
word-break: break-all;
}
.report-date {
width: 100%;
gap: 0.375rem;
text-align: left;
align-self: flex-start;
}
.date-icon {
font-size: 1rem;
}
.date-info {
text-align: left;
gap: 0.0625rem;
}
.date-label {
font-size: 0.7rem;
}
.date-value {
font-size: 0.8rem;
white-space: normal;
}
}
/* Маленькие экраны (361px - 480px) */
@media (min-width: 361px) and (max-width: 480px) {
.admin-report-detail {
padding: 1rem 0.75rem calc(60px + env(safe-area-inset-bottom, 0px)) 0.75rem;
}
.report-header {
padding: 1rem;
flex-direction: column;
align-items: flex-start;
gap: 1rem;
min-height: auto;
}
.report-info {
width: 100%;
}
.report-date {
width: 100%;
text-align: left;
align-self: flex-start;
}
.date-info {
text-align: left;
}
.full-id {
font-size: 0.8rem;
}
.date-value {
white-space: normal;
}
}
/* Средние экраны (481px - 767px) */
@media (min-width: 481px) and (max-width: 767px) {
.admin-report-detail {
padding: 1.25rem calc(60px + env(safe-area-inset-bottom, 0px)) 1.25rem;
}
.report-header {
padding: 1.25rem;
flex-direction: row;
align-items: flex-start;
flex-wrap: wrap;
gap: 1rem;
}
.report-info {
flex: 1;
min-width: 250px;
}
.report-date {
flex-shrink: 0;
min-width: 150px;
}
.date-value {
white-space: nowrap;
}
}
/* Большие экраны (768px - 991px) */
@media (min-width: 768px) and (max-width: 991px) {
.admin-report-detail {
padding: 1.5rem 1.25rem calc(60px + env(safe-area-inset-bottom, 0px)) 1.25rem;
}
.report-header {
padding: 1.5rem;
flex-direction: row;
align-items: flex-start;
gap: 1.25rem;
}
.report-info {
flex: 1;
max-width: calc(100% - 200px);
}
.report-date {
flex-shrink: 0;
min-width: 180px;
}
}
/* Очень большие экраны (992px - 1199px) */
@media (min-width: 992px) and (max-width: 1199px) {
.admin-report-detail {
padding: 2rem 1.5rem calc(60px + env(safe-area-inset-bottom, 0px)) 1.5rem;
}
.report-header {
padding: 1.75rem;
gap: 1.5rem;
}
.report-info {
max-width: calc(100% - 220px);
}
.report-date {
min-width: 200px;
}
}
/* Десктопные экраны (1200px+) */
@media (min-width: 1200px) {
.admin-report-detail {
padding: 2rem calc(60px + env(safe-area-inset-bottom, 0px)) 2rem;
max-width: 1200px;
margin: 0 auto;
}
.report-header {
padding: 2rem;
gap: 2rem;
}
.report-info {
max-width: calc(100% - 250px);
}
.report-date {
min-width: 230px;
}
.report-title {
font-size: 1.4rem;
}
.full-id {
font-size: 0.9rem;
}
.date-value {
font-size: 1rem;
}
}
/* Ландшафтная ориентация на мобильных */
@media (max-height: 450px) and (orientation: landscape) {
.admin-report-detail {
padding: 1rem calc(50px + env(safe-area-inset-bottom, 0px)) 1rem;
}
.header-controls {
margin-bottom: 1rem;
}
.page-header {
margin-bottom: 1rem;
}
.report-content,
.info-section,
.report-actions {
padding: 1rem;
}
.info-grid {
gap: 1rem;
} }
.modal { .modal {
width: calc(100% - 16px);
padding: 16px;
max-height: 85vh; max-height: 85vh;
} }
}
/* Высокие экраны */ .modal-header {
@media (min-height: 800px) { padding-bottom: 12px;
.admin-report-detail { margin-bottom: 12px;
min-height: calc(100vh - 120px);
}
}
/* Устройства с вырезом (notch) */
@supports (padding: env(safe-area-inset-bottom)) {
.admin-report-detail {
padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px));
}
}
/* Ретина экраны с высокой плотностью пикселей */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.loading-spinner {
border-width: 2px;
} }
.user-card { .modal-header h3 {
border-width: 0.5px;
}
}
/* Темная тема (если поддерживается) */
@media (prefers-color-scheme: dark) {
/* Оставляем светлую тему для админ панели */
}
/* Уменьшенная анимация для пользователей с проблемами вестибулярного аппарата */
@media (prefers-reduced-motion: reduce) {
.loading-spinner {
animation: none;
}
.btn,
.back-btn,
.view-user-btn,
.user-card {
transition: none;
}
.btn:hover,
.back-btn:hover,
.view-user-btn:hover {
transform: none;
}
}
/* Адаптивные стили для блока header жалобы на разных экранах */
/* Очень маленькие экраны (до 360px) - адаптация header */
@media (max-width: 360px) {
.report-header {
padding: 0.75rem;
flex-direction: column;
align-items: flex-start;
gap: 0.75rem;
min-height: auto;
}
.report-info {
width: 100%;
gap: 0.5rem;
}
.report-id-section {
gap: 0.5rem;
}
.report-icon {
font-size: 1.25rem;
}
.report-title {
font-size: 1.1rem; font-size: 1.1rem;
margin-bottom: 0.25rem;
}
.full-id-container {
flex-direction: column;
gap: 0.125rem;
align-items: flex-start;
}
.id-label {
font-size: 0.75rem;
}
.full-id {
font-size: 0.75rem;
padding: 0.0625rem 0.125rem;
width: 100%;
word-break: break-all;
}
.report-date {
width: 100%;
gap: 0.375rem;
text-align: left;
align-self: flex-start;
}
.date-icon {
font-size: 1rem;
}
.date-info {
text-align: left;
gap: 0.0625rem;
}
.date-label {
font-size: 0.7rem;
}
.date-value {
font-size: 0.8rem;
white-space: normal;
}
}
/* Маленькие экраны (361px - 480px) - адаптация header */
@media (min-width: 361px) and (max-width: 480px) {
.report-header {
padding: 1rem;
flex-direction: column;
align-items: flex-start;
gap: 1rem;
min-height: auto;
}
.report-info {
width: 100%;
}
.report-date {
width: 100%;
text-align: left;
align-self: flex-start;
}
.date-info {
text-align: left;
}
.full-id {
font-size: 0.8rem;
}
.date-value {
white-space: normal;
}
}
/* Средние экраны (481px - 767px) - адаптация header */
@media (min-width: 481px) and (max-width: 767px) {
.report-header {
padding: 1.25rem;
flex-direction: row;
align-items: flex-start;
flex-wrap: wrap;
gap: 1rem;
}
.report-info {
flex: 1;
min-width: 250px;
}
.report-date {
flex-shrink: 0;
min-width: 150px;
}
.date-value {
white-space: nowrap;
}
}
/* Большие экраны (768px - 991px) - адаптация header */
@media (min-width: 768px) and (max-width: 991px) {
.report-header {
padding: 1.5rem;
flex-direction: row;
align-items: flex-start;
gap: 1.25rem;
}
.report-info {
flex: 1;
max-width: calc(100% - 200px);
}
.report-date {
flex-shrink: 0;
min-width: 180px;
}
}
/* Очень большие экраны (992px - 1199px) - адаптация header */
@media (min-width: 992px) and (max-width: 1199px) {
.report-header {
padding: 1.75rem;
gap: 1.5rem;
}
.report-info {
max-width: calc(100% - 220px);
}
.report-date {
min-width: 200px;
}
}
/* Десктопные экраны (1200px+) - адаптация header */
@media (min-width: 1200px) {
.report-header {
padding: 2rem;
gap: 2rem;
}
.report-info {
max-width: calc(100% - 250px);
}
.report-date {
min-width: 230px;
}
.report-title {
font-size: 1.4rem;
}
.full-id {
font-size: 0.9rem;
}
.date-value {
font-size: 1rem;
}
}
/* Ландшафтная ориентация на мобильных - адаптация header */
@media (max-height: 450px) and (orientation: landscape) {
.report-header {
padding: 0.75rem 1rem;
flex-direction: row;
align-items: center;
gap: 1rem;
min-height: auto;
}
.report-info {
flex: 1;
}
.report-title {
font-size: 1.1rem;
margin-bottom: 0.25rem;
}
.full-id-container {
flex-direction: row;
flex-wrap: wrap;
gap: 0.25rem;
}
.full-id {
font-size: 0.75rem;
max-width: 200px;
}
.report-date {
flex-shrink: 0;
gap: 0.375rem;
}
.date-info {
gap: 0.0625rem;
}
.date-label {
font-size: 0.7rem;
}
.date-value {
font-size: 0.8rem;
} }
} }
</style> </style>