/* Lumina System — Custom CSS */ /* Alpine cloak — hide until initialized */ [x-cloak] { display: none !important; } /* Dot grid background */ .dot-grid { background-image: radial-gradient(#e2e8f0 1.5px, transparent 1.5px); background-size: 16px 16px; } /* Glass panels */ .glass-panel { background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); } .glass-sidebar { background: rgba(255, 255, 255, 0.75); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } /* Animations */ @keyframes fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } } @keyframes scale-up { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } } @keyframes slide-in { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: translateX(0); } } @keyframes cursor-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } .animate-fade-in { animation: fade-in 0.3s ease-out; } .animate-scale-up { animation: scale-up 0.2s ease-out; } .animate-slide-in { animation: slide-in 0.3s ease-out; } .terminal-cursor { display: inline-block; width: 8px; height: 18px; background: currentColor; animation: cursor-blink 1s infinite; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #c2c6d8; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #a0a4b8; } .no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; } .no-scrollbar::-webkit-scrollbar { display: none; } /* Modal backdrop */ .modal-backdrop { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(4px); display: flex; align-items: center; justify-content: center; z-index: 50; } .modal-content { background: white; border-radius: 16px; padding: 24px; width: 100%; max-width: 480px; box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15); animation: scale-up 0.2s ease-out; } /* Toast */ .toast { position: fixed; bottom: 24px; right: 24px; background: #191c1e; color: white; padding: 12px 20px; border-radius: 10px; font-size: 14px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2); z-index: 100; animation: slide-in 0.3s ease-out; } /* Toggle switch */ .toggle-switch { position: relative; width: 44px; height: 24px; border-radius: 12px; background: #c2c6d8; transition: background 0.2s; cursor: pointer; border: none; padding: 0; } .toggle-switch.active { background: #0050cb; } .toggle-knob { position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; border-radius: 50%; background: white; transition: transform 0.2s; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); } .toggle-switch.active .toggle-knob { transform: translateX(20px); } /* File table */ .file-table-row { display: grid; grid-template-columns: 1fr 80px 120px; gap: 8px; padding: 8px 12px; border-radius: 8px; cursor: pointer; transition: background 0.15s; } .file-table-row:hover { background: #f1f4f9; } /* xterm.js container */ .xterm { padding: 8px 0; } .xterm-viewport::-webkit-scrollbar { width: 6px; } .xterm-viewport::-webkit-scrollbar-thumb { background: #c2c6d8; border-radius: 3px; } /* Strength badges */ .strength-badge-secure { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 6px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; background: #006e2f/15; color: #006e2f; } .strength-badge-moderate { background: #7e23cc/15; color: #7e23cc; } .strength-badge-weak { background: #b3261e/15; color: #b3261e; }