tr.htmx-swapping td { opacity: 0; transition: opacity 0.5s ease-out; } #modal { /* Underlay covers entire screen. */ position: fixed; top: 0px; bottom: 0px; left: 0px; right: 0px; background-color: rgba(0, 0, 0, 0.9); z-index: 1000; /* Flexbox centers the .modal-content vertically and horizontally */ display: flex; flex-direction: column; align-items: center; /* Animate when opening */ animation-name: fadeIn; animation-duration: 150ms; animation-timing-function: ease; } #modal>.modal-underlay { /* underlay takes up the entire viewport. This is only required if you want to click to dismiss the popup */ position: absolute; z-index: -1; top: 0px; bottom: 0px; left: 0px; right: 0px; } #modal>.modal-content { /* Display properties for visible dialog*/ border: solid 1px #999; border-radius: 8px; box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.3); background-color: white; /* Animate when opening */ animation-name: zoomIn; animation-duration: 150ms; animation-timing-function: ease; } #modal.closing { /* Animate when closing */ animation-name: fadeOut; animation-duration: 150ms; animation-timing-function: ease; } #modal.closing>.modal-content { /* Aniate when closing */ animation-name: zoomOut; animation-duration: 150ms; animation-timing-function: ease; } @keyframes fadeIn { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes fadeOut { 0% { opacity: 1; } 100% { opacity: 0; } } @keyframes zoomIn { 0% { transform: scale(0.9); } 100% { transform: scale(1); } } @keyframes zoomOut { 0% { transform: scale(1); } 100% { transform: scale(0.9); } } .loading-indicator { display: none; } .htmx-request .loading-indicator { display: flex; } .htmx-request.loading-indicator { display: flex; } @keyframes slideInLeft { from { transform: translateX(-100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } .animate-slideInLeft { animation-name: slideInLeft; animation-duration: 0.5s; animation-fill-mode: both; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .animate-fadeIn { animation-name: fadeIn; animation-duration: 0.5s; animation-fill-mode: both; } /* SQL Explorer Custom Styles */ .sql-editor-container { background: #1e1e1e; border-radius: 0.5rem; padding: 0.5rem; box-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06); } .sql-editor-textarea { background: transparent !important; color: #dcdcdc !important; font-family: 'Fira Code', 'Courier New', Courier, monospace; line-height: 1.5; tab-size: 4; border: none !important; outline: none !important; width: 100%; } .glass-card { background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.3); } .btn-premium { position: relative; overflow: hidden; transition: all 0.3s ease; } .btn-premium::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: 0.5s; } .btn-premium:hover::after { left: 100%; } .table-zebra tbody tr:nth-child(even) { background-color: rgba(243, 244, 246, 0.5); } .table-zebra tbody tr:hover { background-color: rgba(229, 231, 235, 0.8); }