/* Saqlain's Tech World - Futuristic Premium UI */ @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap'); /* Custom scrollbars inside the floating widget */ #ql-floating ::-webkit-scrollbar { width: 5px; height: 5px; } #ql-floating ::-webkit-scrollbar-track { background: transparent; } #ql-floating ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.08); border-radius: 99px; } #ql-floating ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.18); } @keyframes ql-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.08); filter: drop-shadow(0 0 20px var(--ql-accent-glow)); } 100% { transform: scale(1); } } @keyframes ql-data-wave { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.5); } 100% { opacity: 0.3; transform: scaleY(1); } } /* ===== MAIN CONTAINER - FUTURISTIC ===== */ #ql-floating { position: fixed; width: 400px; z-index: 999999999; font-family: var(--ql-font); border-radius: var(--ql-radius); overflow: hidden; background: var(--ql-bg-elevated); border: 1px solid var(--ql-border); box-shadow: var(--ql-shadow), 0 0 40px rgba(37, 99, 235, 0.04); transition: box-shadow var(--ql-transition), height 0.3s ease, border-color 0.3s ease; display: flex; flex-direction: column; min-height: 60px; overflow-y: auto; backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); } #ql-floating:hover { box-shadow: var(--ql-shadow-hover); } #ql-floating * { box-sizing: border-box; } /* Ensure all interactive elements are clickable */ #ql-floating button, #ql-floating input, #ql-floating textarea, #ql-floating label, #ql-floating a, #ql-floating select { pointer-events: auto !important; position: relative; z-index: 1; } /* ===== MINIMIZED ===== */ #ql-floating.ql-minimized { height: auto !important; min-height: 52px; overflow: hidden; animation: ql-swoosh-in 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); } #ql-floating.ql-minimized #ql-body, #ql-floating.ql-minimized #ql-footer, #ql-floating.ql-minimized #ql-resize-handle, #ql-floating.ql-minimized #ql-notif-panel { display: none !important; } @keyframes ql-swoosh-in { 0% { transform: scale(1) translateX(0); opacity: 1; } 35% { transform: scale(0.92) translateX(8px); opacity: 0.85; filter: blur(2px); } 70% { transform: scale(1.02) translateX(-2px); opacity: 1; filter: blur(0); } 100% { transform: scale(1) translateX(0); } } #ql-floating:not(.ql-minimized) { transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow var(--ql-transition), height 0.3s ease; } #ql-floating .ql-minimize-btn, #ql-floating .ql-icon-btn { transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), background var(--ql-transition), color var(--ql-transition); } #ql-floating .ql-icon-btn:active { transform: scale(0.85) rotate(-8deg); } /* ===== HEADER ===== */ #ql-header { cursor: move; padding: 14px 18px; background: var(--ql-bg-elevated); border-bottom: 1px solid var(--ql-border); display: flex; align-items: center; justify-content: space-between; user-select: none; -webkit-user-select: none; touch-action: none; flex-shrink: 0; position: relative; } #ql-header::after { content: ''; position: absolute; bottom: -1px; left: 15%; right: 15%; height: 1px; background: var(--ql-accent); opacity: 0.3; } .ql-header-left { display: flex; align-items: center; gap: 10px; } .ql-brand { font-size: 14px; font-weight: 800; background: transparent; color: var(--ql-accent); -webkit-text-fill-color: currentColor; letter-spacing: -0.02em; } .ql-badge-pro-header { font-size: 9px; font-weight: 800; padding: 3px 8px; border-radius: 6px; background: var(--ql-gradient-primary); color: #fff; letter-spacing: 0.08em; text-transform: uppercase; } .ql-header-right { display: flex; align-items: center; gap: 2px; flex-shrink: 0; } .ql-icon-btn { width: 32px; height: 32px; border: none; background: transparent; border-radius: var(--ql-radius-xs); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 14px; transition: all var(--ql-transition); color: var(--ql-text-muted); position: relative; } .ql-icon-btn:hover { background: rgba(37, 99, 235, 0.08); color: var(--ql-accent); box-shadow: 0 0 12px var(--ql-accent-glow); } /* ===== NOTIFICATION BADGE ===== */ .ql-notif-badge { position: absolute; top: -3px; right: -3px; width: 18px; height: 18px; border-radius: 50%; background: var(--ql-danger); color: #fff; font-size: 9px; font-weight: 800; display: flex; align-items: center; justify-content: center; line-height: 1; box-shadow: 0 0 8px rgba(239,68,68,0.4); } /* ===== NOTIFICATION PANEL ===== */ .ql-notif-panel { position: absolute; top: 52px; right: 8px; left: 8px; background: var(--ql-bg-surface); border: 1px solid var(--ql-border); border-radius: 14px; box-shadow: 0 16px 48px -12px rgba(0,0,0,0.5); z-index: 10; max-height: 300px; overflow-y: auto; animation: ql-slide-down 0.2s ease; } @keyframes ql-slide-down { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } } .ql-notif-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--ql-border); font-size: 13px; font-weight: 700; color: var(--ql-text-primary); } .ql-notif-close-btn { border: none; background: none; cursor: pointer; font-size: 13px; color: var(--ql-text-muted); padding: 4px 8px; border-radius: 6px; transition: all var(--ql-transition); } .ql-notif-close-btn:hover { background: var(--ql-bg-hover); color: var(--ql-text-primary); } .ql-notif-list { padding: 8px; } .ql-notif-empty { text-align: center; color: var(--ql-text-muted); font-size: 12px; padding: 20px 0; margin: 0; } .ql-notif-item { padding: 12px 14px; border-radius: var(--ql-radius-sm); background: var(--ql-bg-hover); margin-bottom: 6px; border: 1px solid var(--ql-border); transition: all var(--ql-transition); } .ql-notif-item:hover { border-color: var(--ql-border-hover); } .ql-notif-item:last-child { margin-bottom: 0; } .ql-notif-item-title { font-size: 12px; font-weight: 700; color: var(--ql-text-primary); margin-bottom: 3px; } .ql-notif-item-msg { font-size: 11px; color: var(--ql-text-secondary); margin-bottom: 6px; line-height: 1.5; } .ql-notif-link { font-size: 11px; color: var(--ql-accent); text-decoration: none; font-weight: 600; transition: opacity var(--ql-transition); } .ql-notif-link:hover { opacity: 0.8; } .ql-notif-item-date { font-size: 10px; color: var(--ql-text-muted); margin-top: 6px; } /* ===== CUSTOM ALERT ===== */ .ql-custom-alert { position: absolute; inset: 0; background: rgba(0,0,0,0.6); display: flex; align-items: center; justify-content: center; z-index: 20; border-radius: var(--ql-radius); backdrop-filter: blur(8px); } .ql-alert-content { background: var(--ql-bg-surface); border: 1px solid var(--ql-border); border-radius: var(--ql-radius); padding: 28px 24px; text-align: center; width: 85%; max-width: 300px; box-shadow: 0 24px 60px -12px rgba(0,0,0,0.6); animation: ql-alert-in 0.3s cubic-bezier(0.34, 1.56, 0.64, 1); } @keyframes ql-alert-in { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } } .ql-alert-icon { font-size: 40px; margin-bottom: 12px; } .ql-alert-title { font-size: 16px; font-weight: 700; color: var(--ql-text-primary); margin-bottom: 8px; } .ql-alert-message { font-size: 13px; color: var(--ql-text-secondary); margin-bottom: 20px; line-height: 1.5; } .ql-alert-ok-btn { padding: 10px 36px; border: none; border-radius: var(--ql-radius-sm); background: var(--ql-gradient-primary); color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; transition: all var(--ql-transition); box-shadow: 0 4px 16px var(--ql-accent-glow); } .ql-alert-ok-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px var(--ql-accent-glow); } /* ===== MODO PLANO MODAL ===== */ .ql-modo-plano-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.72); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; z-index: 40; opacity: 0; pointer-events: none; transition: opacity var(--ql-transition); border-radius: inherit; } .ql-modo-plano-overlay.ql-modo-plano-visible { opacity: 1; pointer-events: auto; } .ql-modo-plano-modal { background: var(--ql-bg-elevated); border: 1px solid var(--ql-border); border-radius: var(--ql-radius); width: min(340px, 92%); padding: 20px; box-shadow: 0 24px 80px -12px rgba(0,0,0,0.6); transform: scale(0.96); transition: transform 0.2s ease; } .ql-modo-plano-visible .ql-modo-plano-modal { transform: scale(1); } .ql-modo-plano-icon { width: 40px; height: 40px; margin: 0 auto 12px; border-radius: 10px; background: var(--ql-warning-bg); border: 1px solid color-mix(in srgb, var(--ql-warning) 28%, transparent); display: flex; align-items: center; justify-content: center; font-size: 20px; } .ql-modo-plano-title { font-size: 14px; font-weight: 700; color: var(--ql-text-primary); text-align: center; margin-bottom: 10px; } .ql-modo-plano-body { font-size: 11px; line-height: 1.6; color: var(--ql-text-secondary); margin-bottom: 12px; } .ql-modo-plano-body strong { color: var(--ql-warning); } .ql-modo-plano-steps { margin-bottom: 14px; } .ql-modo-plano-step { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 8px; } .ql-modo-plano-step:last-child { margin-bottom: 0; } .ql-modo-plano-step-num { min-width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ql-accent-subtle); border: 1px solid color-mix(in srgb, var(--ql-accent) 25%, transparent); color: var(--ql-accent); font-size: 10px; font-weight: 700; } .ql-modo-plano-step-text { font-size: 11px; line-height: 1.5; color: var(--ql-text-secondary); } .ql-modo-plano-step-text strong { color: var(--ql-text-primary); } .ql-modo-plano-check { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; } .ql-modo-plano-check input { width: 14px; height: 14px; accent-color: var(--ql-accent); } .ql-modo-plano-check label { font-size: 11px; color: var(--ql-text-muted); } .ql-modo-plano-btn { width: 100%; padding: 10px; border: none; border-radius: var(--ql-radius-sm); background: var(--ql-accent); color: var(--ql-text-primary); font-size: 12px; font-weight: 700; cursor: pointer; transition: all var(--ql-transition); } .ql-modo-plano-btn:hover { box-shadow: 0 0 20px -4px var(--ql-accent-glow); transform: translateY(-1px); } /* ===== LICENSE MODE MODAL (vendor-aligned) ===== */ .ql-license-mode-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.72); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; z-index: 40; opacity: 0; pointer-events: none; transition: opacity var(--ql-transition); border-radius: inherit; } .ql-license-mode-overlay.ql-license-mode-visible { opacity: 1; pointer-events: auto; } .ql-license-mode-modal { background: var(--ql-bg-elevated); border: 1px solid var(--ql-border); border-radius: var(--ql-radius); width: min(340px, 92%); padding: 20px; box-shadow: 0 24px 80px -12px rgba(0,0,0,0.6); transform: scale(0.96); transition: transform 0.2s ease; } .ql-license-mode-visible .ql-license-mode-modal { transform: scale(1); } .ql-license-mode-icon { width: 40px; height: 40px; margin: 0 auto 12px; border-radius: 10px; background: var(--ql-warning-bg); border: 1px solid color-mix(in srgb, var(--ql-warning) 28%, transparent); display: flex; align-items: center; justify-content: center; font-size: 20px; } .ql-license-mode-title { font-size: 14px; font-weight: 700; color: var(--ql-text-primary); text-align: center; margin-bottom: 10px; } .ql-license-mode-body { font-size: 11px; line-height: 1.6; color: var(--ql-text-secondary); margin-bottom: 12px; } .ql-license-mode-body strong { color: var(--ql-warning); } .ql-license-mode-steps { margin-bottom: 14px; } .ql-license-mode-step { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 8px; } .ql-license-mode-step:last-child { margin-bottom: 0; } .ql-license-mode-step-num { min-width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ql-accent-subtle); border: 1px solid color-mix(in srgb, var(--ql-accent) 25%, transparent); color: var(--ql-accent); font-size: 10px; font-weight: 700; } .ql-license-mode-step-text { font-size: 11px; line-height: 1.5; color: var(--ql-text-secondary); } .ql-license-mode-step-text strong { color: var(--ql-text-primary); } .ql-license-mode-check { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; } .ql-license-mode-check input { width: 14px; height: 14px; accent-color: var(--ql-accent); } .ql-license-mode-check label { font-size: 11px; color: var(--ql-text-muted); } .ql-license-mode-btn { width: 100%; padding: 10px; border: none; border-radius: var(--ql-radius-sm); background: var(--ql-accent); color: var(--ql-text-primary); font-size: 12px; font-weight: 700; cursor: pointer; transition: all var(--ql-transition); } .ql-license-mode-btn:hover { box-shadow: 0 0 20px -4px var(--ql-accent-glow); transform: translateY(-1px); } /* ===== BODY ===== */ #ql-body { padding: 18px; flex: 1; overflow-y: auto; } /* ===== PROFILE CARD ===== */ .ql-profile-card { background: var(--ql-bg-surface); border: 1px solid var(--ql-border); border-radius: 14px; padding: 14px 16px; margin-bottom: 16px; transition: border-color var(--ql-transition); } .ql-profile-card:hover { border-color: var(--ql-border-hover); } .ql-profile-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; } .ql-profile-info { display: flex; align-items: center; gap: 10px; } .ql-profile-name { font-size: 14px; font-weight: 700; color: var(--ql-text-primary); letter-spacing: -0.01em; } .ql-status-badge { font-size: 9px; font-weight: 800; padding: 3px 10px; border-radius: 6px; letter-spacing: 0.08em; text-transform: uppercase; } .ql-badge-test { background: var(--ql-warning-bg); color: var(--ql-warning); border: 1px solid rgba(251,191,36,0.15); } .ql-badge-pro { background: var(--ql-success-bg); color: var(--ql-success); border: 1px solid rgba(52,211,153,0.15); } /* ===== SYNC STATUS ===== */ .ql-sync-status { font-size: 12px; font-weight: 500; margin-bottom: 8px; padding: 0; } .ql-sync-ok .ql-sync-text { color: var(--ql-success); } .ql-sync-waiting .ql-sync-text { color: var(--ql-warning); } /* ===== TRIAL COUNTDOWN ===== */ .ql-trial-countdown { display: flex; flex-direction: column; gap: 8px; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, 0.03); border: 1px solid var(--ql-border); margin-top: 8px; } .ql-countdown-row { display: flex; align-items: center; gap: 6px; font-size: 12px; } .ql-countdown-icon { font-size: 13px; } .ql-countdown-label { color: var(--ql-text-secondary); font-weight: 500; } .ql-countdown-time { margin-left: auto; font-family: 'SF Mono', 'Fira Code', 'JetBrains Mono', monospace; font-size: 13px; font-weight: 700; color: var(--ql-warning); letter-spacing: 0.03em; } .ql-countdown-expired { color: var(--ql-danger); font-weight: 600; font-size: 12px; } .ql-trial-bar { width: 100%; height: 6px; border-radius: 6px; background: var(--ql-bg-hover); overflow: hidden; position: relative; } .ql-trial-bar-fill { height: 100%; border-radius: 6px; background: var(--ql-gradient-shimmer); background-size: 200% 100%; animation: ql-bar-shimmer 3s ease infinite; transition: width 1s ease; box-shadow: 0 0 8px var(--ql-accent-glow); } .ql-trial-bar-fill.ql-bar-urgent { background: var(--ql-danger); background-size: 200% 100%; animation: ql-bar-shimmer 1.5s ease infinite, ql-bar-pulse 2s ease-in-out infinite; box-shadow: 0 0 10px rgba(239, 68, 68, 0.5); } .ql-trial-bar-fill.ql-bar-expired { background: var(--ql-danger); } @keyframes ql-bar-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } @keyframes ql-bar-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } /* ===== TEXTAREA ===== */ #ql-floating textarea { width: 100%; padding: 14px 16px; border-radius: 14px; border: 1px solid var(--ql-border); background: var(--ql-bg-surface); color: var(--ql-text-primary); font-size: 13px; font-family: var(--ql-font); transition: border-color var(--ql-transition), box-shadow var(--ql-transition); box-sizing: border-box; outline: none; resize: vertical; min-height: 64px; margin-bottom: 10px; line-height: 1.5; } #ql-floating textarea:focus { border-color: var(--ql-accent); box-shadow: 0 0 0 3px var(--ql-accent-subtle), 0 0 20px var(--ql-accent-glow); } #ql-floating textarea::placeholder { color: var(--ql-text-muted); } /* ===== ACTION BAR ===== */ .ql-action-bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; padding: 0; gap: 8px; } .ql-action-left { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .ql-action-center { display: flex; align-items: center; gap: 4px; } .ql-action-right-send { flex-shrink: 0; } .ql-tool-btn { width: 34px; height: 34px; border: 1px solid var(--ql-border); background: var(--ql-bg-surface); border-radius: var(--ql-radius-xs); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all var(--ql-transition); color: var(--ql-text-muted); } .ql-tool-btn:hover { background: var(--ql-accent-subtle); border-color: var(--ql-border-hover); color: var(--ql-accent); box-shadow: 0 0 12px var(--ql-accent-glow); transform: translateY(-1px); } .ql-tool-btn:disabled { opacity: 0.35; cursor: not-allowed; transform: none; } /* Tool button loading */ .ql-tool-loading { animation: ql-spin 0.8s linear infinite; } @keyframes ql-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Recording indicator */ .ql-recording { background: var(--ql-danger-bg) !important; border-color: rgba(248,113,113,0.3) !important; color: var(--ql-danger) !important; animation: ql-pulse 1.5s ease-in-out infinite; } @keyframes ql-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(248,113,113,0.3); } 50% { box-shadow: 0 0 0 8px rgba(248,113,113,0); } } .ql-toggle-label-inline { font-size: 10px; font-weight: 600; color: var(--ql-text-muted); text-transform: uppercase; letter-spacing: 0.06em; } /* ===== SEND BUTTON ===== */ .ql-send-btn { padding: 8px 22px; border: none; border-radius: var(--ql-radius-sm); background: var(--ql-gradient-primary); color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; transition: all var(--ql-transition); box-shadow: 0 2px 12px var(--ql-accent-glow); letter-spacing: -0.01em; } .ql-send-btn:hover { box-shadow: 0 6px 24px var(--ql-accent-glow); transform: translateY(-1px); filter: brightness(1.1); } .ql-send-btn:active { transform: translateY(0); filter: brightness(0.95); } .ql-send-btn.ql-sending, .ql-send-btn:disabled { opacity: 0.5; pointer-events: none; } /* ===== TOGGLE ===== */ .ql-toggle { position: relative; width: 36px; height: 20px; cursor: pointer; flex-shrink: 0; } .ql-toggle input { opacity: 0; width: 0; height: 0; position: absolute; } .ql-toggle-slider { position: absolute; inset: 0; border-radius: 20px; background: var(--ql-bg-hover); border: 1px solid var(--ql-border); transition: all 0.3s ease; } .ql-toggle-slider::before { content: ''; position: absolute; width: 16px; height: 16px; border-radius: 50%; background: var(--ql-text-muted); top: 1px; left: 1px; transition: all 0.3s ease; } .ql-toggle input:checked + .ql-toggle-slider { background: var(--ql-accent-subtle); border-color: var(--ql-border-hover); } .ql-toggle input:checked + .ql-toggle-slider::before { transform: translateX(16px); background: var(--ql-accent); box-shadow: 0 0 8px var(--ql-accent-glow); } /* ===== LOG ===== */ #ql-log, #ql-license-log { font-size: 12px; margin-top: 10px; min-height: 18px; padding: 0 4px; font-weight: 600; text-align: center; } .ql-log-success { color: var(--ql-success) !important; } .ql-log-error { color: var(--ql-danger) !important; } .ql-log-info { color: var(--ql-accent) !important; } /* ===== SHORTCUTS ===== */ .ql-shortcuts-section { margin-top: 8px; } .ql-shortcuts-title { display: block; text-align: center; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ql-text-muted); margin-bottom: 12px; } .ql-shortcuts-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; } .ql-chip { padding: 8px 4px; border-radius: var(--ql-radius-xs); border: 1px solid var(--ql-border); background: var(--ql-bg-surface); color: var(--ql-text-secondary); font-size: 11px; font-weight: 500; cursor: pointer; transition: all var(--ql-transition); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: flex; align-items: center; justify-content: center; gap: 5px; } .ql-chip svg { flex-shrink: 0; } .ql-chip:hover { background: var(--ql-accent-subtle); border-color: var(--ql-border-hover); color: var(--ql-accent-hover); transform: translateY(-2px); box-shadow: 0 4px 16px var(--ql-accent-glow); } /* ===== LICENSE GATE ===== */ .ql-license-gate { text-align: center; padding: 24px 0; } .ql-lock-icon { font-size: 40px; margin-bottom: 16px; } .ql-gate-title { font-size: 17px; font-weight: 700; color: var(--ql-text-primary); margin-bottom: 6px; letter-spacing: -0.02em; } .ql-gate-desc { font-size: 13px; color: var(--ql-text-secondary); margin-bottom: 20px; line-height: 1.5; } #ql-floating input { width: 100%; padding: 12px 16px; border-radius: var(--ql-radius-sm); border: 1px solid var(--ql-border); background: var(--ql-bg-surface); color: var(--ql-text-primary); font-size: 13px; font-family: var(--ql-font); transition: all var(--ql-transition); box-sizing: border-box; outline: none; } #ql-floating input:focus { border-color: var(--ql-accent); box-shadow: 0 0 0 3px var(--ql-accent-subtle), 0 0 20px var(--ql-accent-glow); } #ql-floating input::placeholder { color: var(--ql-text-muted); } #ql-validate-btn { width: 100%; padding: 12px; border: none; border-radius: var(--ql-radius-sm); background: var(--ql-gradient-primary); color: white; font-size: 14px; font-weight: 700; cursor: pointer; transition: all var(--ql-transition); margin-top: 8px; box-shadow: 0 4px 16px var(--ql-accent-glow); letter-spacing: -0.01em; } #ql-validate-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 28px var(--ql-accent-glow); filter: brightness(1.1); } /* ===== FOOTER ===== */ .ql-footer { padding: 10px 18px; border-top: 1px solid var(--ql-border); display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; font-size: 11px; font-weight: 600; color: var(--ql-text-muted); } .ql-footer-row { display: flex; align-items: center; justify-content: space-between; width: 100%; } .ql-footer-version { font-size: 9px; color: var(--ql-text-muted); opacity: 0.5; } .ql-support-link { display: flex; align-items: center; gap: 6px; color: var(--ql-text-muted); text-decoration: none; font-size: 11px; font-weight: 600; transition: color var(--ql-transition); cursor: pointer; } .ql-support-link:hover { color: var(--ql-accent); } .ql-support-link svg { flex-shrink: 0; } .ql-badge-mz { font-size: 9px; font-weight: 600; color: var(--ql-text-muted); background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); padding: 2px 8px; border-radius: 99px; letter-spacing: 0.02em; } /* ===== SWEETALERT EXPIRED MODAL ===== */ .ql-sweetalert-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.7); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; z-index: 99999; opacity: 0; transition: opacity 0.3s ease; border-radius: inherit; } .ql-sweetalert-overlay.ql-sweetalert-visible { opacity: 1; } .ql-sweetalert-box { background: var(--ql-surface); border: 1px solid var(--ql-border); border-radius: 20px; padding: 32px 28px; text-align: center; max-width: 320px; width: 90%; transform: scale(0.85); transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1); box-shadow: 0 25px 60px rgba(0,0,0,0.5); } .ql-sweetalert-visible .ql-sweetalert-box { transform: scale(1); } .ql-sweetalert-icon { font-size: 48px; margin-bottom: 12px; animation: ql-shake 0.6s ease 0.3s both; } @keyframes ql-shake { 0%, 100% { transform: rotate(0deg); } 20% { transform: rotate(-12deg); } 40% { transform: rotate(12deg); } 60% { transform: rotate(-8deg); } 80% { transform: rotate(8deg); } } .ql-sweetalert-title { font-size: 18px; font-weight: 800; color: var(--ql-text); margin: 0 0 8px; } .ql-sweetalert-text { font-size: 13px; color: var(--ql-text-secondary); line-height: 1.5; margin: 0 0 20px; } .ql-sweetalert-actions { display: flex; flex-direction: column; gap: 8px; } .ql-sweetalert-btn { padding: 10px 20px; border-radius: 12px; font-size: 13px; font-weight: 700; cursor: pointer; border: none; text-decoration: none; text-align: center; transition: all 0.2s ease; } .ql-sweetalert-btn-primary { background: var(--ql-gradient-primary); color: #fff; box-shadow: 0 4px 15px var(--ql-accent-glow); } .ql-sweetalert-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 20px var(--ql-accent-glow); } .ql-sweetalert-btn-secondary { background: rgba(255,255,255,0.06); color: var(--ql-text-secondary); border: 1px solid var(--ql-border); } .ql-sweetalert-btn-secondary:hover { background: rgba(255,255,255,0.1); } .ql-resize-handle { height: 10px; cursor: ns-resize; background: transparent; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .ql-resize-handle::after { content: ''; width: 40px; height: 3px; border-radius: 3px; background: var(--ql-border); transition: background var(--ql-transition); } .ql-resize-handle:hover::after { background: var(--ql-accent); box-shadow: 0 0 8px var(--ql-accent-glow); } .ql-field { margin-bottom: 14px; } .ql-field label { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ql-text-muted); margin-bottom: 8px; } /* ===== PAYMENT UI ===== */ .ql-gate-divider { display: flex; align-items: center; gap: 10px; margin: 16px 0; color: var(--ql-text-muted); font-size: 11px; } .ql-gate-divider::before, .ql-gate-divider::after { content: ''; flex: 1; height: 1px; background: var(--ql-border); } .ql-buy-btn { width: 100%; padding: 10px 16px; border: 1px solid var(--ql-accent); background: var(--ql-accent-subtle); color: var(--ql-accent); font-size: 13px; font-weight: 700; border-radius: var(--ql-radius-sm); cursor: pointer; transition: all var(--ql-transition); } .ql-buy-btn:hover { background: var(--ql-accent); color: #fff; box-shadow: 0 4px 16px var(--ql-accent-glow); } .ql-pay-section { padding: 0; } .ql-pay-title { font-size: 16px; font-weight: 800; color: var(--ql-text-primary); margin-bottom: 14px; text-align: center; letter-spacing: -0.02em; } .ql-packages-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; } .ql-pay-loading { text-align: center; color: var(--ql-text-muted); font-size: 12px; padding: 20px 0; } .ql-pkg-card { background: var(--ql-bg-surface); border: 1px solid var(--ql-border); border-radius: 14px; padding: 14px 16px; position: relative; transition: all var(--ql-transition); } .ql-pkg-card:hover { border-color: var(--ql-border-hover); } .ql-pkg-highlight { border-color: var(--ql-accent); background: var(--ql-accent-subtle); box-shadow: 0 0 20px var(--ql-accent-glow); } .ql-pkg-popular { position: absolute; top: -8px; right: 12px; background: var(--ql-gradient-primary); color: #fff; font-size: 9px; font-weight: 800; padding: 3px 10px; border-radius: 6px; letter-spacing: 0.05em; } .ql-pkg-name { font-size: 13px; font-weight: 700; color: var(--ql-text-primary); margin-bottom: 4px; } .ql-pkg-price { font-size: 22px; font-weight: 800; color: var(--ql-accent); margin-bottom: 2px; letter-spacing: -0.03em; } .ql-pkg-price span { font-size: 12px; font-weight: 600; color: var(--ql-text-muted); } .ql-pkg-mzn { font-size: 11px; font-weight: 600; color: var(--ql-accent); opacity: 0.85; margin: -2px 0 6px; } .ql-pkg-mzn span { font-weight: 500; color: var(--ql-text-muted); margin-left: 4px; } .ql-pay-divider { display: flex; align-items: center; gap: 8px; margin: 14px 0 10px; } .ql-pay-divider::before, .ql-pay-divider::after { content: ""; flex: 1; height: 1px; background: var(--ql-border); } .ql-pay-divider span { font-size: 10px; font-weight: 700; color: var(--ql-text-muted); text-transform: uppercase; letter-spacing: 0.08em; white-space: nowrap; } .ql-pkg-brl .ql-pkg-price { color: #16a34a; } #ql-floating.ql-dark .ql-pkg-brl .ql-pkg-price { color: #4ade80; } .ql-pkg-duration { font-size: 11px; color: var(--ql-text-secondary); margin-bottom: 8px; } .ql-pkg-features { list-style: none; padding: 0; margin: 0 0 10px; } .ql-pkg-features li { font-size: 11px; color: var(--ql-text-secondary); padding: 2px 0; } .ql-pkg-features li::before { content: '✓ '; color: var(--ql-success); font-weight: 700; } .ql-pkg-select-btn { width: 100%; padding: 8px; border: none; border-radius: var(--ql-radius-xs); background: var(--ql-bg-hover); color: var(--ql-text-primary); font-size: 12px; font-weight: 700; cursor: pointer; transition: all var(--ql-transition); } .ql-pkg-select-btn:hover { background: var(--ql-accent); color: #fff; } .ql-selected-pkg { font-size: 12px; color: var(--ql-text-primary); padding: 10px 12px; background: var(--ql-accent-subtle); border: 1px solid var(--ql-border-hover); border-radius: var(--ql-radius-xs); margin-bottom: 14px; } .ql-pay-field { margin-bottom: 12px; } .ql-pay-field label { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ql-text-muted); margin-bottom: 6px; } .ql-pay-field input { width: 100%; padding: 10px 12px; background: var(--ql-bg); border: 1px solid var(--ql-border); border-radius: var(--ql-radius-xs); color: var(--ql-text-primary); font-size: 13px; font-family: inherit; outline: none; transition: border-color var(--ql-transition); } .ql-pay-field input:focus { border-color: var(--ql-accent); box-shadow: 0 0 0 3px var(--ql-accent-subtle); } .ql-pay-hint { font-size: 10px; color: var(--ql-text-muted); margin-top: 4px; display: block; } .ql-pay-methods { display: flex; gap: 8px; } .ql-method-btn { flex: 1; padding: 10px; border: 1px solid var(--ql-border); background: var(--ql-bg); color: var(--ql-text-secondary); border-radius: var(--ql-radius-xs); font-size: 12px; font-weight: 700; cursor: pointer; transition: all var(--ql-transition); display: flex; align-items: center; justify-content: center; gap: 6px; font-family: inherit; } .ql-method-btn:hover { border-color: var(--ql-border-hover); background: var(--ql-bg-hover); } .ql-method-btn.ql-method-active { border-color: var(--ql-accent); background: var(--ql-accent-subtle); color: var(--ql-accent); } .ql-confirm-pay-btn { width: 100%; padding: 12px; border: none; border-radius: var(--ql-radius-sm); background: var(--ql-gradient-primary); color: #fff; font-size: 14px; font-weight: 800; cursor: pointer; transition: all var(--ql-transition); box-shadow: 0 4px 16px var(--ql-accent-glow); font-family: inherit; } .ql-confirm-pay-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 24px var(--ql-accent-glow); } .ql-confirm-pay-btn:disabled { opacity: 0.7; cursor: not-allowed; transform: none; } .ql-pay-log { margin-top: 10px; font-size: 11px; font-weight: 600; padding: 8px 10px; border-radius: var(--ql-radius-xs); display: none; } .ql-pay-log.ql-pay-error { display: block; background: var(--ql-danger-bg); color: var(--ql-danger); border: 1px solid rgba(248,113,113,0.2); } .ql-pay-log.ql-pay-success { display: block; background: var(--ql-success-bg); color: var(--ql-success); border: 1px solid rgba(52,211,153,0.2); } .ql-pay-log.ql-pay-info { display: block; background: var(--ql-accent-subtle); color: var(--ql-accent); border: 1px solid var(--ql-border-hover); } /* ===== FILE ATTACHMENT ===== */ .ql-attach-bar { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; } .ql-attach-btn { width: 34px; height: 34px; border: 1px dashed var(--ql-border); background: var(--ql-bg-surface); border-radius: var(--ql-radius-xs); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all var(--ql-transition); color: var(--ql-text-muted); flex-shrink: 0; } .ql-attach-btn:hover { background: var(--ql-accent-subtle); border-color: var(--ql-border-hover); color: var(--ql-accent); } .ql-attach-count { font-size: 10px; color: var(--ql-text-muted); font-weight: 500; } .ql-attach-preview { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; max-height: 120px; overflow-y: auto; } .ql-attach-item { position: relative; display: flex; align-items: center; gap: 6px; padding: 5px 8px; background: var(--ql-bg-surface); border: 1px solid var(--ql-border); border-radius: var(--ql-radius-xs); font-size: 10px; color: var(--ql-text-secondary); max-width: 180px; animation: ql-fade-in 0.2s ease; } @keyframes ql-fade-in { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } .ql-attach-thumb { width: 28px; height: 28px; border-radius: 4px; object-fit: cover; flex-shrink: 0; } .ql-attach-icon { width: 28px; height: 28px; border-radius: 4px; background: var(--ql-bg-hover); display: flex; align-items: center; justify-content: center; font-size: 14px; flex-shrink: 0; } .ql-attach-info { display: flex; flex-direction: column; min-width: 0; } .ql-attach-name { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100px; color: var(--ql-text-primary); } .ql-attach-size { font-size: 9px; color: var(--ql-text-muted); } .ql-attach-remove { position: absolute; top: -4px; right: -4px; width: 16px; height: 16px; border-radius: 50%; background: var(--ql-danger); color: #fff; border: none; cursor: pointer; font-size: 9px; display: flex; align-items: center; justify-content: center; line-height: 1; opacity: 0; transition: opacity var(--ql-transition); } .ql-attach-item:hover .ql-attach-remove { opacity: 1; } .ql-attach-uploading { opacity: 0.6; } .ql-attach-uploading::after { content: ''; position: absolute; bottom: 0; left: 0; height: 2px; background: var(--ql-accent); border-radius: 2px; animation: ql-upload-progress 1.5s ease-in-out infinite; } @keyframes ql-upload-progress { 0% { width: 0; } 50% { width: 70%; } 100% { width: 100%; } } /* Watermark Removal Button */ .ql-watermark-btn { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; padding: 10px 16px; margin-top: 8px; border: 1px solid rgba(248,113,113,0.2); border-radius: var(--ql-radius-sm); background: var(--ql-danger-bg); color: #f87171; font-size: 12px; font-weight: 600; font-family: inherit; cursor: pointer; transition: all var(--ql-transition); } .ql-watermark-btn:hover { background: var(--ql-danger-bg); border-color: rgba(248,113,113,0.35); box-shadow: 0 0 20px -4px rgba(248,113,113,0.2); transform: translateY(-1px); } .ql-watermark-btn:active { transform: scale(0.98); } .ql-watermark-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; } /* ===== SHIELD MODE BUTTON ===== */ .ql-shield-btn { display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%; padding: 10px 16px; margin-top: 6px; border: 1px solid var(--ql-border-hover); border-radius: var(--ql-radius-sm); background: var(--ql-accent); color: var(--ql-accent); font-size: 12px; font-weight: 600; font-family: inherit; cursor: pointer; transition: all var(--ql-transition); } .ql-shield-btn:hover { background: var(--ql-accent); border-color: var(--ql-border-hover); box-shadow: 0 0 20px -4px var(--ql-border-hover); transform: translateY(-1px); } .ql-shield-btn:active { transform: scale(0.98); } .ql-shield-btn.ql-shield-active { background: var(--ql-success-bg); border-color: rgba(52,211,153,0.3); color: #34d399; } .ql-shield-btn.ql-shield-active:hover { background: var(--ql-success-bg); border-color: rgba(52,211,153,0.45); box-shadow: 0 0 20px -4px rgba(52,211,153,0.2); } /* ===== SHIELD OVERLAY (injected on Lovable chat input) ===== */ .ql-shield-overlay { position: absolute; inset: 0; z-index: 999999; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; border-radius: 24px; background: rgba(10,10,11,0.88); backdrop-filter: blur(8px); border: 1.5px solid var(--ql-border-hover); box-shadow: 0 0 40px -8px var(--ql-accent-glow), inset 0 0 60px -20px var(--ql-accent-subtle); cursor: not-allowed; animation: ql-shield-pulse 2.5s ease-in-out infinite; pointer-events: all; } .ql-shield-overlay svg { width: 32px; height: 32px; stroke: var(--ql-accent); filter: drop-shadow(0 0 12px var(--ql-accent-glow)); animation: ql-shield-icon-float 3s ease-in-out infinite; } .ql-shield-overlay-text { color: var(--ql-accent-hover); font-size: 13px; font-weight: 600; font-family: var(--ql-font); text-align: center; letter-spacing: 0.02em; } .ql-shield-overlay-sub { color: var(--ql-text-muted); font-size: 10px; font-family: var(--ql-font); } @keyframes ql-shield-pulse { 0%, 100% { border-color: var(--ql-border-hover); box-shadow: 0 0 40px -8px var(--ql-accent-glow); } 50% { border-color: var(--ql-accent-glow); box-shadow: 0 0 60px -8px var(--ql-border-hover); } } @keyframes ql-shield-icon-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } } /* ===== TABS SYSTEM (Floating Popup) ===== */ .ql-tabs { display: flex; gap: 4px; margin-bottom: 10px; padding: 3px; background: var(--ql-bg-surface); border-radius: var(--ql-radius-sm); border: 1px solid var(--ql-border); } .ql-tab { flex: 1; display: flex; align-items: center; justify-content: center; gap: 5px; padding: 7px 10px; border: none; border-radius: 7px; background: transparent; color: var(--ql-text-muted); font-size: 11px; font-weight: 600; cursor: pointer; font-family: inherit; transition: all var(--ql-transition); } .ql-tab:hover { background: rgba(255,255,255,0.04); color: var(--ql-text-secondary); } .ql-tab.ql-tab-active { background: var(--ql-accent-subtle); color: var(--ql-accent); border: 1px solid var(--ql-border-hover); } .ql-tab-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--ql-accent); color: #fff; font-size: 9px; font-weight: 700; } /* ===== CHAT HISTORY (Floating Popup) ===== */ .ql-chat-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 20px; text-align: center; } .ql-chat-messages { max-height: 280px; overflow-y: auto; padding: 4px 0; } .ql-chat-bubble { padding: 10px 12px; margin: 6px 0; border-radius: var(--ql-radius-sm); background: var(--ql-bg-surface); border: 1px solid var(--ql-border); color: var(--ql-text-primary); font-size: 11px; line-height: 1.5; word-break: break-word; transition: border-color var(--ql-transition); } .ql-chat-bubble:hover { border-color: var(--ql-border-hover); } .ql-chat-meta { display: flex; align-items: center; gap: 8px; margin-top: 6px; font-size: 9px; } .ql-chat-status-ok { color: var(--ql-success); } .ql-chat-status-err { color: var(--ql-danger); } .ql-chat-time { color: var(--ql-text-muted); } .ql-chat-date-divider { display: flex; align-items: center; gap: 8px; margin: 8px 0; } .ql-chat-date-divider::before, .ql-chat-date-divider::after { content: ''; flex: 1; height: 1px; background: var(--ql-border); } .ql-chat-date-label { font-size: 9px; font-weight: 700; color: var(--ql-text-muted); text-transform: uppercase; letter-spacing: 0.08em; padding: 3px 10px; background: var(--ql-bg-surface); border: 1px solid var(--ql-border); border-radius: 10px; white-space: nowrap; } .ql-chat-actions { display: flex; align-items: center; gap: 6px; padding: 10px 4px 0; border-top: 1px solid var(--ql-border); margin-top: 8px; } .ql-chat-count { font-size: 10px; color: var(--ql-text-muted); font-weight: 500; } .ql-chat-clear { flex: 1; padding: 8px; border: 1px solid rgba(248,113,113,0.2); border-radius: var(--ql-radius-sm); background: rgba(248,113,113,0.05); color: var(--ql-danger); font-size: 11px; font-weight: 600; cursor: pointer; font-family: inherit; transition: all var(--ql-transition); text-align: center; } .ql-chat-clear:hover { background: rgba(248,113,113,0.12); border-color: rgba(248,113,113,0.35); } /* ===== NATIVE CHAT MODE ("Use Native Chat") ===== */ .ql-native-chat-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 10px 16px; margin-top: 6px; border: 1px solid var(--ql-border); border-radius: var(--ql-radius-sm); background: var(--ql-accent-subtle); color: var(--ql-accent); font-size: 12px; font-weight: 600; cursor: pointer; font-family: inherit; transition: all var(--ql-transition); } .ql-native-chat-btn:hover { background: var(--ql-accent-glow); border-color: var(--ql-accent); } .ql-native-badge { position: absolute; top: -10px; right: 12px; z-index: 99999; display: flex; align-items: center; gap: 4px; background: var(--ql-gradient-primary); color: #fff; font-size: 10px; font-weight: 700; font-family: var(--ql-font); padding: 3px 10px; border-radius: 12px; box-shadow: 0 2px 12px var(--ql-accent-glow); letter-spacing: 0.3px; pointer-events: none; animation: ql-badge-pulse 2s ease-in-out infinite; } @keyframes ql-badge-pulse { 0%, 100% { box-shadow: 0 2px 12px var(--ql-accent-glow); } 50% { box-shadow: 0 2px 20px var(--ql-accent-glow); } } .ql-native-return-btn { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 8px auto 0; padding: 6px 18px; border: 1px solid var(--ql-border-hover); border-radius: 20px; background: var(--ql-accent-subtle); color: var(--ql-accent-hover); font-size: 12px; font-weight: 600; font-family: var(--ql-font); cursor: pointer; transition: all 0.2s ease; z-index: 99999; } .ql-native-return-btn:hover { background: var(--ql-border-hover); border-color: var(--ql-accent-glow); transform: translateY(-1px); } @keyframes ql-send-blink { 0% { background-color: var(--ql-accent); } 25% { background-color: #ef4444; } 50% { background-color: #22c55e; } 75% { background-color: #eab308; } 100% { background-color: var(--ql-accent); } } #chatinput-send-message-button.ql-native-send-active { animation: ql-send-blink 2s linear infinite !important; opacity: 1 !important; cursor: pointer !important; pointer-events: auto !important; } #chatinput-send-message-button.ql-native-send-active:disabled { opacity: 1 !important; cursor: pointer !important; pointer-events: auto !important; } #chatinput-send-message-button.ql-native-sending { animation: ql-sending-pulse 0.8s ease-in-out infinite !important; opacity: 1 !important; pointer-events: none !important; } @keyframes ql-sending-pulse { 0%, 100% { background-color: var(--ql-accent-hover) !important; transform: scale(1); } 50% { background-color: var(--ql-accent) !important; transform: scale(1.15); } } .ql-native-sending-overlay { position: fixed; bottom: 90px; left: 50%; transform: translateX(-50%); z-index: 9999999999; display: flex; align-items: center; gap: 8px; padding: 10px 20px; border-radius: 12px; background: var(--ql-gradient-primary); color: #fff; font-size: 13px; font-weight: 600; font-family: 'Segoe UI', sans-serif; box-shadow: 0 4px 20px var(--ql-accent-glow); animation: ql-sending-fadein 0.3s ease; } .ql-native-sending-overlay .ql-spinner { width: 14px; height: 14px; border: 2px solid rgba(255,255,255,0.3); border-top-color: #fff; border-radius: 50%; animation: ql-spin 0.6s linear infinite; } @keyframes ql-spin { to { transform: rotate(360deg); } } @keyframes ql-sending-fadein { from { opacity:0; transform: translateX(-50%) translateY(10px); } to { opacity:1; transform: translateX(-50%) translateY(0); } } .ql-native-toast { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%) translateY(20px); z-index: 9999999999; padding: 10px 20px; border-radius: 12px; font-size: 13px; font-weight: 600; font-family: var(--ql-font); opacity: 0; transition: all 0.3s ease; pointer-events: none; white-space: nowrap; } .ql-native-toast-visible { opacity: 1; transform: translateX(-50%) translateY(0); } .ql-native-toast-success { background: rgba(34, 197, 94, 0.15); color: #34d399; border: 1px solid rgba(34, 197, 94, 0.3); backdrop-filter: blur(12px); } .ql-native-toast-error { background: rgba(248, 113, 113, 0.15); color: #f87171; border: 1px solid rgba(248, 113, 113, 0.3); backdrop-filter: blur(12px); } /* ===== DRAG & DROP OVERLAY ===== */ .ql-drag-overlay { position: absolute; inset: 0; z-index: 99999; background: var(--ql-accent-subtle); backdrop-filter: blur(6px); border: 2px dashed var(--ql-border-hover); border-radius: 16px; display: flex; align-items: center; justify-content: center; pointer-events: none; } .ql-drag-overlay-inner { font-family: var(--ql-font); font-size: 14px; font-weight: 600; color: var(--ql-accent-hover); background: rgba(10, 10, 11, 0.85); padding: 12px 24px; border-radius: 10px; border: 1px solid var(--ql-border-hover); } /* ===== DIGITAL EMPIRE FUTURISTIC AMBIENT ===== */ #ql-floating:not(.ql-light) { background: var(--ql-bg-elevated); border-color: var(--ql-border); box-shadow: var(--ql-shadow), 0 0 0 1px rgba(37, 99, 235, 0.04), 0 0 60px rgba(37, 99, 235, 0.02); } #ql-floating:not(.ql-light)::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .06; background: transparent; z-index: 0; } @keyframes ql-master-wave { from { transform: translate3d(-8px,-4px,0) scale(1); } to { transform: translate3d(8px,4px,0) scale(1.02); } } .ql-brand, .ql-header-left { display:flex; align-items:center; gap:8px; position:relative; z-index:1; } .ql-brand-logo, .ql-title-logo { width:24px; height:24px; border-radius:50%; object-fit:cover; box-shadow:0 0 18px var(--ql-accent-glow), 0 0 40px rgba(37, 99, 235, 0.1); } .ql-title-logo { width:28px; height:28px; } .ql-license-gate, .ql-profile-card, .ql-template-card, .ql-input-area, .ql-notif-panel, .ql-history-panel { background: var(--ql-bg-elevated); border-color: var(--ql-border); position: relative; z-index: 1; } #ql-validate-btn, #ql-send-btn, .ql-buy-btn, .ql-primary-btn { background: var(--ql-gradient-primary) !important; color:#ffffff !important; box-shadow: 0 14px 36px var(--ql-accent-glow), 0 0 20px rgba(37, 99, 235, 0.1); } /* ===== LIGHT MODE OVERRIDES ===== */ #ql-floating.ql-light .ql-license-gate, #ql-floating.ql-light .ql-profile-card, #ql-floating.ql-light .ql-template-card, #ql-floating.ql-light .ql-input-area, #ql-floating.ql-light .ql-notif-panel, #ql-floating.ql-light .ql-history-panel { background: var(--ql-bg-elevated); border-color: var(--ql-border); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02); } #ql-floating.ql-light textarea { background: #ffffff; border-color: rgba(0, 0, 0, 0.08); color: var(--ql-text-primary); box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.02); } #ql-floating.ql-light textarea:focus { background: #ffffff; border-color: var(--ql-accent); } #ql-floating.ql-light .ql-tabs { background: rgba(0, 0, 0, 0.03); border-color: rgba(0, 0, 0, 0.05); } #ql-floating.ql-light .ql-tab:hover { background: rgba(0, 0, 0, 0.02); } #ql-floating.ql-light .ql-tab.ql-tab-active { background: rgba(79, 70, 229, 0.08); color: var(--ql-accent); border: 1px solid rgba(79, 70, 229, 0.15); } #ql-floating.ql-light .ql-chip { background: #ffffff; } #ql-floating.ql-light .ql-chip:hover { background: var(--ql-accent-subtle); border-color: var(--ql-accent); } #ql-floating.ql-light .ql-footer { background: rgba(0, 0, 0, 0.02); border-top-color: rgba(0, 0, 0, 0.05); } #ql-floating.ql-light .ql-chat-bubble { border-color: rgba(255, 255, 255, 0.1); } #ql-floating.ql-light .ql-chat-date-label { background: #ffffff; border-color: rgba(0, 0, 0, 0.05); } /* ===== Saqlain layout polish: brand subtitle, community popup, high-contrast buttons ===== */ .ql-brand-copy, .ql-title-stack { display:flex; flex-direction:column; line-height:1.05; min-width:0; } .ql-brand-name { color:var(--ql-accent); font-weight:800; } .ql-brand-subtitle, .ql-title-stack small { margin-top:3px; font-size:9px; font-weight:800; letter-spacing:0.18em; text-transform:uppercase; color:var(--ql-text-secondary); opacity:0.95; } .ql-title-stack small { display:block; } .ql-community-overlay { display:flex; align-items:center; justify-content:center; position:fixed; inset:0; width:100%; height:100%; background:rgba(0,0,0,0.72); z-index:2147483647; font-family:var(--ql-font); backdrop-filter:blur(6px); } .ql-community-modal { position:relative; width:min(360px,calc(100vw - 32px)); background:var(--ql-bg-elevated); border:1px solid var(--ql-border-hover); border-radius:var(--ql-radius); padding:26px; text-align:center; box-shadow:var(--ql-shadow-hover); color:var(--ql-text-primary); } .ql-community-close { position:absolute; top:10px; right:12px; border:1px solid var(--ql-border); background:var(--ql-bg-surface); color:var(--ql-text-primary); width:28px; height:28px; border-radius:50%; font-size:18px; line-height:1; cursor:pointer; } .ql-community-logo { width:58px; height:58px; margin:0 auto 10px; display:flex; align-items:center; justify-content:center; border-radius:18px; background:var(--ql-accent); color:#fff; font-size:30px; } .ql-community-title { margin:0; color:var(--ql-text-primary); font-size:18px; font-weight:800; } .ql-community-subtitle { margin-top:4px; margin-bottom:10px; color:var(--ql-accent); font-size:10px; font-weight:900; letter-spacing:0.24em; text-transform:uppercase; } .ql-community-text { color:var(--ql-text-secondary); margin:0 0 18px; line-height:1.5; font-size:13px; } .ql-community-actions { display:flex; flex-direction:column; gap:10px; width:100%; } .ql-community-btn { width:100%; display:flex; align-items:center; justify-content:center; gap:8px; padding:12px 16px; border-radius:var(--ql-radius-sm); border:1px solid transparent; text-decoration:none; font-size:13px; font-weight:800; font-family:inherit; cursor:pointer; transition:all var(--ql-transition); } .ql-community-btn-wa { background:#16a34a !important; color:#ffffff !important; border-color:#22c55e !important; } .ql-community-btn-yt { background:#dc2626 !important; color:#ffffff !important; border-color:#ef4444 !important; } .ql-community-btn:hover { transform:translateY(-1px); filter:brightness(1.08); } .ql-community-later { margin-top:14px; background:transparent; border:none; color:var(--ql-text-secondary); text-decoration:underline; cursor:pointer; font-size:12px; font-family:inherit; } .ql-send-btn, #ql-validate-btn, .ql-buy-btn, .ql-primary-btn, .ql-confirm-pay-btn, .ql-alert-ok-btn { background:var(--ql-accent) !important; color:#ffffff !important; } .ql-icon-btn, .ql-tool-btn, .ql-attach-btn, .ql-support-link, .ql-method-btn { color:var(--ql-text-primary) !important; } .ql-profile-card { background:var(--ql-bg-elevated) !important; border-color:var(--ql-border) !important; } .ql-watermark-btn { background:#991b1b !important; border-color:#dc2626 !important; color:#ffffff !important; } .ql-watermark-btn:hover { background:#b91c1c !important; color:#ffffff !important; } .ql-shield-btn, .ql-native-chat-btn, .sp-btn-feature { background:var(--ql-bg-surface) !important; border-color:var(--ql-border) !important; color:var(--ql-text-primary) !important; } .ql-shield-btn:hover, .ql-native-chat-btn:hover, .sp-btn-feature:hover { background:var(--ql-bg-hover) !important; border-color:var(--ql-accent) !important; color:#ffffff !important; } .ql-shield-btn.ql-shield-active { background:#065f46 !important; border-color:#10b981 !important; color:#ffffff !important; } .ql-tab.ql-tab-active { background:var(--ql-accent) !important; color:#ffffff !important; }