/* SPDX-License-Identifier: AGPL-3.0-or-later */ :host { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: var(--z-sheet); pointer-events: none; } .overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--color-backdrop); opacity: 0; transition: opacity var(--transition-fast); pointer-events: none; } :host([open]) .overlay { opacity: 1; pointer-events: auto; } .sheet { position: absolute; top: 0; left: 0; right: 0; max-height: 70vh; background: var(--bg-menu); border-radius: 0 0 var(--radius-lg) var(--radius-lg); transform: translateY(-100%); transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1); pointer-events: auto; box-shadow: 0 4px 20px var(--color-shadow); display: flex; flex-direction: column; overflow: hidden; } :host([open]) .sheet { transform: translateY(0); } .sheet-header { display: flex; align-items: center; justify-content: space-between; padding: var(--spacing-md); border-bottom: 1px solid var(--color-border); } .status-info { display: flex; align-items: center; gap: var(--spacing-sm); font-size: var(--font-size-sm); color: var(--color-text-menu); } .tab-count { background: var(--color-primary); color: var(--color-text-on-header); padding: 2px 8px; border-radius: 12px; font-size: var(--font-size-xs); font-weight: var(--font-weight-bold); } .clear-all-button { background: transparent; border: none; color: var(--color-primary); font-size: var(--font-size-sm); cursor: pointer; padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--radius-sm); transition: background var(--transition-fast); } .clear-all-button:hover { background: var(--bg-hover); } .clear-all-button:disabled { opacity: 0.5; cursor: not-allowed; } .notifications-list { flex: 1; overflow-y: auto; padding: var(--spacing-sm); } .notification-item { display: flex; align-items: flex-start; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); background: var(--bg-webview); border-radius: var(--radius-md); margin-bottom: var(--spacing-sm); cursor: pointer; transition: background var(--transition-fast), transform var(--transition-fast); position: relative; } .notification-item:hover { background: var(--color-menu-item-hover); } .notification-item.swiping { transition: none; } .notification-icon { width: 40px; height: 40px; border-radius: var(--radius-sm); background: var(--bg-icon); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .notification-icon img { width: 24px; height: 24px; object-fit: contain; } .notification-icon lucide-icon { font-size: 20px; color: var(--color-primary); } .notification-content { flex: 1; min-width: 0; } .notification-title { font-weight: var(--font-weight-bold); font-size: var(--font-size-sm); color: var(--color-text-menu); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .notification-body { font-size: var(--font-size-xs); color: var(--color-text-secondary); margin-top: 2px; overflow: hidden; } .notification-time { font-size: var(--font-size-xs); color: var(--color-text-tertiary); margin-top: var(--spacing-xs); } .dismiss-button { background: transparent; border: none; color: var(--color-text-tertiary); padding: var(--spacing-xs); cursor: pointer; opacity: 0; transition: opacity var(--transition-fast); } .notification-item:hover .dismiss-button { opacity: 1; } .empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: var(--spacing-lg); color: var(--color-text-tertiary); } .empty-state lucide-icon { font-size: 48px; margin-bottom: var(--spacing-md); opacity: var(--opacity-muted); } .empty-state-text { font-size: var(--font-size-sm); }