/* App Launcher (Phase 1) — nút lưới ⊞ + drawer "Tất cả ứng dụng" kiểu MISA */
.app-launcher-btn { width: 30px; height: 30px; border: none; background: transparent; color: #cbd5e1; cursor: pointer; border-radius: 7px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.app-launcher-btn:hover { background: #374151; color: #fff; }
.app-launcher-btn .alb-dots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5px; }
.app-launcher-btn .alb-dots i { width: 3.5px; height: 3.5px; border-radius: 50%; background: currentColor; display: block; }

.alb-overlay { position: fixed; inset: 0; z-index: 3000; background: rgba(15, 23, 42, .34); display: flex; }
.alb-overlay[hidden] { display: none; }
.alb-panel { background: #fff; width: min(440px, 93vw); height: 100%; box-shadow: 4px 0 28px rgba(15, 23, 42, .22); display: flex; flex-direction: column; overflow: hidden; animation: albSlide .18s ease; }
@keyframes albSlide { from { transform: translateX(-32px); opacity: .4; } to { transform: translateX(0); opacity: 1; } }
.alb-head { display: flex; gap: 10px; align-items: center; padding: 14px 16px; border-bottom: 1px solid #eef2f7; flex-shrink: 0; }
.alb-x { width: 36px; height: 36px; border: none; background: #f1f5f9; border-radius: 50%; cursor: pointer; font-size: 15px; color: #475569; flex-shrink: 0; }
.alb-x:hover { background: #e2e8f0; }
.alb-search { flex: 1; padding: 9px 14px; border: 1px solid #e2e8f0; border-radius: 10px; font-size: 14px; outline: none; }
.alb-search:focus { border-color: #6366f1; }
.alb-body { padding: 16px; overflow-y: auto; flex: 1; }
.alb-group { margin-bottom: 20px; }
.alb-gh { font-size: 11.5px; font-weight: 800; color: #64748b; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 10px; }
.alb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(98px, 1fr)); gap: 10px; }
.alb-card { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 15px 8px; border: 1px solid #eef2f7; border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .12s, box-shadow .12s, transform .12s; }
.alb-card:hover { border-color: #c7d2fe; box-shadow: 0 6px 16px rgba(15, 23, 42, .09); transform: translateY(-2px); }
.alb-ic { font-size: 27px; line-height: 1; }
.alb-lb { font-size: 12px; color: #1e293b; font-weight: 600; text-align: center; line-height: 1.25; }
.alb-empty { color: #94a3b8; text-align: center; padding: 36px 20px; font-size: 14px; }
@media (max-width: 520px) { .alb-panel { width: 100vw; } }
