/** * 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: var(--shadow-xl); 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: var(--slate-3); border-radius: var(--radius-card); box-shadow: 0 24px 64px var(--overlay-strong), 0 0 0 1px var(--border-subtle); 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 var(--border-default); } .cp-search-icon { font-size: var(--text-base); flex-shrink: 0; opacity: 0.6; } .cp-input { flex: 1; background: transparent; border: none; outline: none; color: var(--slate-12); font-size: 15px; font-family: inherit; line-height: 1.5; } .cp-input::placeholder { color: var(--slate-9); } .cp-esc-hint { font-size: 11px; color: var(--slate-7); background: var(--highlight-subtle); border-radius: var(--radius-control); padding: 2px 7px; flex-shrink: 0; font-family: var(--font-mono); } /* ===== 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: var(--bg-active); border-radius: var(--radius-control); } /* Group header */ .cp-group-header { padding: 6px 16px 4px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--slate-7); } /* Empty state */ .cp-empty { padding: 32px 16px; text-align: center; color: var(--slate-7); font-size: var(--text-sm); } /* Result item */ .cp-item { display: flex; align-items: center; gap: 10px; padding: 9px 16px; cursor: pointer; transition: background 0.1s; } .cp-item:hover { background: var(--border-subtle); } .cp-item-selected { background: var(--row-selected) !important; } .cp-item-icon { font-size: var(--text-base); 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: var(--text-sm); font-weight: 500; color: var(--slate-12); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cp-item-secondary { font-size: var(--text-xs); color: var(--slate-9); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .cp-item-arrow { font-size: 18px; color: var(--slate-7); flex-shrink: 0; line-height: 1; } .cp-item-selected .cp-item-arrow { color: var(--blue-9); } /* ===== 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; } }