/* ============================================================= AdsProDialog - Custom Dialog System ============================================================= */ /* --- Animacje --- */ @keyframes adspro-dialog-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* --- Główny wrapper --- */ .adspro-dialog { position: fixed; top: 0; left: 0; right: 0; bottom: 0; overflow: hidden; opacity: 0; transition: opacity 0.25s ease; } .adspro-dialog.adspro-dialog-open { opacity: 1; } .adspro-dialog.adspro-dialog-closing { opacity: 0; pointer-events: none; } /* --- Backdrop --- */ .adspro-dialog-bg { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.45); } /* --- Scrollpane --- */ .adspro-dialog-scrollpane { position: relative; width: 100%; height: 100%; overflow-y: auto; display: flex; justify-content: center; align-items: flex-start; padding: 40px 20px; } /* --- Center container --- */ .adspro-dialog-center { display: flex; justify-content: center; width: 100%; min-height: 0; margin: auto 0; } /* Wsparcie columnClass (Bootstrap grid) */ .adspro-dialog-center.col-md-2 { max-width: 16.666%; } .adspro-dialog-center.col-md-3 { max-width: 25%; } .adspro-dialog-center.col-md-4 { max-width: 33.333%; } .adspro-dialog-center.col-md-5 { max-width: 41.666%; } .adspro-dialog-center.col-md-6 { max-width: 50%; } .adspro-dialog-center.col-md-7 { max-width: 58.333%; } .adspro-dialog-center.col-md-8 { max-width: 66.666%; } .adspro-dialog-center.col-md-9 { max-width: 75%; } .adspro-dialog-center.col-md-10 { max-width: 83.333%; } .adspro-dialog-center.col-md-11 { max-width: 91.666%; } .adspro-dialog-center.col-md-12 { max-width: 100%; } .adspro-dialog-center.col-12 { max-width: 100%; } /* --- Dialog box --- */ .adspro-dialog-box { background: #FFFFFF; border-radius: 12px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2), 0 4px 16px rgba(0, 0, 0, 0.1); width: 100%; max-width: 550px; position: relative; overflow: hidden; transform: scale(0.95) translateY(-20px); opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; } .adspro-dialog-open .adspro-dialog-box { transform: scale(1) translateY(0); opacity: 1; } .adspro-dialog-closing .adspro-dialog-box { transform: scale(0.95) translateY(-10px); opacity: 0; } /* Gdy użyto columnClass lub boxWidth, box zajmuje pełną szerokość kontenera */ .adspro-dialog-center[class*="col-"] .adspro-dialog-box { max-width: 100%; } .adspro-dialog-box[style*="max-width"] { max-width: none; } /* --- Kolorowe paski (type) --- */ .adspro-dialog-type-red { border-top: 4px solid #CC0000; } .adspro-dialog-type-orange { border-top: 4px solid #FF8C00; } .adspro-dialog-type-green { border-top: 4px solid #57B951; } .adspro-dialog-type-blue { border-top: 4px solid #6690F4; } .adspro-dialog-type-purple { border-top: 4px solid #8B5CF6; } .adspro-dialog-type-dark { border-top: 4px solid #2D3748; } /* --- Close icon --- */ .adspro-dialog-close-icon { position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; cursor: pointer; color: #A0AEC0; border-radius: 6px; transition: all 0.2s; z-index: 10; font-size: 16px; } .adspro-dialog-close-icon:hover { background: #FFF5F5; color: #CC0000; } /* --- Tytuł --- */ .adspro-dialog-title-c { padding: 20px 24px 0; user-select: none; } .adspro-dialog-title { font-size: 18px; font-weight: 600; color: #2D3748; display: block; } /* Kolor tytułu per typ */ .adspro-dialog-type-red .adspro-dialog-title { color: #CC0000; } .adspro-dialog-type-orange .adspro-dialog-title { color: #FF8C00; } .adspro-dialog-type-green .adspro-dialog-title { color: #2F855A; } .adspro-dialog-type-blue .adspro-dialog-title { color: #6690F4; } /* --- Content --- */ .adspro-dialog-content-pane { padding: 16px 24px; transition: opacity 0.2s; } .adspro-dialog-content { font-size: 14px; line-height: 1.6; color: #4E5E6A; } .adspro-dialog-content .form-group { margin-bottom: 14px; } .adspro-dialog-content .form-control { width: 100%; } /* --- Przyciski --- */ .adspro-dialog-buttons { padding: 16px 24px 20px; display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid #F1F5F9; transition: opacity 0.2s; } .adspro-dialog-btn { padding: 9px 20px; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; border: none; transition: all 0.2s; font-family: inherit; line-height: 1.4; } .adspro-dialog-btn:focus { outline: 2px solid #6690F4; outline-offset: 2px; } .adspro-dialog-btn:focus-visible { outline: 2px solid #6690F4; outline-offset: 2px; } /* Klasy przycisków */ .adspro-dialog-btn.btn-blue { background: #6690F4; color: #fff; } .adspro-dialog-btn.btn-blue:hover { background: #3164db; } .adspro-dialog-btn.btn-red { background: #CC0000; color: #fff; } .adspro-dialog-btn.btn-red:hover { background: #b30000; } .adspro-dialog-btn.btn-green { background: #57B951; color: #fff; } .adspro-dialog-btn.btn-green:hover { background: #4a9c3b; } .adspro-dialog-btn.btn-orange { background: #FF8C00; color: #fff; } .adspro-dialog-btn.btn-orange:hover { background: #e07800; } .adspro-dialog-btn.btn-success { background: #57B951; color: #fff; } .adspro-dialog-btn.btn-success:hover { background: #4a9c3b; } .adspro-dialog-btn.btn-danger { background: #CC0000; color: #fff; } .adspro-dialog-btn.btn-danger:hover { background: #b30000; } .adspro-dialog-btn.btn-default { background: #E2E8F0; color: #4E5E6A; } .adspro-dialog-btn.btn-default:hover { background: #CBD5E0; } /* --- Loading overlay --- */ .adspro-dialog-loading { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, 0.85); display: flex; align-items: center; justify-content: center; z-index: 20; border-radius: 12px; } .adspro-dialog-spinner { width: 40px; height: 40px; border: 3px solid #E2E8F0; border-top-color: #6690F4; border-radius: 50%; animation: adspro-dialog-spin 0.7s infinite linear; } /* --- Responsywność --- */ @media (max-width: 768px) { .adspro-dialog-scrollpane { padding: 20px 12px; } .adspro-dialog-box { max-width: 100% !important; } .adspro-dialog-center[class*="col-"] { max-width: 100% !important; } .adspro-dialog-buttons { flex-direction: column; } .adspro-dialog-btn { width: 100%; text-align: center; } }