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 class="arrow-divider">
<i class="bi-arrow-right arrow-icon"></i>
<span class="vs-text">vs</span>
@ -843,677 +843,202 @@ h2 {
transform: none;
}
/* Модальные окна */
/* Полностью обновленные стили модального окна */
.modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
background-color: rgba(0, 0, 0, 0.7);
display: flex;
align-items: center;
justify-content: center;
z-index: 1000;
padding: 1rem;
align-items: center;
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 {
background: white;
border-radius: 0.75rem;
padding: 1.5rem;
position: relative;
width: calc(100% - 32px);
max-width: 500px;
width: 100%;
max-height: 90vh;
background-color: #fff;
border-radius: 12px;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.25);
padding: 20px;
max-height: 80vh;
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 {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 1rem;
border-bottom: 1px solid #e9ecef;
padding-bottom: 15px;
margin-bottom: 15px;
}
.modal-header h3 {
margin: 0;
font-size: 1.25rem;
color: #333;
font-size: 1.2rem;
font-weight: 600;
}
.modal-close {
background: transparent;
border: none;
cursor: pointer;
font-size: 1.25rem;
color: #6c757d;
padding: 0.25rem;
min-width: 32px;
min-height: 32px;
width: 36px;
height: 36px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
color: #6c757d;
font-size: 20px;
transition: background-color 0.2s;
}
.modal-close:hover {
background-color: #f0f0f0;
color: #333;
background: #f8f9fa;
border-radius: 0.25rem;
}
.modal-content {
margin-bottom: 20px;
}
.modal-content p {
margin-top: 0;
color: #495057;
}
.form-group {
margin: 1rem 0;
margin-top: 20px;
}
.form-group label {
display: block;
font-weight: 600;
font-weight: 500;
margin-bottom: 8px;
color: #495057;
margin-bottom: 0.5rem;
}
.form-group textarea {
width: 100%;
min-height: 100px;
padding: 0.75rem;
padding: 12px;
border: 1px solid #ced4da;
border-radius: 0.375rem;
border-radius: 8px;
min-height: 100px;
font-family: inherit;
font-size: 14px;
resize: vertical;
box-sizing: border-box;
}
.modal-actions {
display: flex;
gap: 1rem;
justify-content: flex-end;
margin-top: 1.5rem;
flex-wrap: wrap;
gap: 10px;
margin-top: 20px;
}
/* Пользовательские карточки в секции участников */
/* Исправления для корректного отображения блока "Участники" */
.users-grid {
display: grid;
grid-template-columns: 1fr auto 1fr;
gap: 1rem;
gap: 15px;
align-items: center;
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;
}
/* На мобильных устройствах меняем сетку на вертикальную */
.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) {
.users-grid {
grid-template-columns: 1fr;
grid-template-rows: auto auto auto;
gap: 0.75rem;
gap: 10px;
}
.arrow-divider {
transform: rotate(90deg);
margin: 0.5rem 0;
}
.vs-text {
display: block;
display: flex;
justify-content: center;
height: 40px;
}
.arrow-icon {
display: none;
}
}
/* Адаптивные стили для разных экранов */
/* Очень маленькие экраны (до 360px) */
@media (max-width: 360px) {
.admin-report-detail {
padding: 1rem 0.5rem calc(60px + env(safe-area-inset-bottom, 0px)) 0.5rem;
transform: rotate(90deg);
}
h2 {
font-size: 1.3rem;
}
.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;
.vs-text {
display: inline;
margin-left: 8px;
}
.modal {
width: calc(100% - 16px);
padding: 16px;
max-height: 85vh;
}
}
/* Высокие экраны */
@media (min-height: 800px) {
.admin-report-detail {
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;
.modal-header {
padding-bottom: 12px;
margin-bottom: 12px;
}
.user-card {
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 {
.modal-header h3 {
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>