/* Notification Settings Panel Styles */ .notification-settings { max-width: 800px; margin: 0; padding: var(--space-5); } .notification-settings h2 { margin-bottom: 30px; color: var(--text-on-accent); } .settings-section { background: var(--bg-card); border-radius: var(--radius-card); padding: var(--space-5); margin-bottom: 30px; } .settings-section h3 { margin-top: 0; margin-bottom: var(--space-250); color: var(--blue-10); } .section-desc { color: var(--text-secondary); font-size: 0.9em; margin-bottom: var(--space-5); } /* Channel Cards */ .channels-list { display: grid; gap: var(--space-375); margin-bottom: var(--space-5); } .channel-card { background: var(--bg-hover); border: 1px solid var(--slate-5); border-radius: var(--radius-card); padding: var(--space-375); } .channel-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-250); } .channel-type { font-weight: 600; color: var(--ok); text-transform: uppercase; font-size: 0.85em; } .channel-actions { display: flex; gap: var(--space-250); } .channel-details { color: var(--text-secondary); font-size: 0.9em; } .channel-url { color: var(--text-muted); font-family: var(--font-mono); } /* Buttons */ .btn { padding: 10px var(--space-5); border: none; border-radius: var(--radius-control); font-size: var(--text-sm); cursor: pointer; transition: all 0.2s; display: inline-flex; align-items: center; gap: var(--space-2); } .btn-primary { background: var(--blue-10); color: var(--slate-1); } .btn-primary:hover { background: var(--blue-10); } .btn-secondary { background: var(--slate-5); color: var(--text-on-accent); } .btn-secondary:hover { background: var(--slate-6); } .btn-icon { background: none; border: none; font-size: var(--text-xl); cursor: pointer; padding: var(--space-125); opacity: 0.7; transition: opacity 0.2s; } .btn-icon:hover { opacity: 1; } /* Quiet Hours Configuration */ .quiet-hours-config { display: flex; flex-direction: column; gap: var(--space-5); } .checkbox-label { display: flex; align-items: center; gap: var(--space-250); color: var(--text-on-accent); cursor: pointer; } .checkbox-label input[type="checkbox"] { width: 18px; height: 18px; cursor: pointer; } .time-range { display: flex; gap: var(--space-5); } .time-field { display: flex; flex-direction: column; gap: var(--space-125); } .time-field label { color: var(--text-secondary); font-size: 0.9em; } .time-field input { padding: var(--space-2) var(--space-3); background: var(--bg-hover); border: 1px solid var(--slate-5); border-radius: var(--radius-control); color: var(--text-on-accent); font-size: var(--text-sm); } .days-selector { display: flex; flex-direction: column; gap: var(--space-250); } .day-checkbox { display: flex; gap: var(--space-375); } .day-checkbox-label { display: flex; align-items: center; gap: var(--space-125); color: var(--text-on-accent); cursor: pointer; font-size: 0.9em; } .day-checkbox-input { width: 16px; height: 16px; cursor: pointer; } /* Batching Configuration */ .batching-config { display: flex; flex-direction: column; gap: var(--space-375); } .batch-window, .max-batch-size { display: flex; flex-direction: column; gap: var(--space-125); } .batch-window label, .max-batch-size label { color: var(--text-secondary); font-size: 0.9em; } .batch-window input, .max-batch-size input { padding: var(--space-2) var(--space-3); background: var(--bg-hover); border: 1px solid var(--slate-5); border-radius: var(--radius-control); color: var(--text-on-accent); font-size: var(--text-sm); max-width: 150px; } /* Event Type Toggles */ .event-types { display: flex; flex-direction: column; gap: var(--space-3); } .event-type-toggle { display: flex; align-items: center; gap: var(--space-375); padding: var(--space-250); background: var(--bg-hover); border-radius: var(--radius-control); } .event-type-info { display: flex; flex-direction: column; } .event-type-label { color: var(--text-on-accent); font-weight: 500; } .event-type-desc { color: var(--text-muted); font-size: 0.85em; } /* Toggle Switch */ .toggle-switch { position: relative; display: inline-block; width: 44px; height: 24px; } .toggle-switch input { opacity: 0; width: 0; height: 0; } .toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--slate-5); transition: 0.3s; border-radius: var(--radius-modal); } .toggle-slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: var(--space-075); bottom: var(--space-075); background-color: var(--text-on-accent); transition: 0.3s; border-radius: 50%; } .toggle-switch input:checked + .toggle-slider { background-color: var(--blue-10); } .toggle-switch input:checked + .toggle-slider:before { transform: translateX(20px); } /* Modal */ .modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: var(--overlay-strong); display: flex; align-items: center; justify-content: center; z-index: 1000; } .modal.hidden { display: none; } .modal-content { background: var(--bg-card); border-radius: var(--radius-card); width: 90%; max-width: 500px; max-height: 90vh; overflow-y: auto; } .modal-header { display: flex; justify-content: space-between; align-items: center; padding: var(--space-5); border-bottom: 1px solid var(--slate-5); } .modal-header h3 { margin: 0; color: var(--text-on-accent); } .close-modal { background: none; border: none; color: var(--text-muted); font-size: var(--text-3xl); cursor: pointer; padding: var(--space-125); line-height: 1; } .close-modal:hover { color: var(--text-on-accent); } .modal-body { padding: var(--space-5); } /* Form Styles */ .form-group { margin-bottom: var(--space-5); } .form-group label { display: block; color: var(--text-secondary); font-size: 0.9em; margin-bottom: var(--space-2); } .form-group input, .form-group select { width: 100%; padding: 10px var(--space-3); background: var(--bg-hover); border: 1px solid var(--slate-5); border-radius: var(--radius-control); color: var(--text-on-accent); font-size: var(--text-sm); box-sizing: border-box; } .auth-fields { display: flex; gap: var(--space-250); } .auth-fields input { flex: 1; } .event-types-selector { margin-top: var(--space-5); } .event-types-selector label { display: block; color: var(--text-secondary); font-size: 0.9em; margin-bottom: var(--space-250); } #modal-event-types { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-250); } .form-actions { display: flex; gap: var(--space-250); justify-content: flex-end; margin-top: var(--space-5); } /* Toast Notifications */ .toast { position: fixed; bottom: var(--space-5); right: var(--space-5); padding: 15px var(--space-5); border-radius: var(--radius-card); color: var(--text-on-accent); font-size: var(--text-sm); z-index: 2000; animation: slideIn 0.3s ease-out; } .toast-success { background: var(--ok); } .toast-error { background: var(--alert); } .toast-hiding { animation: fadeOut 0.3s ease-out forwards; } @keyframes slideIn { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes fadeOut { to { opacity: 0; } } /* Empty State */ .empty-state { text-align: center; color: var(--text-muted); padding: var(--space-10) var(--space-5); font-style: italic; } /* Responsive Design */ @media (max-width: 600px) { .notification-settings { padding: var(--space-375); } .settings-section { padding: var(--space-375); } .time-range { flex-direction: column; gap: var(--space-250); } .channels-list { grid-template-columns: 1fr; } .modal-content { width: 95%; } #modal-event-types { grid-template-columns: 1fr; } } /* Settings Tabs */ .settings-tabs { display: flex; gap: var(--space-1); margin-bottom: var(--space-5); border-bottom: 1px solid var(--slate-5); } .settings-tab { flex: 1; padding: var(--space-3) var(--space-4); background: transparent; border: none; color: var(--text-muted); font-size: var(--text-sm); cursor: pointer; transition: all 0.2s; border-bottom: 2px solid transparent; } .settings-tab:hover { color: var(--text-on-accent); background: var(--border-subtle); } .settings-tab.active { color: var(--blue-10); border-bottom-color: var(--blue-10); } /* Panel-specific notification settings styles */ .panel-select { width: 100%; padding: 10px var(--space-3); background: var(--bg-hover); border: 1px solid var(--slate-5); border-radius: var(--radius-control); color: var(--text-on-accent); font-size: var(--text-sm); } .panel-input { width: 100%; padding: 10px var(--space-3); background: var(--bg-hover); border: 1px solid var(--slate-5); border-radius: var(--radius-control); color: var(--text-on-accent); font-size: var(--text-sm); box-sizing: border-box; } .panel-input:focus, .panel-select:focus { outline: none; border-color: var(--blue-10); } .channel-config-group { margin-bottom: var(--space-5); padding: var(--space-375); background: var(--bg-hover); border-radius: var(--radius-control); } .panel-time-range { display: flex; gap: var(--space-5); } .panel-time-field { flex: 1; } .panel-time-field label { display: block; color: var(--text-secondary); font-size: 0.9em; margin-bottom: var(--space-2); } .panel-days-selector { display: flex; flex-wrap: wrap; gap: var(--space-250); margin-top: var(--space-250); } .panel-day-checkbox { display: flex; align-items: center; gap: var(--space-125); color: var(--text-on-accent); cursor: pointer; font-size: 0.9em; } .panel-day-checkbox input { width: 16px; height: 16px; cursor: pointer; } .panel-event-type-toggle { display: flex; align-items: center; gap: var(--space-375); padding: var(--space-250); background: var(--bg-hover); border-radius: var(--radius-control); } .panel-event-type-info { display: flex; flex-direction: column; } .panel-event-type-label { color: var(--text-on-accent); font-weight: 500; } .panel-event-type-desc { color: var(--text-muted); font-size: 0.85em; } .panel-toggle-switch { position: relative; display: inline-block; width: 44px; height: 24px; } .panel-toggle-switch input { opacity: 0; width: 0; height: 0; } .panel-toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--slate-5); transition: 0.3s; border-radius: var(--radius-modal); } .panel-toggle-slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: var(--space-075); bottom: var(--space-075); background-color: var(--text-on-accent); transition: 0.3s; border-radius: 50%; } .panel-toggle-switch input:checked + .panel-toggle-slider { background-color: var(--blue-10); } .panel-toggle-switch input:checked + .panel-toggle-slider:before { transform: translateX(20px); } .panel-form-hint { color: var(--text-muted); font-size: 0.85em; margin-top: calc(-1 * var(--space-2)); margin-bottom: var(--space-3); } .event-type-toggles { display: flex; flex-direction: column; gap: var(--space-2); }