:root { --bg-surface: #ffffff; --bg-surface-hover: #f1f5f9; --primary: #475569; --primary-hover: #1e293b; --text-main: #1f2937; --text-muted: #64748b; --border: #e2e8f0; --radius: 8px; --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --success: #10b981; --success-bg: #ecfdf5; --success-border: #a7f3d0; --danger: #ef4444; --danger-bg: #fef2f2; --danger-border: #fecaca; --warning: #f59e0b; --warning-bg: #fffbeb; --warning-border: #fde68a; --info: #3b82f6; --info-bg: #eff6ff; --info-border: #bfdbfe; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', system-ui, -apple-system, sans-serif; background: transparent; min-height: 100vh; color: var(--text-main); pointer-events: none; } .notification-container { position: fixed; top: 80px; right: 24px; z-index: 1000; width: 360px; pointer-events: auto; } .notification { background: var(--bg-surface); border: 1px solid var(--border); border-left: 4px solid var(--primary); border-radius: var(--radius); box-shadow: 0 4px 12px rgb(0 0 0 / 0.1), 0 2px 4px rgb(0 0 0 / 0.05); margin-bottom: 12px; padding: 1rem 1.25rem; width: 100%; transform: translateX(calc(100% + 24px)); transition: all 0.2s ease; position: relative; overflow: hidden; &.show { transform: translateX(0); } &.hide { transform: translateX(calc(100% + 24px)); opacity: 0; } &.success { background: var(--success-bg); border-color: var(--success-border); border-left-color: var(--success); .notification-title { color: #065f46; } .notification-message { color: #047857; } .notification-progress-bar { background: var(--success); } } &.danger { background: var(--danger-bg); border-color: var(--danger-border); border-left-color: var(--danger); .notification-title { color: #991b1b; } .notification-message { color: #b91c1c; } .notification-progress-bar { background: var(--danger); } } &.warning { background: var(--warning-bg); border-color: var(--warning-border); border-left-color: var(--warning); .notification-title { color: #92400e; } .notification-message { color: #b45309; } .notification-progress-bar { background: var(--warning); } } &.info { background: var(--info-bg); border-color: var(--info-border); border-left-color: var(--info); .notification-title { color: #1e40af; } .notification-message { color: #1d4ed8; } .notification-progress-bar { background: var(--info); } } } .notification-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.375rem; } .notification-title { font-weight: 600; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.025em; flex: 1; color: var(--primary-hover); } .notification-message { color: var(--text-muted); font-size: 0.875rem; line-height: 1.5; word-wrap: break-word; } .notification-progress { position: absolute; bottom: 0; left: 0; height: 3px; background: var(--bg-surface-hover); width: 100%; border-radius: 0 0 var(--radius) var(--radius); } .notification-progress-bar { height: 100%; width: 0%; transform-origin: left; border-radius: 0 0 var(--radius) var(--radius); transition: width linear; } @media (max-width: 768px) { .notification-container { left: 24px; right: 24px; width: auto; } .notification { transform: translateY(-100%); &.show { transform: translateY(0); } &.hide { transform: translateY(-100%); } } } @media (max-width: 500px) { .notification-container { width: calc(100vw - 48px); } }