Files
skywatch/client/build/static/css/main.4f505a72.css.map
T
nmemmert db85573986 feat: Add real-time notification center with WebSocket integration
- Add in-app notification system with database storage
- Implement bell icon component with unread count badge in dashboard header
- Add full Notifications page tab with pagination and filtering (All/Unread/Read)
- Implement real-time WebSocket push notifications to all connected clients
- Add notification API endpoints: GET, PUT /read, DELETE, POST /clear
- Fix critical bug in notificationService where 'status' variable was undefined
- Add Notifications route to App.js routing
- Enhanced UI with notification popup in header and dedicated full-page view
- Auto-reconnect WebSocket with 5s timeout on disconnect
- Support rich notification content with resource details and timestamps
2026-01-14 14:51:29 -05:00

1 line
31 KiB
Plaintext

{"version":3,"file":"static/css/main.4f505a72.css","mappings":"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","sources":["index.css","App.css","SettingsWizard.css","Status.css","NotificationCenter.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: #f5f5f5;\n}\n\n* {\n box-sizing: border-box;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".App {\n min-height: 100vh;\n}\n\n.navbar {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n padding: 1rem 2rem;\n color: white;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.navbar h1 {\n margin: 0;\n font-size: 1.5rem;\n}\n\n.container {\n max-width: 1400px;\n margin: 0 auto;\n padding: 2rem;\n}\n\n.dashboard-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));\n gap: 1rem;\n margin-bottom: 1.5rem;\n}\n\n.resource-card {\n background: white;\n border-radius: 10px;\n padding: 1rem 1.1rem;\n box-shadow: 0 2px 8px rgba(0,0,0,0.08);\n transition: transform 0.2s, box-shadow 0.2s;\n cursor: pointer;\n border: 1px solid #f1f1f3;\n}\n\n.resource-card.compact {\n display: flex;\n flex-direction: column;\n gap: 0.4rem;\n}\n\n.resource-card:hover {\n transform: translateY(-2px);\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n}\n\n.resource-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 0.5rem;\n}\n\n.resource-name {\n font-size: 1.05rem;\n font-weight: 700;\n margin: 0 0 0.2rem 0;\n}\n\n.resource-url {\n color: #666;\n font-size: 0.8rem;\n word-break: break-all;\n}\n\n.status-badge {\n padding: 0.25rem 0.75rem;\n border-radius: 12px;\n font-size: 0.7rem;\n font-weight: 600;\n text-transform: uppercase;\n}\n\n.status-up {\n background: #d4edda;\n color: #155724;\n}\n\n.status-down {\n background: #f8d7da;\n color: #721c24;\n}\n\n.status-unknown {\n background: #e2e3e5;\n color: #383d41;\n}\n\n.stats-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1rem;\n margin-top: 1rem;\n}\n\n.stat {\n text-align: center;\n}\n\n.stat-value {\n font-size: 1.2rem;\n font-weight: 700;\n color: #333;\n margin: 0;\n}\n\n.stat-value.small {\n font-size: 1.05rem;\n}\n\n.stat-label {\n font-size: 0.75rem;\n color: #666;\n text-transform: uppercase;\n margin: 0;\n}\n\n.resource-meta {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n align-items: center;\n gap: 0.75rem;\n}\n\n.sparkline {\n width: 100%;\n height: 52px;\n}\n\n.last-check {\n margin: 0;\n font-size: 0.75rem;\n color: #999;\n}\n\n.group-section {\n margin-bottom: 2rem;\n background: #fafafa;\n border-radius: 10px;\n padding: 1rem;\n}\n\n.group-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem;\n background: white;\n border-radius: 8px;\n cursor: pointer;\n transition: background 0.2s;\n border: 1px solid #e0e0e0;\n margin-bottom: 1rem;\n}\n\n.group-header:hover {\n background: #f9f9f9;\n}\n\n.group-header h3 {\n font-size: 1.1rem;\n margin: 0;\n color: #333;\n}\n\n.group-toggle {\n font-size: 0.9rem;\n color: #667eea;\n min-width: 15px;\n}\n\n.group-stats {\n display: flex;\n gap: 1.5rem;\n margin-left: auto;\n font-size: 0.85rem;\n}\n\n.group-stat {\n background: #f0f0f0;\n padding: 0.4rem 0.8rem;\n border-radius: 6px;\n color: #666;\n font-weight: 500;\n}\n\n.edit-input {\n padding: 0.5rem;\n border: 1px solid #667eea;\n border-radius: 6px;\n font-size: 1.05rem;\n width: 100%;\n margin-bottom: 0.5rem;\n}\n\n.card-edit-form {\n margin-top: 0.75rem;\n padding-top: 0.75rem;\n border-top: 1px solid #eee;\n}\n\n.edit-field {\n margin-bottom: 0.5rem;\n}\n\n.edit-field label {\n display: block;\n font-size: 0.75rem;\n color: #666;\n margin-bottom: 0.25rem;\n font-weight: 600;\n}\n\n.edit-field input {\n width: 100%;\n padding: 0.4rem 0.6rem;\n border: 1px solid #ddd;\n border-radius: 4px;\n font-size: 0.9rem;\n}\n\n.card-actions {\n display: flex;\n gap: 0.5rem;\n margin-top: 0.5rem;\n justify-content: flex-end;\n}\n\n.btn-icon {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1rem;\n padding: 0.25rem 0.5rem;\n opacity: 0.6;\n transition: opacity 0.2s;\n}\n\n.btn-icon:hover {\n opacity: 1;\n}\n\n.btn-sm {\n padding: 0.4rem 0.8rem;\n font-size: 0.8rem;\n}\n\n.btn {\n padding: 0.75rem 1.5rem;\n border: none;\n border-radius: 6px;\n font-size: 1rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s;\n}\n\n.btn-primary {\n background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n color: white;\n}\n\n.btn-primary:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 8px rgba(102, 126, 234, 0.3);\n}\n\n.btn-danger {\n background: #dc3545;\n color: white;\n}\n\n.btn-danger:hover {\n background: #c82333;\n}\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.modal {\n background: white;\n border-radius: 12px;\n padding: 2rem;\n max-width: 500px;\n width: 90%;\n max-height: 90vh;\n overflow-y: auto;\n}\n\n.modal h2 {\n margin-top: 0;\n}\n\n.form-group {\n margin-bottom: 1.5rem;\n}\n\n.form-group label {\n display: block;\n margin-bottom: 0.5rem;\n font-weight: 600;\n color: #333;\n}\n\n.form-group input,\n.form-group select {\n width: 100%;\n padding: 0.75rem;\n border: 1px solid #ddd;\n border-radius: 6px;\n font-size: 1rem;\n}\n\n.form-group input:focus,\n.form-group select:focus {\n outline: none;\n border-color: #667eea;\n}\n\n.form-actions {\n display: flex;\n gap: 1rem;\n justify-content: flex-end;\n margin-top: 2rem;\n}\n\n.detail-section {\n background: white;\n border-radius: 8px;\n padding: 1.5rem;\n margin-bottom: 1.5rem;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.detail-section h2 {\n margin-top: 0;\n color: #333;\n}\n\n.chart-container {\n margin-top: 1rem;\n height: 300px;\n}\n\n.incident-badge {\n display: inline-block;\n padding: 0.5rem 1rem;\n background: #fff3cd;\n color: #856404;\n border-radius: 6px;\n font-weight: 600;\n margin-bottom: 1rem;\n}\n\n.back-button {\n display: inline-block;\n margin-bottom: 1rem;\n padding: 0.5rem 1rem;\n background: #6c757d;\n color: white;\n text-decoration: none;\n border-radius: 6px;\n transition: background 0.2s;\n}\n\n.back-button:hover {\n background: #5a6268;\n}\n\n.empty-state {\n text-align: center;\n padding: 3rem;\n color: #666;\n}\n\n.empty-state h3 {\n color: #333;\n margin-bottom: 0.5rem;\n}\n\n/* Mobile Responsive Styles */\n@media (max-width: 1024px) {\n .dashboard-grid {\n grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));\n }\n\n .container {\n padding: 1.5rem;\n }\n}\n\n@media (max-width: 768px) {\n .navbar {\n padding: 0.75rem 1rem;\n }\n\n .navbar h1 {\n font-size: 1.25rem;\n }\n\n .navbar-links {\n flex-wrap: wrap;\n gap: 0.5rem;\n }\n\n .navbar-links a {\n padding: 0.4rem 0.8rem;\n font-size: 0.9rem;\n }\n\n .container {\n padding: 1rem;\n }\n\n .dashboard-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 1rem;\n }\n\n .dashboard-actions {\n width: 100%;\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .dashboard-actions button,\n .dashboard-actions select {\n width: 100%;\n }\n\n .dashboard-grid {\n grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n gap: 0.75rem;\n }\n\n .stats-grid {\n grid-template-columns: repeat(2, 1fr) !important;\n gap: 0.75rem;\n }\n\n .resource-card {\n padding: 0.875rem;\n }\n\n .resource-meta {\n flex-direction: column;\n gap: 0.5rem;\n }\n\n .resource-meta > div {\n text-align: left !important;\n }\n\n .chart-container {\n height: 300px !important;\n }\n\n .detail-section {\n padding: 1rem !important;\n }\n\n .form-row {\n flex-direction: column;\n gap: 0rem;\n }\n\n .form-group {\n width: 100%;\n }\n\n .modal-content {\n width: 95%;\n max-width: none;\n margin: 1rem;\n padding: 1.5rem;\n }\n\n .group-header {\n flex-direction: column;\n align-items: flex-start;\n gap: 0.5rem;\n }\n\n .group-stats {\n width: 100%;\n justify-content: space-between;\n }\n\n .card-actions {\n flex-direction: row;\n justify-content: flex-end;\n gap: 0.5rem;\n }\n\n table {\n font-size: 0.85rem;\n }\n\n th, td {\n padding: 0.5rem !important;\n }\n}\n\n@media (max-width: 480px) {\n .navbar h1 {\n font-size: 1.1rem;\n }\n\n .stat-value {\n font-size: 1.5rem;\n }\n\n .stat-label {\n font-size: 0.75rem;\n }\n\n .stats-grid {\n grid-template-columns: 1fr !important;\n }\n\n .modal-content h2 {\n font-size: 1.25rem;\n }\n\n .btn {\n padding: 0.5rem 1rem;\n font-size: 0.9rem;\n }\n}\n",".settings-wizard {\n max-width: 900px;\n margin: 0 auto;\n}\n\n.settings-description {\n color: #666;\n margin-bottom: 2rem;\n}\n\n.settings-section {\n background: white;\n border-radius: 8px;\n padding: 2rem;\n margin-bottom: 1.5rem;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1);\n}\n\n.settings-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 1.5rem;\n padding-bottom: 1rem;\n border-bottom: 2px solid #f0f0f0;\n}\n\n.settings-header h3 {\n margin: 0;\n color: #333;\n}\n\n.settings-form {\n margin-top: 1.5rem;\n}\n\n.form-row {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.form-group small {\n display: block;\n color: #999;\n font-size: 0.85rem;\n margin-top: 0.25rem;\n}\n\n.info-box {\n background: #f8f9fa;\n border-left: 4px solid #667eea;\n padding: 1rem;\n margin: 1.5rem 0;\n border-radius: 4px;\n}\n\n.info-box strong {\n display: block;\n margin-bottom: 0.5rem;\n color: #333;\n}\n\n.info-box ol {\n margin: 0.5rem 0 0 1.5rem;\n padding: 0;\n}\n\n.info-box li {\n margin: 0.25rem 0;\n color: #666;\n}\n\n.info-box a {\n color: #667eea;\n text-decoration: none;\n}\n\n.info-box a:hover {\n text-decoration: underline;\n}\n\n.info-box pre {\n background: white;\n padding: 1rem;\n border-radius: 4px;\n overflow-x: auto;\n font-size: 0.85rem;\n margin-top: 0.5rem;\n}\n\n.toggle-switch {\n position: relative;\n display: inline-block;\n width: 60px;\n height: 34px;\n}\n\n.toggle-switch input {\n opacity: 0;\n width: 0;\n height: 0;\n}\n\n.toggle-slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: #ccc;\n transition: .4s;\n border-radius: 34px;\n}\n\n.toggle-slider:before {\n position: absolute;\n content: \"\";\n height: 26px;\n width: 26px;\n left: 4px;\n bottom: 4px;\n background-color: white;\n transition: .4s;\n border-radius: 50%;\n}\n\n.toggle-switch input:checked + .toggle-slider {\n background-color: #667eea;\n}\n\n.toggle-switch input:checked + .toggle-slider:before {\n transform: translateX(26px);\n}\n\n.btn-secondary {\n background: #6c757d;\n color: white;\n margin-top: 1rem;\n}\n\n.btn-secondary:hover:not(:disabled) {\n background: #5a6268;\n}\n\n.btn-secondary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.test-result {\n padding: 1rem;\n border-radius: 8px;\n margin: 1.5rem 0;\n}\n\n.test-result.success {\n background: #d4edda;\n color: #155724;\n border: 1px solid #c3e6cb;\n}\n\n.test-result.error {\n background: #f8d7da;\n color: #721c24;\n border: 1px solid #f5c6cb;\n}\n\n.test-result strong {\n display: block;\n margin-bottom: 0.5rem;\n}\n\n.test-result p {\n margin: 0;\n}\n\n.settings-actions {\n display: flex;\n justify-content: center;\n margin-top: 2rem;\n}\n\n.btn-large {\n padding: 1rem 3rem;\n font-size: 1.1rem;\n}\n\n.save-status {\n position: fixed;\n top: 20px;\n right: 20px;\n padding: 1rem 1.5rem;\n border-radius: 6px;\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n z-index: 1000;\n animation: slideIn 0.3s ease-out;\n max-width: 300px;\n}\n\n.save-status.success {\n background: #4caf50;\n color: white;\n border-left: 4px solid #388e3c;\n}\n\n.save-status.error {\n background: #f44336;\n color: white;\n border-left: 4px solid #d32f2f;\n}\n\n.save-status strong {\n display: block;\n margin-bottom: 0.5rem;\n font-size: 1rem;\n}\n\n.save-status p {\n margin: 0;\n font-size: 0.9rem;\n}\n\n@keyframes slideIn {\n from {\n transform: translateX(400px);\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n}\n",".status-container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 2rem;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu',\n 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.status-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 2rem;\n border-bottom: 2px solid #eee;\n padding-bottom: 1.5rem;\n}\n\n.status-header h1 {\n margin: 0 0 0.5rem 0;\n font-size: 2.5rem;\n color: #333;\n}\n\n.status-subtitle {\n margin: 0;\n color: #666;\n font-size: 1rem;\n}\n\n.status-refresh {\n text-align: right;\n}\n\n.status-refresh label {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n margin-bottom: 0.5rem;\n cursor: pointer;\n}\n\n.status-refresh input[type='checkbox'] {\n cursor: pointer;\n}\n\n.last-updated {\n margin: 0;\n font-size: 0.85rem;\n color: #666;\n}\n\n.status-summary {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n gap: 1rem;\n margin-bottom: 2rem;\n}\n\n.summary-card {\n background: white;\n border: 1px solid #ddd;\n border-radius: 8px;\n padding: 1.5rem;\n text-align: center;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n\n.summary-value {\n font-size: 2rem;\n font-weight: bold;\n margin-bottom: 0.5rem;\n}\n\n.summary-label {\n font-size: 0.9rem;\n color: #666;\n margin: 0;\n}\n\n.status-section {\n margin-bottom: 2rem;\n}\n\n.status-section h2 {\n font-size: 1.5rem;\n color: #333;\n margin: 0 0 1rem 0;\n border-bottom: 2px solid #f0f0f0;\n padding-bottom: 0.5rem;\n}\n\n.status-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1rem;\n}\n\n.status-card {\n border: 2px solid #ddd;\n border-radius: 8px;\n padding: 1.5rem;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n transition: all 0.2s ease;\n}\n\n.status-card:hover {\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n}\n\n.status-card-up {\n border-color: #4caf50;\n background-color: #f1f8f6;\n}\n\n.status-card-down {\n border-color: #f44336;\n background-color: #fdeaea;\n}\n\n.status-card-maintenance {\n border-color: #ff9800;\n background-color: #fff3e0;\n}\n\n.status-card-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 1rem;\n}\n\n.status-card h3 {\n margin: 0;\n font-size: 1.2rem;\n color: #333;\n flex: 1;\n}\n\n.status-badge {\n padding: 0.25rem 0.75rem;\n border-radius: 20px;\n font-size: 0.8rem;\n font-weight: bold;\n white-space: nowrap;\n}\n\n.status-badge-up {\n background-color: #4caf50;\n color: white;\n}\n\n.status-badge-down {\n background-color: #f44336;\n color: white;\n}\n\n.status-badge-maintenance {\n background-color: #ff9800;\n color: white;\n}\n\n.resource-url {\n margin: 0.5rem 0;\n font-size: 0.9rem;\n}\n\n.resource-url a {\n color: #0066cc;\n text-decoration: none;\n}\n\n.resource-url a:hover {\n text-decoration: underline;\n}\n\n.incident-info {\n background-color: rgba(244, 67, 54, 0.1);\n border-left: 3px solid #f44336;\n padding: 1rem;\n border-radius: 4px;\n margin: 1rem 0;\n}\n\n.incident-info p {\n margin: 0.3rem 0;\n font-size: 0.9rem;\n}\n\n.incident-title {\n font-weight: bold;\n color: #f44336;\n margin-bottom: 0.5rem !important;\n}\n\n.incident-started {\n color: #666;\n}\n\n.incident-description {\n font-size: 0.85rem;\n color: #333;\n font-family: monospace;\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 100px;\n overflow-y: auto;\n}\n\n.incident-duration {\n color: #666;\n font-weight: bold;\n margin-top: 0.5rem !important;\n}\n\n.maintenance-info {\n background-color: rgba(255, 152, 0, 0.1);\n border-left: 3px solid #ff9800;\n padding: 1rem;\n border-radius: 4px;\n margin: 1rem 0;\n}\n\n.maintenance-info p {\n margin: 0.3rem 0;\n font-size: 0.9rem;\n}\n\n.maintenance-title {\n font-weight: bold;\n color: #ff9800;\n margin-bottom: 0.5rem !important;\n}\n\n.maintenance-window {\n color: #666;\n}\n\n.status-operational {\n color: #4caf50;\n font-weight: bold;\n text-align: center;\n padding: 1rem;\n}\n\n.maintenance-table,\n.incidents-table {\n width: 100%;\n border-collapse: collapse;\n background: white;\n border: 1px solid #ddd;\n border-radius: 8px;\n overflow: hidden;\n}\n\n.maintenance-table thead,\n.incidents-table thead {\n background-color: #f5f5f5;\n border-bottom: 2px solid #ddd;\n}\n\n.maintenance-table th,\n.incidents-table th {\n padding: 1rem;\n text-align: left;\n font-weight: bold;\n color: #333;\n}\n\n.maintenance-table td,\n.incidents-table td {\n padding: 1rem;\n border-bottom: 1px solid #eee;\n}\n\n.maintenance-table tr:hover,\n.incidents-table tr:hover {\n background-color: #f9f9f9;\n}\n\n.incident-desc-cell {\n max-width: 300px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: monospace;\n font-size: 0.9rem;\n color: #555;\n}\n\n@media (max-width: 768px) {\n .status-container {\n padding: 1rem;\n }\n\n .status-header {\n flex-direction: column;\n }\n\n .status-header h1 {\n font-size: 1.8rem;\n }\n\n .status-refresh {\n text-align: left;\n margin-top: 1rem;\n }\n\n .status-grid {\n grid-template-columns: 1fr;\n }\n\n .maintenance-table,\n .incidents-table {\n font-size: 0.85rem;\n }\n\n .maintenance-table td,\n .incidents-table td,\n .maintenance-table th,\n .incidents-table th {\n padding: 0.5rem;\n }\n}\n",".notification-center {\n position: relative;\n}\n\n.notification-bell-container {\n display: flex;\n align-items: center;\n}\n\n.notification-bell {\n background: none;\n border: none;\n font-size: 1.5rem;\n cursor: pointer;\n position: relative;\n padding: 0.5rem;\n transition: transform 0.2s;\n}\n\n.notification-bell:hover {\n transform: scale(1.1);\n}\n\n.notification-badge {\n position: absolute;\n top: 0;\n right: 0;\n background: #dc3545;\n color: white;\n border-radius: 50%;\n width: 1.25rem;\n height: 1.25rem;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.65rem;\n font-weight: bold;\n line-height: 1;\n}\n\n.notification-popup {\n position: fixed;\n top: 60px;\n right: 20px;\n width: 400px;\n max-height: 600px;\n background: white;\n border: 1px solid #ddd;\n border-radius: 8px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.notification-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem;\n border-bottom: 1px solid #eee;\n background: #f9f9f9;\n}\n\n.notification-header h3 {\n margin: 0;\n font-size: 1.1rem;\n color: #333;\n}\n\n.close-btn {\n background: none;\n border: none;\n font-size: 1.25rem;\n cursor: pointer;\n color: #999;\n padding: 0;\n width: 30px;\n height: 30px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.close-btn:hover {\n color: #333;\n}\n\n.notification-filters {\n display: flex;\n gap: 0.5rem;\n padding: 0.75rem 1rem;\n border-bottom: 1px solid #eee;\n background: #fafafa;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 0.4rem 0.75rem;\n border: 1px solid #ddd;\n background: white;\n border-radius: 4px;\n cursor: pointer;\n font-size: 0.85rem;\n transition: all 0.2s;\n}\n\n.filter-btn:hover {\n border-color: #007bff;\n color: #007bff;\n}\n\n.filter-btn.active {\n background: #007bff;\n color: white;\n border-color: #007bff;\n}\n\n.clear-btn {\n margin-left: auto;\n background: #dc3545;\n color: white;\n border-color: #dc3545;\n}\n\n.clear-btn:hover {\n background: #c82333;\n border-color: #c82333;\n}\n\n.notification-list {\n flex: 1;\n overflow-y: auto;\n max-height: 450px;\n}\n\n.notification-item {\n padding: 1rem;\n border-bottom: 1px solid #eee;\n display: flex;\n gap: 0.75rem;\n background: white;\n transition: background 0.2s;\n}\n\n.notification-item:hover {\n background: #f9f9f9;\n}\n\n.notification-item.unread {\n background: #f0f8ff;\n font-weight: 500;\n}\n\n.notification-content {\n flex: 1;\n min-width: 0;\n}\n\n.notification-title {\n font-weight: 600;\n margin-bottom: 0.25rem;\n font-size: 0.95rem;\n color: #333;\n}\n\n.notification-message {\n font-size: 0.85rem;\n color: #666;\n margin-bottom: 0.5rem;\n word-break: break-word;\n}\n\n.notification-meta {\n display: flex;\n gap: 0.75rem;\n font-size: 0.75rem;\n color: #999;\n flex-wrap: wrap;\n}\n\n.notification-resource {\n background: #f0f0f0;\n padding: 0.2rem 0.5rem;\n border-radius: 3px;\n}\n\n.notification-time {\n white-space: nowrap;\n}\n\n.notification-actions {\n display: flex;\n gap: 0.5rem;\n align-items: flex-start;\n}\n\n.action-btn {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1rem;\n padding: 0.25rem 0.5rem;\n color: #999;\n transition: color 0.2s;\n flex-shrink: 0;\n}\n\n.action-btn:hover {\n color: #333;\n}\n\n.action-btn.mark-read:hover {\n color: #28a745;\n}\n\n.action-btn.delete:hover {\n color: #dc3545;\n}\n\n/* Scrollbar styling */\n.notification-list::-webkit-scrollbar {\n width: 6px;\n}\n\n.notification-list::-webkit-scrollbar-track {\n background: #f1f1f1;\n}\n\n.notification-list::-webkit-scrollbar-thumb {\n background: #888;\n border-radius: 3px;\n}\n\n.notification-list::-webkit-scrollbar-thumb:hover {\n background: #555;\n}\n\n/* Mobile responsive */\n@media (max-width: 600px) {\n .notification-popup {\n position: fixed;\n top: 60px;\n right: 10px;\n left: 10px;\n width: auto;\n max-height: 70vh;\n }\n\n .notification-filters {\n flex-direction: column;\n }\n\n .filter-btn {\n flex: 1;\n }\n\n .clear-btn {\n margin-left: 0;\n }\n}\n"],"names":[],"ignoreList":[],"sourceRoot":""}