/* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); border-radius: 4px; } ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.1); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.15); } /* Animation for status changes */ @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } .status-pulse { animation: pulse 1.5s infinite; } /* Custom transitions */ .transition-smooth { transition: all 0.2s ease-in-out; } /* Custom glow effect */ .glow-indigo { box-shadow: 0 0 10px rgba(99, 102, 241, 0.3); } .glow-emerald { box-shadow: 0 0 10px rgba(16, 185, 129, 0.3); } /* Custom tooltip */ [data-tooltip] { position: relative; } [data-tooltip]:hover::after { content: attr(data-tooltip); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.8); color: white; padding: 4px 8px; border-radius: 4px; font-size: 12px; white-space: nowrap; z-index: 100; } /* Custom code editor styles */ .code-editor { font-family: 'Fira Code', 'Consolas', 'Monaco', monospace; tab-size: 2; } /* Custom iframe styling */ .preview-frame { background-color: white; } /* Algorithm 5 - Enterprise defense mode */ .locked * { pointer-events: none; opacity: 0.6; } .locked { position: relative; } .locked::after { content: "⚠️ SYSTÈME VERROUILLÉ - BACKEND OFFLINE"; position: fixed; top: 0; left: 0; right: 0; background: rgba(239, 68, 68, 0.9); color: white; padding: 1rem; text-align: center; font-weight: bold; z-index: 1000; }