Spaces:
Running
Running
| /* ── Notification Panel ────────────────────────────────────────────── */ | |
| .notif-trigger { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: 28px; | |
| height: 28px; | |
| background: none; | |
| border: 1px solid var(--color-border); | |
| border-radius: var(--radius-md); | |
| color: var(--color-fg-muted); | |
| cursor: pointer; | |
| transition: all 0.15s; | |
| padding: 0; | |
| flex-shrink: 0; | |
| } | |
| .notif-trigger:hover { | |
| color: var(--color-fg); | |
| background: rgba(255, 255, 255, 0.04); | |
| border-color: var(--color-border-strong); | |
| } | |
| .notif-trigger--has-items { | |
| color: var(--color-brand); | |
| border-color: var(--color-brand); | |
| } | |
| /* Badge count */ | |
| .notif-badge { | |
| position: absolute; | |
| top: -4px; | |
| right: -4px; | |
| min-width: 14px; | |
| height: 14px; | |
| background: var(--color-danger, #cc241d); | |
| color: #fff; | |
| font-size: 9px; | |
| font-weight: 700; | |
| font-family: var(--font-mono); | |
| border-radius: 7px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| padding: 0 3px; | |
| line-height: 1; | |
| pointer-events: none; | |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); | |
| } | |
| .notif-badge--warn { | |
| background: var(--color-warn, #d79921); | |
| } | |
| /* Dropdown panel */ | |
| .notif-panel { | |
| position: absolute; | |
| top: calc(100% + 6px); | |
| right: 0; | |
| width: 340px; | |
| max-height: 420px; | |
| overflow-y: auto; | |
| background: var(--color-bg-elev-1); | |
| border: 1px solid var(--color-border); | |
| border-radius: var(--radius-lg); | |
| box-shadow: var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, 0.4)); | |
| z-index: 9999; | |
| animation: notif-slide-in 0.15s ease-out; | |
| } | |
| @keyframes notif-slide-in { | |
| from { opacity: 0; transform: translateY(-6px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .notif-panel__header { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 10px 12px; | |
| border-bottom: 1px solid var(--color-border); | |
| } | |
| .notif-panel__title { | |
| font-size: var(--text-sm); | |
| font-weight: var(--weight-semibold); | |
| color: var(--color-fg); | |
| margin: 0; | |
| } | |
| .notif-panel__dismiss { | |
| font-size: var(--text-xs); | |
| color: var(--color-fg-subtle); | |
| background: none; | |
| border: none; | |
| cursor: pointer; | |
| padding: 2px 6px; | |
| border-radius: var(--radius-sm); | |
| } | |
| .notif-panel__dismiss:hover { | |
| color: var(--color-fg); | |
| background: rgba(255, 255, 255, 0.06); | |
| } | |
| /* Empty state */ | |
| .notif-panel__empty { | |
| padding: 24px 16px; | |
| text-align: center; | |
| color: var(--color-fg-muted); | |
| font-size: var(--text-sm); | |
| } | |
| .notif-panel__empty-icon { | |
| font-size: 1.5rem; | |
| margin-bottom: 6px; | |
| } | |
| /* Individual notification item */ | |
| .notif-item { | |
| padding: 10px 12px; | |
| border-bottom: 1px solid rgba(255, 255, 255, 0.04); | |
| display: flex; | |
| gap: 10px; | |
| align-items: flex-start; | |
| transition: background 0.1s; | |
| } | |
| .notif-item:last-child { | |
| border-bottom: none; | |
| } | |
| .notif-item:hover { | |
| background: rgba(255, 255, 255, 0.02); | |
| } | |
| /* Level indicators */ | |
| .notif-item__icon { | |
| flex-shrink: 0; | |
| width: 20px; | |
| height: 20px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| border-radius: 50%; | |
| font-size: 11px; | |
| margin-top: 1px; | |
| } | |
| .notif-item__icon--warn { | |
| background: rgba(215, 153, 33, 0.15); | |
| color: #d79921; | |
| } | |
| .notif-item__icon--error { | |
| background: rgba(204, 36, 29, 0.15); | |
| color: #cc241d; | |
| } | |
| .notif-item__icon--info { | |
| background: rgba(131, 165, 152, 0.15); | |
| color: #83a598; | |
| } | |
| .notif-item__body { | |
| flex: 1; | |
| min-width: 0; | |
| } | |
| .notif-item__title { | |
| font-size: var(--text-sm); | |
| font-weight: var(--weight-medium); | |
| color: var(--color-fg); | |
| margin: 0 0 2px; | |
| } | |
| .notif-item__message { | |
| font-size: var(--text-xs); | |
| color: var(--color-fg-muted); | |
| line-height: 1.5; | |
| margin: 0 0 6px; | |
| } | |
| /* Action button */ | |
| .notif-item__action { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| font-size: var(--text-xs); | |
| font-weight: var(--weight-medium); | |
| color: var(--color-brand); | |
| background: rgba(211, 134, 155, 0.1); | |
| border: 1px solid rgba(211, 134, 155, 0.2); | |
| border-radius: var(--radius-pill); | |
| padding: 3px 10px; | |
| cursor: pointer; | |
| transition: all 0.15s; | |
| } | |
| .notif-item__action:hover { | |
| background: rgba(211, 134, 155, 0.2); | |
| border-color: rgba(211, 134, 155, 0.4); | |
| } | |
| /* HF token input inline */ | |
| .notif-hf-input { | |
| display: flex; | |
| gap: 4px; | |
| margin-top: 6px; | |
| } | |
| .notif-hf-input input { | |
| flex: 1; | |
| background: var(--color-bg-elev-2); | |
| border: 1px solid var(--color-border); | |
| border-radius: var(--radius-md); | |
| color: var(--color-fg); | |
| font-size: var(--text-xs); | |
| font-family: var(--font-mono); | |
| padding: 4px 8px; | |
| } | |
| .notif-hf-input input:focus { | |
| border-color: var(--color-brand); | |
| outline: none; | |
| } | |
| .notif-hf-input button { | |
| background: var(--color-brand); | |
| color: #1d2021; | |
| border: none; | |
| border-radius: var(--radius-md); | |
| font-size: var(--text-xs); | |
| font-weight: var(--weight-semibold); | |
| padding: 4px 10px; | |
| cursor: pointer; | |
| transition: opacity 0.15s; | |
| white-space: nowrap; | |
| } | |
| .notif-hf-input button:hover { | |
| opacity: 0.85; | |
| } | |
| /* Scrollbar */ | |
| .notif-panel::-webkit-scrollbar { width: 5px; } | |
| .notif-panel::-webkit-scrollbar-thumb { | |
| background: rgba(255, 255, 255, 0.08); | |
| border-radius: 3px; | |
| } | |