/* Modal base styles - StreamYard/Google Material inspired */ .modal { position: fixed; inset: 0; margin: auto; padding: 0; border: none; border-radius: 8px; background: transparent; box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2); max-height: 90vh; overflow: hidden; } .modal::backdrop { background-color: rgba(0, 0, 0, 0.32); backdrop-filter: blur(2px); } /* Modal widths */ .modal-sm { width: 90%; max-width: 400px; } .modal-md { width: 90%; max-width: 520px; } .modal-lg { width: 90%; max-width: 720px; } .modal-xl { width: 90%; max-width: 960px; } .modalContent { background-color: #ffffff; color: #202124; border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; max-height: 90vh; } /* Header */ .modalHeader { display: flex; align-items: center; justify-content: space-between; padding: 16px 24px; } .modalTitle { font-size: 16px; font-weight: 400; margin: 0; color: #202124; letter-spacing: 0.1px; } .closeButton { background: transparent; border: none; font-size: 24px; line-height: 1; color: #5f6368; cursor: pointer; padding: 8px; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: background-color 0.2s ease, color 0.2s ease; margin: -8px -8px -8px 0; } .closeButton:hover { background-color: #f1f3f4; color: #202124; } /* Modal body */ .modalBody { padding: 20px 24px; overflow-y: auto; overflow-x: hidden; flex: 1; width: 100%; max-width: 100%; box-sizing: border-box; } /* Footer */ .modalFooter { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 16px 24px; border-top: 1px solid #e8eaed; } /* Responsive */ @media (max-width: 768px) { .modal-sm, .modal-md, .modal-lg, .modal-xl { width: 95%; max-width: none; } .modalBody { padding: 20px; } .modalHeader, .modalFooter { padding: 16px 20px; } } /* Animation */ @keyframes modalFadeIn { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } .modal[open] .modalContent { animation: modalFadeIn 0.15s cubic-bezier(0.4, 0.0, 0.2, 1); } /* Dark mode */ [data-theme="dark"] .modalContent { background-color: #2d2e30; color: #e8eaed; } [data-theme="dark"] .modalHeader { border-bottom-color: #5f6368; } [data-theme="dark"] .modalTitle { color: #e8eaed; } [data-theme="dark"] .closeButton { color: #9aa0a6; } [data-theme="dark"] .closeButton:hover { background-color: #3c4043; color: #e8eaed; } [data-theme="dark"] .modalFooter { border-top-color: #5f6368; }