/** * Spaxel Dashboard — Command Palette Styles (Component 34) * * Activated by Ctrl+K / Cmd+K in expert mode only. */ /* ===== Overlay backdrop ===== */ .cp-overlay { display: none; position: fixed; inset: 0; z-index: 9000; } .cp-overlay.cp-visible { display: block; } .cp-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.5); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); animation: cp-fade-in 0.12s ease-out; } @keyframes cp-fade-in { from { opacity: 0; } to { opacity: 1; } } /* ===== Container ===== */ .cp-container { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 600px; background: #1e293b; border-radius: 12px; box-shadow: 0 24px 64px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255,255,255,0.06); overflow: hidden; animation: cp-slide-in 0.14s ease-out; display: flex; flex-direction: column; } @keyframes cp-slide-in { from { opacity: 0; transform: translate(-50%, calc(-50% - 12px)); } to { opacity: 1; transform: translate(-50%, -50%); } } /* ===== Search row ===== */ .cp-search-row { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.07); } .cp-search-icon { font-size: 16px; flex-shrink: 0; opacity: 0.6; } .cp-input { flex: 1; background: transparent; border: none; outline: none; color: #f1f5f9; font-size: 15px; font-family: inherit; line-height: 1.5; } .cp-input::placeholder { color: #64748b; } .cp-esc-hint { font-size: 11px; color: #475569; background: rgba(255, 255, 255, 0.07); border-radius: 4px; padding: 2px 7px; flex-shrink: 0; font-family: monospace; } /* ===== Results list ===== */ .cp-results { list-style: none; margin: 0; padding: 6px 0; max-height: 360px; /* ~8 items */ overflow-y: auto; overflow-x: hidden; } .cp-results::-webkit-scrollbar { width: 6px; } .cp-results::-webkit-scrollbar-track { background: transparent; } .cp-results::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.12); border-radius: 3px; } /* Group header */ .cp-group-header { padding: 6px 16px 4px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: #475569; } /* Empty state */ .cp-empty { padding: 32px 16px; text-align: center; color: #475569; font-size: 14px; } /* Result item */ .cp-item { display: flex; align-items: center; gap: 10px; padding: 9px 16px; cursor: pointer; transition: background 0.1s; } .cp-item:hover { background: rgba(255, 255, 255, 0.04); } .cp-item-selected { background: rgba(59, 130, 246, 0.18) !important; /* #3b82f6 at 18% */ } .cp-item-icon { font-size: 16px; flex-shrink: 0; width: 20px; text-align: center; line-height: 1; } .cp-item-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; } .cp-item-label { font-size: 14px; font-weight: 500; color: #f1f5f9; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cp-item-secondary { font-size: 12px; color: #64748b; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cp-item-arrow { font-size: 18px; color: #334155; flex-shrink: 0; line-height: 1; } .cp-item-selected .cp-item-arrow { color: #3b82f6; } /* ===== Responsive ===== */ @media (max-width: 640px) { .cp-container { width: 96%; top: 12%; transform: translateX(-50%); } } /* ===== Reduced motion ===== */ @media (prefers-reduced-motion: reduce) { .cp-backdrop, .cp-container { animation: none; } }