131 lines
2.3 KiB
CSS
131 lines
2.3 KiB
CSS
.overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100vw;
|
|
height: 100vh;
|
|
background: rgba(0,0,0,0.18);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
z-index: 1000;
|
|
padding: 16px;
|
|
}
|
|
|
|
[data-theme="dark"] .overlay {
|
|
background: rgba(0,0,0,0.5);
|
|
}
|
|
|
|
.modal {
|
|
background: var(--card-background);
|
|
border-radius: 14px;
|
|
padding: 32px 28px 24px 28px;
|
|
min-width: 340px;
|
|
max-width: 90vw;
|
|
max-height: 90vh;
|
|
box-shadow: 0 12px 48px 0 var(--shadow-color);
|
|
position: relative;
|
|
animation: modalIn 0.18s cubic-bezier(.4,1.3,.6,1);
|
|
overflow-y: auto;
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
.closeBtn {
|
|
position: absolute;
|
|
top: 12px;
|
|
right: 16px;
|
|
background: none;
|
|
border: none;
|
|
font-size: 26px;
|
|
color: #6366f1;
|
|
cursor: pointer;
|
|
font-weight: 700;
|
|
line-height: 1;
|
|
padding: 0;
|
|
z-index: 2;
|
|
opacity: 0.8;
|
|
transition: opacity 0.2s;
|
|
min-width: 44px;
|
|
min-height: 44px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.closeBtn:hover {
|
|
opacity: 1;
|
|
}
|
|
|
|
@keyframes modalIn {
|
|
from { transform: translateY(40px) scale(0.98); opacity: 0; }
|
|
to { transform: none; opacity: 1; }
|
|
}
|
|
|
|
/* Адаптивные стили для планшетов */
|
|
@media (max-width: 1024px) {
|
|
.modal {
|
|
padding: 28px 24px 20px 24px;
|
|
min-width: 300px;
|
|
}
|
|
|
|
.closeBtn {
|
|
font-size: 24px;
|
|
top: 10px;
|
|
right: 14px;
|
|
}
|
|
}
|
|
|
|
/* Адаптивные стили для мобильных устройств */
|
|
@media (max-width: 768px) {
|
|
.overlay {
|
|
padding: 12px;
|
|
align-items: flex-start;
|
|
padding-top: 60px;
|
|
}
|
|
|
|
.modal {
|
|
padding: 24px 20px 16px 20px;
|
|
min-width: 280px;
|
|
max-width: 95vw;
|
|
max-height: 85vh;
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.closeBtn {
|
|
font-size: 22px;
|
|
top: 8px;
|
|
right: 12px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 480px) {
|
|
.overlay {
|
|
padding: 8px;
|
|
padding-top: 50px;
|
|
}
|
|
|
|
.modal {
|
|
padding: 20px 16px 12px 16px;
|
|
min-width: 260px;
|
|
max-width: 98vw;
|
|
border-radius: 10px;
|
|
}
|
|
|
|
.closeBtn {
|
|
font-size: 20px;
|
|
top: 6px;
|
|
right: 10px;
|
|
}
|
|
}
|
|
|
|
/* Улучшенная поддержка touch устройств */
|
|
@media (hover: none) and (pointer: coarse) {
|
|
.closeBtn {
|
|
min-width: 48px;
|
|
min-height: 48px;
|
|
}
|
|
|
|
.modal {
|
|
-webkit-overflow-scrolling: touch;
|
|
}
|
|
} |