diff --git a/client/build/asset-manifest.json b/client/build/asset-manifest.json
index 00d46d2..40bef28 100644
--- a/client/build/asset-manifest.json
+++ b/client/build/asset-manifest.json
@@ -1,15 +1,15 @@
{
"files": {
- "main.css": "/static/css/main.40bbff16.css",
+ "main.css": "/static/css/main.5afb44a9.css",
"main.js": "/static/js/main.a387bcf0.js",
"static/js/453.d456ce70.chunk.js": "/static/js/453.d456ce70.chunk.js",
"index.html": "/index.html",
- "main.40bbff16.css.map": "/static/css/main.40bbff16.css.map",
+ "main.5afb44a9.css.map": "/static/css/main.5afb44a9.css.map",
"main.a387bcf0.js.map": "/static/js/main.a387bcf0.js.map",
"453.d456ce70.chunk.js.map": "/static/js/453.d456ce70.chunk.js.map"
},
"entrypoints": [
- "static/css/main.40bbff16.css",
+ "static/css/main.5afb44a9.css",
"static/js/main.a387bcf0.js"
]
}
\ No newline at end of file
diff --git a/client/build/index.html b/client/build/index.html
index 1277aa7..4c10c5e 100644
--- a/client/build/index.html
+++ b/client/build/index.html
@@ -1 +1 @@
-
SkyWatch
\ No newline at end of file
+SkyWatch
\ No newline at end of file
diff --git a/client/build/static/css/main.40bbff16.css.map b/client/build/static/css/main.40bbff16.css.map
deleted file mode 100644
index 547abdd..0000000
--- a/client/build/static/css/main.40bbff16.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/main.40bbff16.css","mappings":"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","sources":["index.css","App.css","NotificationCenter.css","SettingsWizard.css","CommandCenterPages.css","Status.css","Observability.css"],"sourcesContent":["body {\n margin: 0;\n font-family: 'Manrope', 'IBM Plex Sans', 'Segoe UI', sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n color: #e2e8f0;\n background-color: #020617;\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 background:\n radial-gradient(circle at 15% 0%, rgba(30, 64, 175, 0.2) 0%, transparent 42%),\n radial-gradient(circle at 95% 10%, rgba(15, 118, 110, 0.14) 0%, transparent 36%),\n #020617;\n}\n\n.navbar {\n background: rgba(15, 23, 42, 0.82);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n padding: 0.85rem 2rem;\n color: #e2e8f0;\n border-bottom: 1px solid #334155;\n box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);\n position: sticky;\n top: 0;\n z-index: 30;\n}\n\n.navbar h1 {\n margin: 0;\n font-size: 1.5rem;\n letter-spacing: -0.02em;\n}\n\n.navbar-inner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1rem;\n width: 100%;\n}\n\n.navbar-left {\n display: flex;\n align-items: center;\n gap: 1.5rem;\n min-width: 0;\n}\n\n.navbar-links {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.nav-link {\n color: #cbd5e1;\n text-decoration: none;\n font-weight: 600;\n font-size: 0.92rem;\n padding: 0.4rem 0.7rem;\n border-radius: 7px;\n transition: background 0.2s, color 0.2s, box-shadow 0.2s;\n}\n\n.nav-link:hover {\n background: #111827;\n color: #f8fafc;\n box-shadow: inset 0 0 0 1px #334155;\n}\n\n.settings-link {\n display: inline-flex;\n align-items: center;\n gap: 0.4rem;\n}\n\n.setup-badge {\n background: #facc15;\n color: #111827;\n padding: 0.15rem 0.5rem;\n border-radius: 999px;\n font-size: 0.68rem;\n font-weight: 700;\n}\n\n.notifications-pill {\n display: flex;\n align-items: center;\n gap: 0.45rem;\n font-size: 0.82rem;\n color: #e2e8f0;\n background: #111827;\n border: 1px solid #334155;\n border-radius: 999px;\n padding: 0.3rem 0.7rem;\n}\n\n.container {\n max-width: 1400px;\n margin: 0 auto;\n padding: 2rem;\n}\n\n.dashboard-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n margin-bottom: 2rem;\n}\n\n.dashboard-title {\n margin: 0;\n font-size: 1.85rem;\n letter-spacing: -0.02em;\n color: #f8fafc;\n}\n\n.dashboard-subtitle {\n margin: 0.2rem 0 0;\n color: #94a3b8;\n font-size: 0.9rem;\n}\n\n.dashboard-actions {\n display: flex;\n gap: 0.5rem;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.quick-filter-row {\n display: flex;\n gap: 0.45rem;\n flex-wrap: wrap;\n margin: 0.2rem 0 0.8rem;\n}\n\n.quick-chip {\n background: #0f172a;\n border: 1px solid #334155;\n color: #cbd5e1;\n border-radius: 999px;\n padding: 0.28rem 0.7rem;\n font-size: 0.74rem;\n font-weight: 700;\n letter-spacing: 0.02em;\n cursor: pointer;\n}\n\n.quick-chip:hover {\n background: #111f34;\n}\n\n.quick-chip.active {\n background: #14b8a6;\n border-color: #14b8a6;\n color: #052e2b;\n}\n\n.tag-filter-input {\n padding: 0.5rem 0.75rem;\n border-radius: 10px;\n border: 1px solid #334155;\n min-width: 180px;\n background: #111827;\n color: #e2e8f0;\n}\n\n.actions-menu-wrapper {\n position: relative;\n}\n\n.actions-menu {\n position: absolute;\n right: 0;\n top: 110%;\n background: #ffffff;\n border: 1px solid #dbe2ea;\n border-radius: 8px;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.14);\n min-width: 220px;\n padding: 0.35rem 0;\n z-index: 20;\n}\n\n.actions-menu-divider {\n margin: 0.25rem 0;\n border: 0;\n border-top: 1px solid #eef2f6;\n}\n\n.hidden-file-input {\n display: none;\n}\n\n.toast-stack {\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 9999;\n}\n\n.toast-item {\n margin-bottom: 10px;\n padding: 12px 16px;\n border-radius: 8px;\n min-width: 280px;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16);\n border: 1px solid transparent;\n}\n\n.toast-error {\n background: #fee2e2;\n color: #7f1d1d;\n border-color: #fecaca;\n}\n\n.toast-success {\n background: #dcfce7;\n color: #14532d;\n border-color: #bbf7d0;\n}\n\n.toast-info {\n background: #dbeafe;\n color: #1e3a8a;\n border-color: #bfdbfe;\n}\n\n.cc-metrics-grid {\n display: grid;\n grid-template-columns: repeat(6, minmax(0, 1fr));\n gap: 0.65rem;\n margin-bottom: 1rem;\n}\n\n.cc-metric-card {\n background: linear-gradient(180deg, rgba(15, 23, 42, 0.96) 0%, rgba(30, 41, 59, 0.96) 100%);\n border: 1px solid #334155;\n border-radius: 10px;\n padding: 0.75rem;\n color: #e2e8f0;\n}\n\n.cc-metric-label {\n margin: 0;\n font-size: 0.68rem;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: #94a3b8;\n}\n\n.cc-metric-value {\n margin: 0.35rem 0 0;\n font-size: 1.2rem;\n font-weight: 700;\n}\n\n.metric-ok {\n border-color: #14532d;\n}\n\n.metric-down {\n border-color: #7f1d1d;\n}\n\n.metric-maint {\n border-color: #78350f;\n}\n\n.cc-layout {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 300px;\n gap: 0.8rem;\n align-items: start;\n}\n\n.cc-main {\n min-width: 0;\n}\n\n.cc-rail {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n position: sticky;\n top: 82px;\n}\n\n.cc-panel {\n background: rgba(15, 23, 42, 0.94);\n color: #e2e8f0;\n border: 1px solid #334155;\n border-radius: 12px;\n padding: 0.75rem;\n}\n\n.cc-panel h3 {\n margin: 0 0 0.65rem;\n font-size: 0.9rem;\n letter-spacing: 0.03em;\n}\n\n.cc-empty {\n margin: 0;\n color: #94a3b8;\n font-size: 0.85rem;\n}\n\n.cc-incident-list,\n.cc-group-list {\n display: flex;\n flex-direction: column;\n gap: 0.4rem;\n}\n\n.cc-incident-item,\n.cc-group-item {\n width: 100%;\n background: #0f172a;\n border: 1px solid #334155;\n color: #e2e8f0;\n border-radius: 8px;\n padding: 0.45rem 0.55rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n}\n\n.cc-incident-item:hover,\n.cc-group-item:hover {\n background: #111f34;\n border-color: #475569;\n}\n\n.cc-incident-name {\n font-size: 0.85rem;\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: 0.5rem;\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-list {\n display: flex;\n flex-direction: column;\n gap: 0.45rem;\n}\n\n.resource-list-shell {\n background: rgba(15, 23, 42, 0.9);\n border: 1px solid #334155;\n border-radius: 12px;\n padding: 0.65rem;\n max-height: calc(100vh - 250px);\n overflow: auto;\n}\n\n.resource-list-header {\n display: grid;\n grid-template-columns: minmax(260px, 2fr) minmax(220px, 1.25fr) minmax(170px, 0.8fr);\n gap: 1rem;\n padding: 0.35rem 0.6rem 0.6rem;\n font-size: 0.72rem;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: #94a3b8;\n border-bottom: 1px solid #334155;\n margin-bottom: 0.45rem;\n position: sticky;\n top: 0;\n z-index: 5;\n background: rgba(15, 23, 42, 0.98);\n}\n\n.resource-list-count {\n font-size: 0.75rem;\n color: #94a3b8;\n margin: 0 0.6rem 0.55rem;\n position: sticky;\n top: 31px;\n z-index: 4;\n background: rgba(15, 23, 42, 0.95);\n padding-bottom: 0.25rem;\n}\n\n.resource-row {\n display: grid;\n grid-template-columns: minmax(260px, 2fr) minmax(220px, 1.25fr) minmax(170px, 0.8fr);\n align-items: center;\n gap: 1rem;\n padding: 0.65rem 0.8rem;\n background: rgba(15, 23, 42, 0.96);\n border: 1px solid #334155;\n border-radius: 10px;\n box-shadow: 0 4px 12px rgba(2, 6, 23, 0.55);\n cursor: pointer;\n transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;\n}\n\n.resource-row:hover {\n transform: translateY(-1px);\n border-color: #60a5fa;\n box-shadow: 0 12px 22px rgba(2, 6, 23, 0.65);\n}\n\n.row-main {\n min-width: 0;\n}\n\n.row-title-line {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n flex-wrap: wrap;\n margin-bottom: 0.15rem;\n}\n\n.row-name {\n margin: 0;\n font-size: 0.98rem;\n color: #f8fafc;\n}\n\n.resource-group-pill {\n padding: 0.15rem 0.5rem;\n border-radius: 999px;\n background: #1e293b;\n color: #cbd5e1;\n font-size: 0.72rem;\n font-weight: 700;\n}\n\n.incident-inline {\n font-size: 0.72rem;\n color: #991b1b;\n background: #fee2e2;\n border: 1px solid #fecaca;\n padding: 0.15rem 0.45rem;\n border-radius: 999px;\n}\n\n.maintenance-inline {\n font-size: 0.72rem;\n color: #92400e;\n background: #fef3c7;\n border: 1px solid #fde68a;\n padding: 0.15rem 0.45rem;\n border-radius: 999px;\n}\n\n.row-url,\n.row-type {\n margin: 0;\n color: #94a3b8;\n}\n\n.row-url {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.78rem;\n}\n\n.row-type {\n font-size: 0.72rem;\n}\n\n.row-metrics {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 0.8rem;\n align-items: center;\n}\n\n.row-metrics .stat-label {\n font-size: 0.64rem;\n color: #94a3b8;\n}\n\n.row-metrics .stat-value {\n color: #e2e8f0;\n font-weight: 700;\n}\n\n.row-sparkline {\n min-width: 95px;\n}\n\n.row-side {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 0.2rem;\n}\n\n.row-actions {\n display: flex;\n gap: 0.35rem;\n}\n\n.resource-card {\n background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);\n border-radius: 14px;\n padding: 1rem 1.1rem;\n box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);\n transition: transform 0.2s, box-shadow 0.2s;\n cursor: pointer;\n border: 1px solid #e5e7eb;\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 14px 28px rgba(15, 23, 42, 0.13);\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.trend-chip {\n display: inline-block;\n margin-left: 0.3rem;\n font-size: 0.72rem;\n font-weight: 800;\n}\n.trend-better {\n color: #34d399;\n}\n.trend-worse {\n color: #f87171;\n}\n.trend-flat {\n color: #94a3b8;\n}\n\n.resource-url {\n color: #64748b;\n font-size: 0.8rem;\n word-break: break-all;\n}\n.load-more-btn {\n width: 100%;\n border: 1px dashed #94a3b8;\n background: #f8fafc;\n color: #334155;\n border-radius: 10px;\n padding: 0.65rem;\n font-weight: 700;\n cursor: pointer;\n}\n.load-more-btn:hover {\n background: #f1f5f9;\n}\n\n.resource-type {\n margin: 0.15rem 0 0;\n color: #475569;\n font-size: 0.78rem;\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: #dcfce7;\n color: #166534;\n}\n\n.status-down {\n background: #fee2e2;\n color: #991b1b;\n}\n\n.status-unknown {\n background: #e2e8f0;\n color: #334155;\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: #e2e8f0;\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: #94a3b8;\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: #94a3b8;\n}\n\n.group-section {\n margin-bottom: 2rem;\n background: rgba(255, 255, 255, 0.7);\n border: 1px solid #e2e8f0;\n border-radius: 14px;\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: 10px;\n cursor: pointer;\n transition: background 0.2s;\n border: 1px solid #e2e8f0;\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-name {\n margin: 0;\n flex: 1;\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: #f8fafc;\n border: 1px solid #e2e8f0;\n padding: 0.4rem 0.8rem;\n border-radius: 999px;\n color: #475569;\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: #0b1325;\n border: 1px solid #334155;\n color: #e2e8f0;\n min-width: 34px;\n min-height: 30px;\n border-radius: 8px;\n cursor: pointer;\n font-size: 1rem;\n padding: 0.25rem 0.5rem;\n opacity: 1;\n transition: transform 0.15s, background 0.2s, border-color 0.2s;\n}\n\n.btn-icon:hover {\n transform: translateY(-1px);\n background: #111f34;\n border-color: #60a5fa;\n}\n\n.btn-icon:focus-visible {\n outline: 2px solid #60a5fa;\n outline-offset: 2px;\n}\n\n.btn-icon.action-edit {\n color: #93c5fd;\n}\n\n.btn-icon.action-maint {\n color: #fbbf24;\n}\n\n.btn-icon.action-delete {\n color: #fca5a5;\n border-color: #7f1d1d;\n background: #3f1d1d;\n}\n\n.btn-icon.action-delete:hover {\n background: #7f1d1d;\n border-color: #ef4444;\n color: #fee2e2;\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: 1px solid transparent;\n border-radius: 10px;\n font-size: 1rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-primary {\n background: linear-gradient(180deg, #14b8a6 0%, #0d9488 100%);\n color: white;\n}\n\n.btn-primary:hover {\n filter: brightness(0.95);\n}\n\n.btn-secondary {\n background: #ffffff;\n border-color: #dbe2ea;\n color: #0f172a;\n}\n\n.btn-secondary:hover {\n background: #f8fafc;\n}\n\n.btn-danger {\n background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%);\n color: #ffffff;\n}\n\n.btn-ghost {\n display: block;\n width: 100%;\n text-align: left;\n padding: 0.6rem 0.8rem;\n background: #ffffff;\n color: #0f172a;\n border: 0;\n font-weight: 500;\n border-radius: 0;\n}\n\n.btn-ghost:hover {\n background: #f1f5f9;\n}\n\n.btn-danger {\n color: white;\n}\n\n.btn-danger:hover {\n filter: brightness(0.95);\n}\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(15, 23, 42, 0.42);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.modal {\n background: #ffffff;\n border-radius: 16px;\n border: 1px solid #e2e8f0;\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.form-group textarea {\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.form-group textarea:focus,\n.tag-filter-input:focus {\n outline: none;\n border-color: #0ea5a2;\n box-shadow: 0 0 0 3px rgba(14, 165, 162, 0.18);\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: rgba(15, 23, 42, 0.94);\n border: 1px solid #334155;\n border-radius: 14px;\n padding: 1.5rem;\n margin-bottom: 1.5rem;\n box-shadow: 0 10px 24px rgba(2, 6, 23, 0.55);\n color: #e2e8f0;\n}\n\n.detail-section h2 {\n margin-top: 0;\n color: #f8fafc;\n}\n\n.detail-header-row {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 1rem;\n}\n\n.detail-actions {\n display: flex;\n gap: 0.75rem;\n flex-wrap: wrap;\n justify-content: flex-end;\n}\n\n.resource-url-detail {\n color: #94a3b8;\n margin: 0;\n}\n\n.maintenance-badge {\n background: #fff7db;\n color: #8a6a00;\n border: 1px solid #f9db88;\n}\n\n.stats-grid-4 {\n grid-template-columns: repeat(4, 1fr);\n}\n\n.detail-stats-grid {\n margin-top: 2rem;\n}\n\n.section-controls {\n display: flex;\n gap: 1rem;\n align-items: center;\n margin-bottom: 1rem;\n flex-wrap: wrap;\n}\n\n.filter-control {\n display: inline-flex;\n align-items: center;\n gap: 0.4rem;\n}\n\n.filter-control label {\n font-size: 0.9rem;\n color: #cbd5e1;\n}\n\n.filter-control select {\n background: #111827;\n color: #e2e8f0;\n border: 1px solid #334155;\n border-radius: 6px;\n padding: 0.3rem 0.5rem;\n}\n\n.controls-pagination {\n margin-left: auto;\n display: flex;\n gap: 0.5rem;\n}\n\n.table-wrapper {\n overflow-x: auto;\n}\n\n.data-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.data-table th {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 2px solid #334155;\n color: #e2e8f0;\n background: #111827;\n font-size: 0.86rem;\n text-transform: uppercase;\n letter-spacing: 0.02em;\n}\n\n.data-table td {\n padding: 0.75rem;\n border-bottom: 1px solid #1f2937;\n color: #e2e8f0;\n}\n\n.data-table tbody tr:hover {\n background: #1e293b;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.muted-cell {\n color: #94a3b8;\n}\n\n.w-25 {\n width: 25%;\n}\n\n.w-15 {\n width: 15%;\n}\n\n.w-35 {\n width: 35%;\n}\n\n.incident-reason-cell {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 0.5rem;\n}\n\n.incident-reason-toggle {\n cursor: pointer;\n color: #93c5fd;\n flex: 1;\n}\n\n.expand-indicator {\n margin-left: 0.5rem;\n font-size: 0.85rem;\n color: #94a3b8;\n}\n\n.btn-compact {\n padding: 0.3rem 0.6rem;\n font-size: 0.85rem;\n}\n\n.expanded-row {\n background: #0b1325;\n}\n\n.expanded-cell {\n white-space: pre-wrap;\n word-break: break-word;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace;\n font-size: 0.9rem;\n color: #e2e8f0;\n}\n\n.section-title-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.empty-copy {\n color: #94a3b8;\n text-align: center;\n padding: 2rem;\n}\n\n.chart-container {\n margin-top: 1rem;\n height: 300px;\n background: #0b1325;\n border: 1px solid #334155;\n border-radius: 12px;\n padding: 0.5rem;\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: #1e293b;\n color: #f8fafc;\n text-decoration: none;\n border-radius: 6px;\n border: 1px solid #334155;\n transition: background 0.2s;\n}\n\n.back-button:hover {\n background: #334155;\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 .nav-link {\n padding: 0.35rem 0.65rem;\n font-size: 0.9rem;\n }\n\n .navbar-inner {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .navbar-left {\n width: 100%;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n\n .container {\n padding: 1rem;\n }\n\n .dashboard-toolbar {\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 .tag-filter-input,\n .actions-menu-wrapper {\n width: 100%;\n }\n\n .actions-menu {\n left: 0;\n right: auto;\n }\n\n .dashboard-grid {\n grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n gap: 0.75rem;\n }\n\n .cc-metrics-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .cc-layout {\n grid-template-columns: 1fr;\n }\n\n .cc-rail {\n position: static;\n }\n\n .resource-list-shell {\n max-height: none;\n overflow: visible;\n }\n\n .resource-list-count,\n .resource-list-header {\n position: static;\n }\n\n .resource-row {\n grid-template-columns: 1fr;\n gap: 0.7rem;\n }\n\n .resource-list-header {\n display: none;\n }\n\n .row-metrics {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .row-side {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\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 .detail-header-row {\n flex-direction: column;\n }\n\n .detail-actions {\n width: 100%;\n justify-content: flex-start;\n }\n\n .stats-grid-4 {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .filter-control {\n width: 100%;\n justify-content: space-between;\n }\n\n .controls-pagination {\n margin-left: 0;\n width: 100%;\n }\n\n .controls-pagination .btn {\n flex: 1;\n }\n\n .resource-meta {\n grid-template-columns: 1fr;\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 {\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 h2 {\n font-size: 1.25rem;\n }\n\n .btn {\n padding: 0.5rem 1rem;\n font-size: 0.9rem;\n }\n\n .stats-grid-4 {\n grid-template-columns: 1fr;\n }\n\n .row-metrics {\n grid-template-columns: 1fr 1fr;\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",".settings-wizard {\n max-width: 980px;\n margin: 0 auto;\n color: #e2e8f0;\n}\n\n.settings-wizard > h2 {\n color: #f8fafc;\n text-shadow: 0 1px 0 rgba(15, 23, 42, 0.3);\n}\n\n.settings-description {\n color: #cbd5e1;\n margin-bottom: 1.4rem;\n}\n\n.settings-section {\n background: rgba(15, 23, 42, 0.85);\n border-radius: 12px;\n padding: 1.35rem;\n margin-bottom: 1rem;\n border: 1px solid #334155;\n}\n\n.settings-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 1rem;\n padding-bottom: 0.8rem;\n border-bottom: 1px solid #334155;\n}\n\n.settings-header h3 {\n margin: 0;\n color: #f8fafc;\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: #cbd5e1;\n font-size: 0.85rem;\n margin-top: 0.25rem;\n}\n\n.settings-wizard .form-group label {\n color: #e2e8f0;\n}\n\n.settings-wizard .form-group input,\n.settings-wizard .form-group select,\n.settings-wizard .form-group textarea {\n background: #0b1325;\n color: #f8fafc;\n border: 1px solid #334155;\n}\n\n.settings-wizard .form-group input:focus,\n.settings-wizard .form-group select:focus,\n.settings-wizard .form-group textarea:focus {\n border-color: #2563eb;\n box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.28);\n}\n\n.info-box {\n background: #0b1325;\n border-left: 4px solid #60a5fa;\n padding: 1rem;\n margin: 1.5rem 0;\n border-radius: 8px;\n border: 1px solid #334155;\n}\n\n.info-box strong {\n display: block;\n margin-bottom: 0.5rem;\n color: #f8fafc;\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: #e2e8f0;\n}\n\n.info-box a {\n color: #bfdbfe;\n text-decoration: none;\n}\n\n.info-box a:hover {\n text-decoration: underline;\n}\n\n.info-box pre {\n background: #111827;\n color: #f8fafc;\n padding: 1rem;\n border-radius: 8px;\n overflow-x: auto;\n font-size: 0.85rem;\n margin-top: 0.5rem;\n border: 1px solid #334155;\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: #334155;\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: #e2e8f0;\n transition: .4s;\n border-radius: 50%;\n}\n\n.toggle-switch input:checked + .toggle-slider {\n background-color: #2563eb;\n}\n\n.toggle-switch input:focus + .toggle-slider {\n box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.28);\n}\n\n.toggle-switch input:checked + .toggle-slider:before {\n transform: translateX(26px);\n}\n\n.btn-secondary {\n background: #1e293b;\n color: #f8fafc;\n margin-top: 1rem;\n border: 1px solid #334155;\n}\n\n.btn-secondary:hover:not(:disabled) {\n background: #334155;\n}\n\n.btn-secondary:focus-visible {\n outline: 2px solid #60a5fa;\n outline-offset: 2px;\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: #052e16;\n color: #86efac;\n border: 1px solid #166534;\n}\n\n.test-result.error {\n background: #3f1d1d;\n color: #fda4af;\n border: 1px solid #7f1d1d;\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: #166534;\n color: #dcfce7;\n border-left: 4px solid #22c55e;\n}\n\n.save-status.error {\n background: #7f1d1d;\n color: #fee2e2;\n border-left: 4px solid #ef4444;\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",".cc-page {\n padding-top: 1.4rem;\n color: #e2e8f0;\n}\n\n.cc-alert {\n padding: 0.85rem 1rem;\n margin-bottom: 1rem;\n border-radius: 10px;\n border: 1px solid #854d0e;\n background: #2b1907;\n color: #fcd34d;\n}\n\n.cc-page-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n margin-bottom: 1.2rem;\n flex-wrap: wrap;\n}\n\n.cc-page-title {\n margin: 0;\n font-size: 1.65rem;\n letter-spacing: -0.02em;\n color: #f8fafc !important;\n text-shadow: 0 1px 0 rgba(15, 23, 42, 0.3);\n}\n\n.cc-page h2 {\n color: #f8fafc;\n}\n\n.cc-controls {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.cc-pill-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n border: 1px solid #334155;\n border-radius: 999px;\n background: #111827;\n color: #f1f5f9;\n font-size: 0.82rem;\n}\n\n.cc-pill-toggle input {\n accent-color: #3b82f6;\n}\n\n.cc-pill-toggle:focus-within,\n.cc-input-sm:focus,\n.cc-select-sm:focus {\n outline: 2px solid #60a5fa;\n outline-offset: 2px;\n}\n\n.cc-surface {\n background: #0f172a;\n border: 1px solid #334155;\n border-radius: 12px;\n padding: 1rem;\n}\n\n.cc-kpi-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));\n gap: 0.65rem;\n}\n\n.cc-kpi {\n background: #0b1325;\n border: 1px solid #334155;\n border-radius: 10px;\n padding: 0.75rem;\n}\n\n.cc-kpi-label {\n margin: 0;\n font-size: 0.7rem;\n text-transform: uppercase;\n letter-spacing: 0.07em;\n color: #cbd5e1;\n}\n\n.cc-kpi-value {\n margin: 0.35rem 0 0;\n color: #f8fafc;\n font-size: 1.45rem;\n font-weight: 700;\n}\n\n.cc-table-wrap {\n overflow: auto;\n border: 1px solid #334155;\n border-radius: 12px;\n background: #0b1325;\n}\n\n.cc-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.cc-table thead tr {\n background: #0f172a;\n}\n\n.cc-table th {\n text-align: left;\n padding: 0.75rem;\n color: #e2e8f0;\n font-size: 0.78rem;\n text-transform: uppercase;\n letter-spacing: 0.07em;\n border-bottom: 1px solid #334155;\n}\n\n.cc-table td {\n padding: 0.75rem;\n border-bottom: 1px solid #1f2937;\n color: #f1f5f9;\n}\n\n.cc-table tbody tr:hover {\n background: #1e293b;\n}\n\n.cc-pagination {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n margin-top: 1rem;\n padding: 1rem;\n background: #111827;\n border: 1px solid #334155;\n border-radius: 10px;\n}\n\n.cc-input-sm {\n width: 56px;\n padding: 0.45rem;\n border: 1px solid #334155;\n border-radius: 8px;\n text-align: center;\n background: #111827;\n color: #e2e8f0;\n}\n\n.cc-select-sm {\n padding: 0.45rem;\n border: 1px solid #334155;\n border-radius: 8px;\n background: #111827;\n color: #e2e8f0;\n}\n\n.cc-empty {\n text-align: center;\n color: #cbd5e1;\n padding: 2.2rem 1rem;\n}\n\n.history-resource-card {\n margin-bottom: 1.4rem;\n}\n\n.history-resource-title {\n margin: 0 0 0.45rem;\n color: #dbeafe;\n}\n\n.history-resource-meta {\n margin: 0 0 1rem;\n color: #e2e8f0;\n display: flex;\n gap: 1rem;\n flex-wrap: wrap;\n}\n\n.history-resource-meta strong {\n color: #f8fafc;\n}\n\n.history-chart-box {\n height: 400px;\n margin-bottom: 1rem;\n background: #111827;\n padding: 1rem;\n border-radius: 10px;\n border: 1px solid #334155;\n}\n\n.history-trend-row {\n display: flex;\n gap: 1rem;\n margin-bottom: 0.8rem;\n color: #e2e8f0;\n flex-wrap: wrap;\n}\n\n.notifications-list {\n display: grid;\n grid-template-columns: 1fr;\n gap: 0.75rem;\n}\n\n.notification-row {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 1rem;\n padding: 1rem;\n border-radius: 10px;\n border: 1px solid #334155;\n background: #0b1325;\n}\n\n.notification-row.is-unread {\n border-color: #1d4ed8;\n box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.35);\n}\n\n.notification-content {\n flex: 1;\n}\n\n.notification-title {\n margin: 0 0 0.4rem;\n color: #f8fafc;\n font-size: 1rem;\n}\n\n.notification-message {\n margin: 0 0 0.5rem;\n color: #e2e8f0;\n}\n\n.notification-meta {\n display: flex;\n gap: 0.65rem;\n flex-wrap: wrap;\n color: #cbd5e1;\n font-size: 0.84rem;\n}\n\n.notification-chip {\n background: #111827;\n border: 1px solid #334155;\n border-radius: 999px;\n padding: 0.2rem 0.55rem;\n color: #f1f5f9;\n}\n\n.notification-actions {\n display: flex;\n gap: 0.4rem;\n flex-shrink: 0;\n}\n\n.notification-actions .btn:focus-visible {\n outline: 2px solid #60a5fa;\n outline-offset: 2px;\n}\n\n@media (max-width: 768px) {\n .cc-controls {\n width: 100%;\n }\n\n .cc-controls .btn,\n .cc-controls .tag-filter-input,\n .cc-controls .cc-pill-toggle {\n width: 100%;\n }\n\n .cc-pagination {\n flex-direction: column;\n align-items: stretch;\n }\n}\n",".status-container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 2rem;\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: 1px solid #dbe2ea;\n padding-bottom: 1.5rem;\n}\n\n.status-header h1 {\n margin: 0 0 0.5rem 0;\n font-size: 2.2rem;\n color: #0f172a;\n}\n\n.status-subtitle {\n margin: 0;\n color: #64748b;\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: #64748b;\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: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);\n border: 1px solid #dbe2ea;\n border-radius: 14px;\n padding: 1.5rem;\n text-align: center;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);\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: #64748b;\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: #1e293b;\n margin: 0 0 1rem 0;\n border-bottom: 1px solid #e5e7eb;\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: 1px solid #dbe2ea;\n border-radius: 14px;\n padding: 1.5rem;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);\n transition: all 0.2s ease;\n}\n\n.status-card:hover {\n box-shadow: 0 8px 18px rgba(15, 23, 42, 0.12);\n}\n\n.status-card-up {\n border-color: #86efac;\n background: #f0fdf4;\n}\n\n.status-card-down {\n border-color: #fca5a5;\n background: #fef2f2;\n}\n\n.status-card-maintenance {\n border-color: #fcd34d;\n background: #fffbeb;\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: #0f172a;\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 #dbe2ea;\n border-radius: 12px;\n overflow: hidden;\n}\n\n.maintenance-table thead,\n.incidents-table thead {\n background-color: #f1f5f9;\n border-bottom: 2px solid #dbe2ea;\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 #e5e7eb;\n}\n\n.maintenance-table tr:hover,\n.incidents-table tr:hover {\n background-color: #f0f9ff;\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",".observability-page {\n\tpadding-top: 2rem;\n}\n\n.observability-page h2 {\n\tcolor: #f8fafc;\n\ttext-shadow: 0 1px 0 rgba(15, 23, 42, 0.3);\n}\n\n.obs-tabs {\n\tmargin-bottom: 2rem;\n\tborder-bottom: 1px solid #334155;\n\tdisplay: flex;\n\tgap: 0.5rem;\n\tflex-wrap: wrap;\n}\n\n.obs-tab {\n\tpadding: 0.75rem 1rem;\n\tborder: 1px solid transparent;\n\tborder-top-left-radius: 10px;\n\tborder-top-right-radius: 10px;\n\tborder-bottom: 3px solid transparent;\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-weight: 600;\n\tcolor: #cbd5e1;\n}\n\n.obs-tab:focus-visible {\n\toutline: 2px solid #60a5fa;\n\toutline-offset: 2px;\n}\n\n.obs-tab.is-active {\n\tborder-bottom-color: #60a5fa;\n\tcolor: #f8fafc;\n\tbackground: #0f172a;\n\tborder-color: #334155;\n\tborder-bottom-color: #60a5fa;\n}\n\n.obs-summary-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n\tgap: 1rem;\n\tmargin-bottom: 2rem;\n}\n\n.obs-summary-card {\n\tpadding: 1rem;\n\tborder: 1px solid #334155;\n\tborder-radius: 14px;\n\tbackground: linear-gradient(180deg, #0f172a 0%, #0b1325 100%);\n\tbox-shadow: none;\n}\n\n.obs-card-label {\n\tfont-size: 0.85rem;\n\tcolor: #cbd5e1;\n}\n\n.obs-card-value {\n\tfont-size: 1.5rem;\n\tfont-weight: 700;\n\tmargin-top: 0.45rem;\n\tcolor: #f8fafc;\n}\n\n.obs-card-value.is-danger {\n\tcolor: #f87171;\n}\n\n.obs-card-value.is-ok {\n\tcolor: #34d399;\n}\n\n.obs-table-wrap {\n\toverflow-x: auto;\n}\n\n.obs-spacing-bottom {\n\tmargin-bottom: 2rem;\n}\n\n.obs-table {\n\twidth: 100%;\n\tborder-collapse: collapse;\n}\n\n.obs-table th {\n\ttext-align: left;\n\tpadding: 0.75rem;\n\tbackground: #0f172a;\n\tborder-bottom: 2px solid #334155;\n\tcolor: #e2e8f0;\n\tfont-size: 0.84rem;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.02em;\n}\n\n.obs-table td {\n\tpadding: 0.75rem;\n\tborder-bottom: 1px solid #1f2937;\n\tcolor: #f1f5f9;\n}\n\n.obs-table tbody tr:hover {\n\tbackground: #1e293b;\n}\n\n.obs-right {\n\ttext-align: right !important;\n}\n\n.obs-rate-pill {\n\tpadding: 0.25rem 0.5rem;\n\tborder-radius: 4px;\n\tfont-size: 0.88rem;\n\tfont-weight: 600;\n}\n\n.obs-rate-pill.is-good {\n\tbackground: #052e16;\n\tcolor: #4ade80;\n}\n\n.obs-rate-pill.is-warn {\n\tbackground: #3f2a0f;\n\tcolor: #fbbf24;\n}\n\n.obs-empty-copy {\n\tcolor: #cbd5e1;\n\ttext-align: center;\n\tpadding: 2rem;\n}\n\n.obs-zebra {\n\tbackground: #0b1325;\n}\n\n.obs-error-code {\n\tfont-size: 0.85rem;\n\tcolor: #f87171;\n}\n\n.obs-muted-sm {\n\tfont-size: 0.85rem;\n\tcolor: #cbd5e1;\n}\n\n.obs-small {\n\tfont-size: 0.85rem;\n}\n\n.obs-audit-summary {\n\tmargin-bottom: 2rem;\n\tpadding: 1rem;\n\tbackground: #0f172a;\n\tborder-radius: 12px;\n\tborder: 1px solid #334155;\n}\n\n.obs-audit-summary-line {\n\tmargin: 0.25rem 0;\n\tfont-size: 0.9rem;\n\tcolor: #e2e8f0;\n}\n\n.obs-filters-grid {\n\tmargin-bottom: 1rem;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n\tgap: 0.5rem;\n}\n\n.obs-filter-input {\n\tpadding: 0.5rem;\n\tborder: 1px solid #334155;\n\tborder-radius: 10px;\n\tbackground: #111827;\n\tcolor: #e2e8f0;\n}\n\n.obs-filter-input:focus {\n\toutline: none;\n\tborder-color: #2563eb;\n\tbox-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);\n}\n\n.obs-toggle-code:focus-visible {\n\toutline: 2px solid #60a5fa;\n\toutline-offset: 2px;\n}\n\n.obs-click-row {\n\tcursor: pointer;\n}\n\n.obs-toggle-code {\n\tcursor: pointer;\n\tcolor: #bfdbfe;\n}\n\n.obs-expanded-row {\n\tbackground: #111b2e;\n}\n\n.obs-expanded-cell {\n\tpadding: 1rem;\n}\n\n.obs-pre {\n\tmargin-top: 0.5rem;\n\tbackground: #0b1325;\n\tcolor: #e2e8f0;\n\tpadding: 0.75rem;\n\tborder-radius: 8px;\n\toverflow-x: auto;\n\tborder: 1px solid #334155;\n}\n\n@media (max-width: 768px) {\n\t.obs-tab {\n\t\tpadding: 0.6rem 0.8rem;\n\t\tfont-size: 0.92rem;\n\t}\n}\n"],"names":[],"ignoreList":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/client/build/static/css/main.40bbff16.css b/client/build/static/css/main.5afb44a9.css
similarity index 50%
rename from client/build/static/css/main.40bbff16.css
rename to client/build/static/css/main.5afb44a9.css
index d616a57..376b098 100644
--- a/client/build/static/css/main.40bbff16.css
+++ b/client/build/static/css/main.5afb44a9.css
@@ -1,2 +1,2 @@
-body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#020617;color:#e2e8f0;font-family:Manrope,IBM Plex Sans,Segoe UI,sans-serif;margin:0}*{box-sizing:border-box}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background:radial-gradient(circle at 15% 0,#1e40af33 0,#0000 42%),radial-gradient(circle at 95% 10%,#0f766e24 0,#0000 36%),#020617;min-height:100vh}.navbar{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#0f172ad1;border-bottom:1px solid #334155;box-shadow:0 4px 18px #0f172a0f;color:#e2e8f0;padding:.85rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:30}.navbar h1{font-size:1.5rem;letter-spacing:-.02em;margin:0}.navbar-inner{gap:1rem;justify-content:space-between;width:100%}.navbar-inner,.navbar-left{align-items:center;display:flex}.navbar-left{gap:1.5rem;min-width:0}.navbar-links{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.nav-link{border-radius:7px;color:#cbd5e1;font-size:.92rem;font-weight:600;padding:.4rem .7rem;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s}.nav-link:hover{background:#111827;box-shadow:inset 0 0 0 1px #334155;color:#f8fafc}.settings-link{align-items:center;display:inline-flex;gap:.4rem}.setup-badge{background:#facc15;border-radius:999px;color:#111827;font-size:.68rem;font-weight:700;padding:.15rem .5rem}.notifications-pill{align-items:center;background:#111827;border:1px solid #334155;border-radius:999px;color:#e2e8f0;display:flex;font-size:.82rem;gap:.45rem;padding:.3rem .7rem}.container{margin:0 auto;max-width:1400px;padding:2rem}.dashboard-toolbar{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:2rem}.dashboard-title{color:#f8fafc;font-size:1.85rem;letter-spacing:-.02em;margin:0}.dashboard-subtitle{color:#94a3b8;font-size:.9rem;margin:.2rem 0 0}.dashboard-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.quick-filter-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:.2rem 0 .8rem}.quick-chip{background:#0f172a;border:1px solid #334155;border-radius:999px;color:#cbd5e1;cursor:pointer;font-size:.74rem;font-weight:700;letter-spacing:.02em;padding:.28rem .7rem}.quick-chip:hover{background:#111f34}.quick-chip.active{background:#14b8a6;border-color:#14b8a6;color:#052e2b}.tag-filter-input{background:#111827;border:1px solid #334155;border-radius:10px;color:#e2e8f0;min-width:180px;padding:.5rem .75rem}.actions-menu-wrapper{position:relative}.actions-menu{background:#fff;border:1px solid #dbe2ea;border-radius:8px;box-shadow:0 8px 20px #0f172a24;min-width:220px;padding:.35rem 0;position:absolute;right:0;top:110%;z-index:20}.actions-menu-divider{border:0;border-top:1px solid #eef2f6;margin:.25rem 0}.hidden-file-input{display:none}.toast-stack{position:fixed;right:20px;top:20px;z-index:9999}.toast-item{border:1px solid #0000;border-radius:8px;box-shadow:0 8px 20px #0f172a29;margin-bottom:10px;min-width:280px;padding:12px 16px}.toast-error{background:#fee2e2;border-color:#fecaca;color:#7f1d1d}.toast-success{background:#dcfce7;border-color:#bbf7d0;color:#14532d}.toast-info{background:#dbeafe;border-color:#bfdbfe;color:#1e3a8a}.cc-metrics-grid{grid-gap:.65rem;display:grid;gap:.65rem;grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:1rem}.cc-metric-card{background:linear-gradient(180deg,#0f172af5,#1e293bf5);border:1px solid #334155;border-radius:10px;color:#e2e8f0;padding:.75rem}.cc-metric-label{color:#94a3b8;font-size:.68rem;letter-spacing:.08em;margin:0;text-transform:uppercase}.cc-metric-value{font-size:1.2rem;font-weight:700;margin:.35rem 0 0}.metric-ok{border-color:#14532d}.metric-down{border-color:#7f1d1d}.metric-maint{border-color:#78350f}.cc-layout{grid-gap:.8rem;align-items:start;display:grid;gap:.8rem;grid-template-columns:minmax(0,1fr) 300px}.cc-main{min-width:0}.cc-rail{display:flex;flex-direction:column;gap:.75rem;position:-webkit-sticky;position:sticky;top:82px}.cc-panel{background:#0f172af0;border:1px solid #334155;border-radius:12px;color:#e2e8f0;padding:.75rem}.cc-panel h3{font-size:.9rem;letter-spacing:.03em;margin:0 0 .65rem}.cc-empty{color:#94a3b8;font-size:.85rem;margin:0}.cc-group-list,.cc-incident-list{display:flex;flex-direction:column;gap:.4rem}.cc-group-item,.cc-incident-item{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#e2e8f0;cursor:pointer;display:flex;justify-content:space-between;padding:.45rem .55rem;width:100%}.cc-group-item:hover,.cc-incident-item:hover{background:#111f34;border-color:#475569}.cc-incident-name{font-size:.85rem;font-weight:600;margin-right:.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-bottom:1.5rem}.resource-list{display:flex;flex-direction:column;gap:.45rem}.resource-list-shell{background:#0f172ae6;border:1px solid #334155;border-radius:12px;max-height:calc(100vh - 250px);overflow:auto;padding:.65rem}.resource-list-header{grid-gap:1rem;background:#0f172afa;border-bottom:1px solid #334155;display:grid;font-size:.72rem;gap:1rem;grid-template-columns:minmax(260px,2fr) minmax(220px,1.25fr) minmax(170px,.8fr);letter-spacing:.08em;margin-bottom:.45rem;padding:.35rem .6rem .6rem;text-transform:uppercase;top:0;z-index:5}.resource-list-count,.resource-list-header{color:#94a3b8;position:-webkit-sticky;position:sticky}.resource-list-count{background:#0f172af2;font-size:.75rem;margin:0 .6rem .55rem;padding-bottom:.25rem;top:31px;z-index:4}.resource-row{grid-gap:1rem;align-items:center;background:#0f172af5;border:1px solid #334155;border-radius:10px;box-shadow:0 4px 12px #0206178c;cursor:pointer;display:grid;gap:1rem;grid-template-columns:minmax(260px,2fr) minmax(220px,1.25fr) minmax(170px,.8fr);padding:.65rem .8rem;transition:border-color .2s,transform .2s,box-shadow .2s}.resource-row:hover{border-color:#60a5fa;box-shadow:0 12px 22px #020617a6;transform:translateY(-1px)}.row-main{min-width:0}.row-title-line{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.15rem}.row-name{color:#f8fafc;font-size:.98rem;margin:0}.resource-group-pill{background:#1e293b;border-radius:999px;color:#cbd5e1;font-size:.72rem;font-weight:700;padding:.15rem .5rem}.incident-inline{background:#fee2e2;border:1px solid #fecaca;border-radius:999px;color:#991b1b}.incident-inline,.maintenance-inline{font-size:.72rem;padding:.15rem .45rem}.maintenance-inline{background:#fef3c7;border:1px solid #fde68a;border-radius:999px;color:#92400e}.row-type,.row-url{color:#94a3b8;margin:0}.row-url{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-type{font-size:.72rem}.row-metrics{grid-gap:.8rem;align-items:center;display:grid;gap:.8rem;grid-template-columns:repeat(3,minmax(0,1fr))}.row-metrics .stat-label{color:#94a3b8;font-size:.64rem}.row-metrics .stat-value{color:#e2e8f0;font-weight:700}.row-sparkline{min-width:95px}.row-side{align-items:flex-end;display:flex;flex-direction:column;gap:.2rem}.row-actions{display:flex;gap:.35rem}.resource-card{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 22px #0f172a0f;cursor:pointer;padding:1rem 1.1rem;transition:transform .2s,box-shadow .2s}.resource-card.compact{display:flex;flex-direction:column;gap:.4rem}.resource-card:hover{box-shadow:0 14px 28px #0f172a21;transform:translateY(-2px)}.resource-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.resource-name{font-size:1.05rem;font-weight:700;margin:0 0 .2rem}.trend-chip{display:inline-block;font-size:.72rem;font-weight:800;margin-left:.3rem}.trend-better{color:#34d399}.trend-worse{color:#f87171}.trend-flat{color:#94a3b8}.resource-url{color:#64748b;font-size:.8rem;word-break:break-all}.load-more-btn{background:#f8fafc;border:1px dashed #94a3b8;border-radius:10px;color:#334155;cursor:pointer;font-weight:700;padding:.65rem;width:100%}.load-more-btn:hover{background:#f1f5f9}.resource-type{color:#475569;font-size:.78rem;margin:.15rem 0 0}.status-badge{border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase}.status-up{background:#dcfce7;color:#166534}.status-down{background:#fee2e2;color:#991b1b}.status-unknown{background:#e2e8f0;color:#334155}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1rem}.stat{text-align:center}.stat-value{color:#e2e8f0;font-size:1.2rem;font-weight:700;margin:0}.stat-value.small{font-size:1.05rem}.stat-label{color:#94a3b8;font-size:.75rem;margin:0;text-transform:uppercase}.resource-meta{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr)}.sparkline{height:52px;width:100%}.last-check{color:#94a3b8;font-size:.75rem;margin:0}.group-section{background:#ffffffb3;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:2rem;padding:1rem}.group-header{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;gap:1rem;margin-bottom:1rem;padding:1rem;transition:background .2s}.group-header:hover{background:#f9f9f9}.group-header h3{color:#333;font-size:1.1rem;margin:0}.group-name{flex:1 1;margin:0}.group-toggle{color:#667eea;font-size:.9rem;min-width:15px}.group-stats{display:flex;font-size:.85rem;gap:1.5rem;margin-left:auto}.group-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#475569;font-weight:500;padding:.4rem .8rem}.edit-input{border:1px solid #667eea;border-radius:6px;font-size:1.05rem;margin-bottom:.5rem;padding:.5rem;width:100%}.card-edit-form{border-top:1px solid #eee;margin-top:.75rem;padding-top:.75rem}.edit-field{margin-bottom:.5rem}.edit-field label{color:#666;display:block;font-size:.75rem;font-weight:600;margin-bottom:.25rem}.edit-field input{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.4rem .6rem;width:100%}.card-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.btn-icon{background:#0b1325;border:1px solid #334155;border-radius:8px;color:#e2e8f0;cursor:pointer;font-size:1rem;min-height:30px;min-width:34px;opacity:1;padding:.25rem .5rem;transition:transform .15s,background .2s,border-color .2s}.btn-icon:hover{background:#111f34;border-color:#60a5fa;transform:translateY(-1px)}.btn-icon:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.btn-icon.action-edit{color:#93c5fd}.btn-icon.action-maint{color:#fbbf24}.btn-icon.action-delete{background:#3f1d1d;border-color:#7f1d1d;color:#fca5a5}.btn-icon.action-delete:hover{background:#7f1d1d;border-color:#ef4444;color:#fee2e2}.btn-sm{font-size:.8rem;padding:.4rem .8rem}.btn{border:1px solid #0000;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.btn-primary{background:linear-gradient(180deg,#14b8a6,#0d9488);color:#fff}.btn-primary:hover{filter:brightness(.95)}.btn-secondary{background:#fff;border-color:#dbe2ea;color:#0f172a}.btn-secondary:hover{background:#f8fafc}.btn-danger{background:linear-gradient(180deg,#ef4444,#dc2626)}.btn-ghost{background:#fff;border:0;border-radius:0;color:#0f172a;display:block;font-weight:500;padding:.6rem .8rem;text-align:left;width:100%}.btn-ghost:hover{background:#f1f5f9}.btn-danger{color:#fff}.btn-danger:hover{filter:brightness(.95)}.modal-overlay{align-items:center;background:#0f172a6b;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border:1px solid #e2e8f0;border-radius:16px;max-height:90vh;max-width:500px;overflow-y:auto;padding:2rem;width:90%}.modal h2{margin-top:0}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:6px;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.tag-filter-input:focus{border-color:#0ea5a2;box-shadow:0 0 0 3px #0ea5a22e;outline:none}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.detail-section{background:#0f172af0;border:1px solid #334155;border-radius:14px;box-shadow:0 10px 24px #0206178c;color:#e2e8f0;margin-bottom:1.5rem;padding:1.5rem}.detail-section h2{color:#f8fafc;margin-top:0}.detail-header-row{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.detail-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.resource-url-detail{color:#94a3b8;margin:0}.maintenance-badge{background:#fff7db;border:1px solid #f9db88;color:#8a6a00}.stats-grid-4{grid-template-columns:repeat(4,1fr)}.detail-stats-grid{margin-top:2rem}.section-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.filter-control{align-items:center;display:inline-flex;gap:.4rem}.filter-control label{color:#cbd5e1;font-size:.9rem}.filter-control select{background:#111827;border:1px solid #334155;border-radius:6px;color:#e2e8f0;padding:.3rem .5rem}.controls-pagination{display:flex;gap:.5rem;margin-left:auto}.table-wrapper{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{background:#111827;border-bottom:2px solid #334155;color:#e2e8f0;font-size:.86rem;letter-spacing:.02em;padding:.75rem;text-align:left;text-transform:uppercase}.data-table td{border-bottom:1px solid #1f2937;color:#e2e8f0;padding:.75rem}.data-table tbody tr:hover{background:#1e293b}.text-right{text-align:right!important}.muted-cell{color:#94a3b8}.w-25{width:25%}.w-15{width:15%}.w-35{width:35%}.incident-reason-cell{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.incident-reason-toggle{color:#93c5fd;cursor:pointer;flex:1 1}.expand-indicator{color:#94a3b8;font-size:.85rem;margin-left:.5rem}.btn-compact{font-size:.85rem;padding:.3rem .6rem}.expanded-row{background:#0b1325}.expanded-cell{color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.9rem;white-space:pre-wrap;word-break:break-word}.section-title-row{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.empty-copy{color:#94a3b8;padding:2rem;text-align:center}.chart-container{background:#0b1325;border:1px solid #334155;border-radius:12px;height:300px;margin-top:1rem;padding:.5rem}.incident-badge{background:#fff3cd;color:#856404;font-weight:600}.back-button,.incident-badge{border-radius:6px;display:inline-block;margin-bottom:1rem;padding:.5rem 1rem}.back-button{background:#1e293b;border:1px solid #334155;color:#f8fafc;text-decoration:none;transition:background .2s}.back-button:hover{background:#334155}.empty-state{color:#666;padding:3rem;text-align:center}.empty-state h3{color:#333;margin-bottom:.5rem}@media (max-width:1024px){.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.container{padding:1.5rem}}@media (max-width:768px){.navbar{padding:.75rem 1rem}.navbar h1{font-size:1.25rem}.navbar-links{flex-wrap:wrap;gap:.5rem}.nav-link{font-size:.9rem;padding:.35rem .65rem}.navbar-inner,.navbar-left{align-items:flex-start;flex-direction:column}.navbar-left{gap:.75rem;width:100%}.container{padding:1rem}.dashboard-toolbar{align-items:flex-start;flex-direction:column;gap:1rem}.dashboard-actions{flex-direction:column;gap:.5rem;width:100%}.actions-menu-wrapper,.dashboard-actions button,.dashboard-actions select,.tag-filter-input{width:100%}.actions-menu{left:0;right:auto}.dashboard-grid{gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.cc-metrics-grid{grid-template-columns:repeat(2,1fr)}.cc-layout{grid-template-columns:1fr}.cc-rail{position:static}.resource-list-shell{max-height:none;overflow:visible}.resource-list-count,.resource-list-header{position:static}.resource-row{gap:.7rem;grid-template-columns:1fr}.resource-list-header{display:none}.row-metrics{grid-template-columns:repeat(3,1fr)}.row-side{align-items:center;flex-direction:row;justify-content:space-between}.stats-grid{gap:.75rem;grid-template-columns:repeat(2,1fr)!important}.resource-card{padding:.875rem}.detail-header-row{flex-direction:column}.detail-actions{justify-content:flex-start;width:100%}.stats-grid-4{grid-template-columns:repeat(2,1fr)}.filter-control{justify-content:space-between;width:100%}.controls-pagination{margin-left:0;width:100%}.controls-pagination .btn{flex:1 1}.resource-meta{gap:.5rem;grid-template-columns:1fr}.resource-meta>div{text-align:left!important}.chart-container{height:300px!important}.detail-section{padding:1rem!important}.form-row{flex-direction:column;gap:0}.form-group{width:100%}.modal{margin:1rem;max-width:none;padding:1.5rem;width:95%}.group-header{align-items:flex-start;flex-direction:column;gap:.5rem}.group-stats{justify-content:space-between;width:100%}.card-actions{flex-direction:row;gap:.5rem;justify-content:flex-end}table{font-size:.85rem}td,th{padding:.5rem!important}}@media (max-width:480px){.navbar h1{font-size:1.1rem}.stat-value{font-size:1.5rem}.stat-label{font-size:.75rem}.stats-grid{grid-template-columns:1fr!important}.modal h2{font-size:1.25rem}.btn{font-size:.9rem;padding:.5rem 1rem}.stats-grid-4{grid-template-columns:1fr}.row-metrics{grid-template-columns:1fr 1fr}}.notification-center{position:relative}.notification-bell-container{align-items:center;display:flex}.notification-bell{background:none;border:none;cursor:pointer;font-size:1.5rem;padding:.5rem;position:relative;transition:transform .2s}.notification-bell:hover{transform:scale(1.1)}.notification-badge{align-items:center;background:#dc3545;border-radius:50%;color:#fff;display:flex;font-size:.65rem;font-weight:700;height:1.25rem;justify-content:center;line-height:1;position:absolute;right:0;top:0;width:1.25rem}.notification-popup{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;max-height:600px;overflow:hidden;position:fixed;right:20px;top:60px;width:400px;z-index:1000}.notification-header{align-items:center;background:#f9f9f9;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:1rem}.notification-header h3{color:#333;font-size:1.1rem;margin:0}.close-btn{align-items:center;background:none;border:none;color:#999;cursor:pointer;display:flex;font-size:1.25rem;height:30px;justify-content:center;padding:0;width:30px}.close-btn:hover{color:#333}.notification-filters{background:#fafafa;border-bottom:1px solid #eee;display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem}.filter-btn{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.85rem;padding:.4rem .75rem;transition:all .2s}.filter-btn:hover{border-color:#007bff;color:#007bff}.filter-btn.active{background:#007bff;border-color:#007bff;color:#fff}.clear-btn{background:#dc3545;border-color:#dc3545;color:#fff;margin-left:auto}.clear-btn:hover{background:#c82333;border-color:#c82333}.notification-list{flex:1 1;max-height:450px;overflow-y:auto}.notification-item{background:#fff;border-bottom:1px solid #eee;display:flex;gap:.75rem;padding:1rem;transition:background .2s}.notification-item:hover{background:#f9f9f9}.notification-item.unread{background:#f0f8ff;font-weight:500}.notification-content{min-width:0}.notification-title{color:#333;font-size:.95rem;font-weight:600;margin-bottom:.25rem}.notification-message{color:#666;font-size:.85rem;margin-bottom:.5rem;word-break:break-word}.notification-meta{color:#999;font-size:.75rem;gap:.75rem}.notification-resource{background:#f0f0f0;border-radius:3px;padding:.2rem .5rem}.notification-time{white-space:nowrap}.notification-actions{align-items:flex-start;gap:.5rem}.action-btn{background:none;border:none;color:#999;cursor:pointer;flex-shrink:0;font-size:1rem;padding:.25rem .5rem;transition:color .2s}.action-btn:hover{color:#333}.action-btn.mark-read:hover{color:#28a745}.action-btn.delete:hover{color:#dc3545}.notification-list::-webkit-scrollbar{width:6px}.notification-list::-webkit-scrollbar-track{background:#f1f1f1}.notification-list::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.notification-list::-webkit-scrollbar-thumb:hover{background:#555}@media (max-width:600px){.notification-popup{left:10px;max-height:70vh;position:fixed;right:10px;top:60px;width:auto}.notification-filters{flex-direction:column}.filter-btn{flex:1 1}.clear-btn{margin-left:0}}.settings-wizard{color:#e2e8f0;margin:0 auto;max-width:980px}.settings-wizard>h2{color:#f8fafc;text-shadow:0 1px 0 #0f172a4d}.settings-description{color:#cbd5e1;margin-bottom:1.4rem}.settings-section{background:#0f172ad9;border:1px solid #334155;border-radius:12px;margin-bottom:1rem;padding:1.35rem}.settings-header{align-items:center;border-bottom:1px solid #334155;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.8rem}.settings-header h3{color:#f8fafc;margin:0}.settings-form{margin-top:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:1rem}.form-group small{color:#cbd5e1;display:block;font-size:.85rem;margin-top:.25rem}.settings-wizard .form-group label{color:#e2e8f0}.settings-wizard .form-group input,.settings-wizard .form-group select,.settings-wizard .form-group textarea{background:#0b1325;border:1px solid #334155;color:#f8fafc}.settings-wizard .form-group input:focus,.settings-wizard .form-group select:focus,.settings-wizard .form-group textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #60a5fa47}.info-box{background:#0b1325;border:1px solid #334155;border-radius:8px;margin:1.5rem 0;padding:1rem}.info-box strong{color:#f8fafc;display:block;margin-bottom:.5rem}.info-box ol{margin:.5rem 0 0 1.5rem;padding:0}.info-box li{color:#e2e8f0;margin:.25rem 0}.info-box a{color:#bfdbfe;text-decoration:none}.info-box a:hover{text-decoration:underline}.info-box pre{background:#111827;border:1px solid #334155;border-radius:8px;color:#f8fafc;font-size:.85rem;margin-top:.5rem;overflow-x:auto;padding:1rem}.toggle-switch{display:inline-block;height:34px;position:relative;width:60px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#334155;border-radius:34px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s}.toggle-slider:before{background-color:#e2e8f0;border-radius:50%;bottom:4px;content:"";height:26px;left:4px;position:absolute;transition:.4s;width:26px}.toggle-switch input:checked+.toggle-slider{background-color:#2563eb}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #60a5fa47}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(26px)}.btn-secondary{background:#1e293b;border:1px solid #334155;color:#f8fafc;margin-top:1rem}.btn-secondary:hover:not(:disabled){background:#334155}.btn-secondary:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.test-result{border-radius:8px;margin:1.5rem 0;padding:1rem}.test-result.success{background:#052e16;border:1px solid #166534;color:#86efac}.test-result.error{background:#3f1d1d;border:1px solid #7f1d1d;color:#fda4af}.test-result strong{display:block;margin-bottom:.5rem}.test-result p{margin:0}.settings-actions{display:flex;justify-content:center;margin-top:2rem}.btn-large{font-size:1.1rem;padding:1rem 3rem}.save-status{animation:slideIn .3s ease-out;border-radius:6px;box-shadow:0 4px 12px #00000026;max-width:300px;padding:1rem 1.5rem;position:fixed;right:20px;top:20px;z-index:1000}.save-status.success{background:#166534;border-left:4px solid #22c55e;color:#dcfce7}.save-status.error{background:#7f1d1d;border-left:4px solid #ef4444;color:#fee2e2}.save-status strong{display:block;font-size:1rem;margin-bottom:.5rem}.save-status p{font-size:.9rem;margin:0}@keyframes slideIn{0%{opacity:0;transform:translateX(400px)}to{opacity:1;transform:translateX(0)}}.cc-page{color:#e2e8f0;padding-top:1.4rem}.cc-alert{background:#2b1907;border:1px solid #854d0e;border-radius:10px;color:#fcd34d;margin-bottom:1rem;padding:.85rem 1rem}.cc-page-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.2rem}.cc-page-title{color:#f8fafc!important;font-size:1.65rem;letter-spacing:-.02em;margin:0;text-shadow:0 1px 0 #0f172a4d}.cc-page h2{color:#f8fafc}.cc-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.cc-pill-toggle{align-items:center;background:#111827;border:1px solid #334155;border-radius:999px;color:#f1f5f9;display:inline-flex;font-size:.82rem;gap:.5rem;padding:.5rem .75rem}.cc-pill-toggle input{accent-color:#3b82f6}.cc-input-sm:focus,.cc-pill-toggle:focus-within,.cc-select-sm:focus{outline:2px solid #60a5fa;outline-offset:2px}.cc-surface{background:#0f172a;border:1px solid #334155;border-radius:12px;padding:1rem}.cc-kpi-grid{grid-gap:.65rem;display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.cc-kpi{background:#0b1325;border:1px solid #334155;border-radius:10px;padding:.75rem}.cc-kpi-label{color:#cbd5e1;font-size:.7rem;letter-spacing:.07em;margin:0;text-transform:uppercase}.cc-kpi-value{color:#f8fafc;font-size:1.45rem;font-weight:700;margin:.35rem 0 0}.cc-table-wrap{background:#0b1325;border:1px solid #334155;border-radius:12px;overflow:auto}.cc-table{border-collapse:collapse;width:100%}.cc-table thead tr{background:#0f172a}.cc-table th{border-bottom:1px solid #334155;color:#e2e8f0;font-size:.78rem;letter-spacing:.07em;padding:.75rem;text-align:left;text-transform:uppercase}.cc-table td{border-bottom:1px solid #1f2937;color:#f1f5f9;padding:.75rem}.cc-table tbody tr:hover{background:#1e293b}.cc-pagination{align-items:center;background:#111827;border:1px solid #334155;border-radius:10px;display:flex;gap:1rem;justify-content:center;margin-top:1rem;padding:1rem}.cc-input-sm{text-align:center;width:56px}.cc-input-sm,.cc-select-sm{background:#111827;border:1px solid #334155;border-radius:8px;color:#e2e8f0;padding:.45rem}.cc-empty{color:#cbd5e1;padding:2.2rem 1rem;text-align:center}.history-resource-card{margin-bottom:1.4rem}.history-resource-title{color:#dbeafe;margin:0 0 .45rem}.history-resource-meta{color:#e2e8f0;display:flex;flex-wrap:wrap;gap:1rem;margin:0 0 1rem}.history-resource-meta strong{color:#f8fafc}.history-chart-box{background:#111827;border:1px solid #334155;border-radius:10px;height:400px;margin-bottom:1rem;padding:1rem}.history-trend-row{color:#e2e8f0;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.8rem}.notifications-list{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr}.notification-row{align-items:flex-start;background:#0b1325;border:1px solid #334155;border-radius:10px;display:flex;gap:1rem;justify-content:space-between;padding:1rem}.notification-row.is-unread{border-color:#1d4ed8;box-shadow:inset 0 0 0 1px #3b82f659}.notification-content{flex:1 1}.notification-title{color:#f8fafc;font-size:1rem;margin:0 0 .4rem}.notification-message{color:#e2e8f0;margin:0 0 .5rem}.notification-meta{color:#cbd5e1;display:flex;flex-wrap:wrap;font-size:.84rem;gap:.65rem}.notification-chip{background:#111827;border:1px solid #334155;border-radius:999px;color:#f1f5f9;padding:.2rem .55rem}.notification-actions{display:flex;flex-shrink:0;gap:.4rem}.notification-actions .btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}@media (max-width:768px){.cc-controls,.cc-controls .btn,.cc-controls .cc-pill-toggle,.cc-controls .tag-filter-input{width:100%}.cc-pagination{align-items:stretch;flex-direction:column}}.status-container{margin:0 auto;max-width:1200px;padding:2rem}.status-header{align-items:flex-start;border-bottom:1px solid #dbe2ea;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.status-header h1{color:#0f172a;font-size:2.2rem;margin:0 0 .5rem}.status-subtitle{color:#64748b;font-size:1rem;margin:0}.status-refresh{text-align:right}.status-refresh label{align-items:center;cursor:pointer;display:flex;gap:.5rem;margin-bottom:.5rem}.status-refresh input[type=checkbox]{cursor:pointer}.last-updated{color:#64748b;font-size:.85rem;margin:0}.status-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.summary-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #dbe2ea;border-radius:14px;box-shadow:0 8px 20px #0f172a0f;padding:1.5rem;text-align:center}.summary-value{font-size:2rem;font-weight:700;margin-bottom:.5rem}.summary-label{color:#64748b;font-size:.9rem;margin:0}.status-section{margin-bottom:2rem}.status-section h2{border-bottom:1px solid #e5e7eb;color:#1e293b;font-size:1.5rem;margin:0 0 1rem;padding-bottom:.5rem}.status-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.status-card{border:1px solid #dbe2ea;border-radius:14px;box-shadow:0 8px 20px #0f172a0f;padding:1.5rem;transition:all .2s ease}.status-card:hover{box-shadow:0 8px 18px #0f172a1f}.status-card-up{background:#f0fdf4;border-color:#86efac}.status-card-down{background:#fef2f2;border-color:#fca5a5}.status-card-maintenance{background:#fffbeb;border-color:#fcd34d}.status-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.status-card h3{color:#0f172a;flex:1 1;font-size:1.2rem;margin:0}.status-badge{border-radius:20px;font-size:.8rem;font-weight:700;padding:.25rem .75rem;white-space:nowrap}.status-badge-up{background-color:#4caf50;color:#fff}.status-badge-down{background-color:#f44336;color:#fff}.status-badge-maintenance{background-color:#ff9800;color:#fff}.resource-url{font-size:.9rem;margin:.5rem 0}.resource-url a{color:#06c;text-decoration:none}.resource-url a:hover{text-decoration:underline}.incident-info{background-color:#f443361a;border-left:3px solid #f44336;border-radius:4px;margin:1rem 0;padding:1rem}.incident-info p{font-size:.9rem;margin:.3rem 0}.incident-title{color:#f44336;font-weight:700;margin-bottom:.5rem!important}.incident-started{color:#666}.incident-description{color:#333;font-family:monospace;font-size:.85rem;max-height:100px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.incident-duration{color:#666;font-weight:700;margin-top:.5rem!important}.maintenance-info{background-color:#ff98001a;border-left:3px solid #ff9800;border-radius:4px;margin:1rem 0;padding:1rem}.maintenance-info p{font-size:.9rem;margin:.3rem 0}.maintenance-title{color:#ff9800;font-weight:700;margin-bottom:.5rem!important}.maintenance-window{color:#666}.status-operational{color:#4caf50;font-weight:700;padding:1rem;text-align:center}.incidents-table,.maintenance-table{background:#fff;border:1px solid #dbe2ea;border-collapse:collapse;border-radius:12px;overflow:hidden;width:100%}.incidents-table thead,.maintenance-table thead{background-color:#f1f5f9;border-bottom:2px solid #dbe2ea}.incidents-table th,.maintenance-table th{color:#333;font-weight:700;padding:1rem;text-align:left}.incidents-table td,.maintenance-table td{border-bottom:1px solid #e5e7eb;padding:1rem}.incidents-table tr:hover,.maintenance-table tr:hover{background-color:#f0f9ff}.incident-desc-cell{color:#555;font-family:monospace;font-size:.9rem;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.status-container{padding:1rem}.status-header{flex-direction:column}.status-header h1{font-size:1.8rem}.status-refresh{margin-top:1rem;text-align:left}.status-grid{grid-template-columns:1fr}.incidents-table,.maintenance-table{font-size:.85rem}.incidents-table td,.incidents-table th,.maintenance-table td,.maintenance-table th{padding:.5rem}}.observability-page{padding-top:2rem}.observability-page h2{color:#f8fafc;text-shadow:0 1px 0 #0f172a4d}.obs-tabs{border-bottom:1px solid #334155;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.obs-tab{background:#0000;border:solid #0000;border-top-left-radius:10px;border-top-right-radius:10px;border-width:1px 1px 3px;color:#cbd5e1;cursor:pointer;font-weight:600;padding:.75rem 1rem}.obs-tab:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.obs-tab.is-active{background:#0f172a;border-color:#334155 #334155 #60a5fa;color:#f8fafc}.obs-summary-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:2rem}.obs-summary-card{background:linear-gradient(180deg,#0f172a,#0b1325);border:1px solid #334155;border-radius:14px;box-shadow:none;padding:1rem}.obs-card-label{color:#cbd5e1;font-size:.85rem}.obs-card-value{color:#f8fafc;font-size:1.5rem;font-weight:700;margin-top:.45rem}.obs-card-value.is-danger{color:#f87171}.obs-card-value.is-ok{color:#34d399}.obs-table-wrap{overflow-x:auto}.obs-spacing-bottom{margin-bottom:2rem}.obs-table{border-collapse:collapse;width:100%}.obs-table th{background:#0f172a;border-bottom:2px solid #334155;color:#e2e8f0;font-size:.84rem;letter-spacing:.02em;padding:.75rem;text-align:left;text-transform:uppercase}.obs-table td{border-bottom:1px solid #1f2937;color:#f1f5f9;padding:.75rem}.obs-table tbody tr:hover{background:#1e293b}.obs-right{text-align:right!important}.obs-rate-pill{border-radius:4px;font-size:.88rem;font-weight:600;padding:.25rem .5rem}.obs-rate-pill.is-good{background:#052e16;color:#4ade80}.obs-rate-pill.is-warn{background:#3f2a0f;color:#fbbf24}.obs-empty-copy{color:#cbd5e1;padding:2rem;text-align:center}.obs-zebra{background:#0b1325}.obs-error-code{color:#f87171;font-size:.85rem}.obs-muted-sm{color:#cbd5e1}.obs-muted-sm,.obs-small{font-size:.85rem}.obs-audit-summary{background:#0f172a;border:1px solid #334155;border-radius:12px;margin-bottom:2rem;padding:1rem}.obs-audit-summary-line{color:#e2e8f0;font-size:.9rem;margin:.25rem 0}.obs-filters-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1rem}.obs-filter-input{background:#111827;border:1px solid #334155;border-radius:10px;color:#e2e8f0;padding:.5rem}.obs-filter-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33;outline:none}.obs-toggle-code:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.obs-click-row{cursor:pointer}.obs-toggle-code{color:#bfdbfe;cursor:pointer}.obs-expanded-row{background:#111b2e}.obs-expanded-cell{padding:1rem}.obs-pre{background:#0b1325;border:1px solid #334155;border-radius:8px;color:#e2e8f0;margin-top:.5rem;overflow-x:auto;padding:.75rem}@media (max-width:768px){.obs-tab{font-size:.92rem;padding:.6rem .8rem}}
-/*# sourceMappingURL=main.40bbff16.css.map*/
\ No newline at end of file
+body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#020617;color:#e2e8f0;font-family:Manrope,IBM Plex Sans,Segoe UI,sans-serif;margin:0}*{box-sizing:border-box}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{background:radial-gradient(circle at 15% 0,#1e40af33 0,#0000 42%),radial-gradient(circle at 95% 10%,#0f766e24 0,#0000 36%),#020617;min-height:100vh}.navbar{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#0f172ad1;border-bottom:1px solid #334155;box-shadow:0 4px 18px #0f172a0f;color:#e2e8f0;padding:.85rem 2rem;position:-webkit-sticky;position:sticky;top:0;z-index:30}.navbar h1{font-size:1.5rem;letter-spacing:-.02em;margin:0}.navbar-inner{gap:1rem;justify-content:space-between;width:100%}.navbar-inner,.navbar-left{align-items:center;display:flex}.navbar-left{gap:1.5rem;min-width:0}.navbar-links{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.nav-link{border-radius:7px;color:#cbd5e1;font-size:.92rem;font-weight:600;padding:.4rem .7rem;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s}.nav-link:hover{background:#111827;box-shadow:inset 0 0 0 1px #334155;color:#f8fafc}.settings-link{align-items:center;display:inline-flex;gap:.4rem}.setup-badge{background:#facc15;border-radius:999px;color:#111827;font-size:.68rem;font-weight:700;padding:.15rem .5rem}.notifications-pill{align-items:center;background:#111827;border:1px solid #334155;border-radius:999px;color:#e2e8f0;display:flex;font-size:.82rem;gap:.45rem;padding:.3rem .7rem}.container{margin:0 auto;max-width:1400px;padding:2rem}.dashboard-toolbar{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:2rem}.dashboard-title{color:#f8fafc;font-size:1.85rem;letter-spacing:-.02em;margin:0}.dashboard-subtitle{color:#94a3b8;font-size:.9rem;margin:.2rem 0 0}.dashboard-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.quick-filter-row{display:flex;flex-wrap:wrap;gap:.45rem;margin:.2rem 0 .8rem}.quick-chip{background:#0f172a;border:1px solid #334155;border-radius:999px;color:#cbd5e1;cursor:pointer;font-size:.74rem;font-weight:700;letter-spacing:.02em;padding:.28rem .7rem}.quick-chip:hover{background:#111f34}.quick-chip.active{background:#14b8a6;border-color:#14b8a6;color:#052e2b}.tag-filter-input{background:#111827;border:1px solid #334155;border-radius:10px;color:#e2e8f0;min-width:180px;padding:.5rem .75rem}.actions-menu-wrapper{position:relative}.actions-menu{background:#fff;border:1px solid #dbe2ea;border-radius:8px;box-shadow:0 8px 20px #0f172a24;min-width:220px;padding:.35rem 0;position:absolute;right:0;top:110%;z-index:20}.actions-menu-divider{border:0;border-top:1px solid #eef2f6;margin:.25rem 0}.hidden-file-input{display:none}.toast-stack{position:fixed;right:20px;top:20px;z-index:9999}.toast-item{border:1px solid #0000;border-radius:8px;box-shadow:0 8px 20px #0f172a29;margin-bottom:10px;min-width:280px;padding:12px 16px}.toast-error{background:#fee2e2;border-color:#fecaca;color:#7f1d1d}.toast-success{background:#dcfce7;border-color:#bbf7d0;color:#14532d}.toast-info{background:#dbeafe;border-color:#bfdbfe;color:#1e3a8a}.cc-metrics-grid{grid-gap:.65rem;display:grid;gap:.65rem;grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:1rem}.cc-metric-card{background:linear-gradient(180deg,#0f172af5,#1e293bf5);border:1px solid #334155;border-radius:10px;color:#e2e8f0;padding:.75rem}.cc-metric-label{color:#94a3b8;font-size:.68rem;letter-spacing:.08em;margin:0;text-transform:uppercase}.cc-metric-value{font-size:1.2rem;font-weight:700;margin:.35rem 0 0}.metric-ok{border-color:#14532d}.metric-down{border-color:#7f1d1d}.metric-maint{border-color:#78350f}.cc-layout{grid-gap:.8rem;align-items:start;display:grid;gap:.8rem;grid-template-columns:minmax(0,1fr) 300px}.cc-main{min-width:0}.cc-rail{display:flex;flex-direction:column;gap:.75rem;position:-webkit-sticky;position:sticky;top:82px}.cc-panel{background:#0f172af0;border:1px solid #334155;border-radius:12px;color:#e2e8f0;padding:.75rem}.cc-panel h3{font-size:.9rem;letter-spacing:.03em;margin:0 0 .65rem}.cc-empty{color:#94a3b8;font-size:.85rem;margin:0}.cc-group-list,.cc-incident-list{display:flex;flex-direction:column;gap:.4rem}.cc-group-item,.cc-incident-item{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#e2e8f0;cursor:pointer;display:flex;justify-content:space-between;padding:.45rem .55rem;width:100%}.cc-group-item:hover,.cc-incident-item:hover{background:#111f34;border-color:#475569}.cc-incident-name{font-size:.85rem;font-weight:600;margin-right:.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-bottom:1.5rem}.resource-list{display:flex;flex-direction:column;gap:.45rem}.resource-list-shell{background:#0f172ae6;border:1px solid #334155;border-radius:12px;max-height:calc(100vh - 250px);overflow:auto;padding:.65rem}.resource-list-header{grid-gap:1rem;background:#0f172afa;border-bottom:1px solid #334155;display:grid;font-size:.72rem;gap:1rem;grid-template-columns:minmax(260px,2fr) minmax(220px,1.25fr) minmax(170px,.8fr);letter-spacing:.08em;margin-bottom:.45rem;padding:.35rem .6rem .6rem;text-transform:uppercase;top:0;z-index:5}.resource-list-count,.resource-list-header{color:#94a3b8;position:-webkit-sticky;position:sticky}.resource-list-count{background:#0f172af2;font-size:.75rem;margin:0 .6rem .55rem;padding-bottom:.25rem;top:31px;z-index:4}.resource-row{grid-gap:1rem;align-items:center;background:#0f172af5;border:1px solid #334155;border-radius:10px;box-shadow:0 4px 12px #0206178c;cursor:pointer;display:grid;gap:1rem;grid-template-columns:minmax(260px,2fr) minmax(220px,1.25fr) minmax(170px,.8fr);padding:.65rem .8rem;transition:border-color .2s,transform .2s,box-shadow .2s}.resource-row:hover{border-color:#60a5fa;box-shadow:0 12px 22px #020617a6;transform:translateY(-1px)}.row-main{min-width:0}.row-title-line{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.15rem}.row-name{color:#f8fafc;font-size:.98rem;margin:0}.resource-group-pill{background:#1e293b;border-radius:999px;color:#cbd5e1;font-size:.72rem;font-weight:700;padding:.15rem .5rem}.incident-inline{background:#fee2e2;border:1px solid #fecaca;border-radius:999px;color:#991b1b}.incident-inline,.maintenance-inline{font-size:.72rem;padding:.15rem .45rem}.maintenance-inline{background:#fef3c7;border:1px solid #fde68a;border-radius:999px;color:#92400e}.row-type,.row-url{color:#94a3b8;margin:0}.row-url{font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-type{font-size:.72rem}.row-metrics{grid-gap:.8rem;align-items:center;display:grid;gap:.8rem;grid-template-columns:repeat(3,minmax(0,1fr))}.row-metrics .stat-label{color:#94a3b8;font-size:.64rem}.row-metrics .stat-value{color:#e2e8f0;font-weight:700}.row-sparkline{min-width:95px}.row-side{align-items:flex-end;display:flex;flex-direction:column;gap:.2rem}.row-actions{display:flex;gap:.35rem}.resource-card{background:linear-gradient(180deg,#fff,#fbfdff);border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 22px #0f172a0f;cursor:pointer;padding:1rem 1.1rem;transition:transform .2s,box-shadow .2s}.resource-card.compact{display:flex;flex-direction:column;gap:.4rem}.resource-card:hover{box-shadow:0 14px 28px #0f172a21;transform:translateY(-2px)}.resource-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:.5rem}.resource-name{font-size:1.05rem;font-weight:700;margin:0 0 .2rem}.trend-chip{display:inline-block;font-size:.72rem;font-weight:800;margin-left:.3rem}.trend-better{color:#34d399}.trend-worse{color:#f87171}.trend-flat{color:#94a3b8}.resource-url{color:#64748b;font-size:.8rem;word-break:break-all}.load-more-btn{background:#f8fafc;border:1px dashed #94a3b8;border-radius:10px;color:#334155;cursor:pointer;font-weight:700;padding:.65rem;width:100%}.load-more-btn:hover{background:#f1f5f9}.resource-type{color:#475569;font-size:.78rem;margin:.15rem 0 0}.status-badge{border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase}.status-up{background:#dcfce7;color:#166534}.status-down{background:#fee2e2;color:#991b1b}.status-unknown{background:#e2e8f0;color:#334155}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-top:1rem}.stat{text-align:center}.stat-value{color:#e2e8f0;font-size:1.2rem;font-weight:700;margin:0}.stat-value.small{font-size:1.05rem}.stat-label{color:#94a3b8;font-size:.75rem;margin:0;text-transform:uppercase}.resource-meta{grid-gap:.75rem;align-items:center;display:grid;gap:.75rem;grid-template-columns:repeat(3,1fr)}.sparkline{height:52px;width:100%}.last-check{color:#94a3b8;font-size:.75rem;margin:0}.group-section{background:#ffffffb3;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:2rem;padding:1rem}.group-header{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;gap:1rem;margin-bottom:1rem;padding:1rem;transition:background .2s}.group-header:hover{background:#f9f9f9}.group-header h3{color:#333;font-size:1.1rem;margin:0}.group-name{flex:1 1;margin:0}.group-toggle{color:#667eea;font-size:.9rem;min-width:15px}.group-stats{display:flex;font-size:.85rem;gap:1.5rem;margin-left:auto}.group-stat{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#475569;font-weight:500;padding:.4rem .8rem}.edit-input{border:1px solid #667eea;border-radius:6px;font-size:1.05rem;margin-bottom:.5rem;padding:.5rem;width:100%}.card-edit-form{border-top:1px solid #eee;margin-top:.75rem;padding-top:.75rem}.edit-field{margin-bottom:.5rem}.edit-field label{color:#666;display:block;font-size:.75rem;font-weight:600;margin-bottom:.25rem}.edit-field input{border:1px solid #ddd;border-radius:4px;font-size:.9rem;padding:.4rem .6rem;width:100%}.card-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.5rem}.btn-icon{background:#0b1325;border:1px solid #334155;border-radius:8px;color:#e2e8f0;cursor:pointer;font-size:1rem;min-height:30px;min-width:34px;opacity:1;padding:.25rem .5rem;transition:transform .15s,background .2s,border-color .2s}.btn-icon:hover{background:#111f34;border-color:#60a5fa;transform:translateY(-1px)}.btn-icon:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.btn-icon.action-edit{color:#93c5fd}.btn-icon.action-maint{color:#fbbf24}.btn-icon.action-delete{background:#3f1d1d;border-color:#7f1d1d;color:#fca5a5}.btn-icon.action-delete:hover{background:#7f1d1d;border-color:#ef4444;color:#fee2e2}.btn-sm{font-size:.8rem;padding:.4rem .8rem}.btn{border:1px solid #0000;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.btn-primary{background:linear-gradient(180deg,#14b8a6,#0d9488);color:#fff}.btn-primary:hover{filter:brightness(.95)}.btn-secondary{background:#fff;border-color:#dbe2ea;color:#0f172a}.btn-secondary:hover{background:#f8fafc}.btn-danger{background:linear-gradient(180deg,#ef4444,#dc2626)}.btn-ghost{background:#fff;border:0;border-radius:0;color:#0f172a;display:block;font-weight:500;padding:.6rem .8rem;text-align:left;width:100%}.btn-ghost:hover{background:#f1f5f9}.btn-danger{color:#fff}.btn-danger:hover{filter:brightness(.95)}.modal-overlay{align-items:center;background:#0f172a6b;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border:1px solid #e2e8f0;border-radius:16px;max-height:90vh;max-width:500px;overflow-y:auto;padding:2rem;width:90%}.modal h2{margin-top:0}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;display:block;font-weight:600;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:6px;font-size:1rem;padding:.75rem;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.tag-filter-input:focus{border-color:#0ea5a2;box-shadow:0 0 0 3px #0ea5a22e;outline:none}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.detail-section{background:#0f172af0;border:1px solid #334155;border-radius:14px;box-shadow:0 10px 24px #0206178c;color:#e2e8f0;margin-bottom:1.5rem;padding:1.5rem}.detail-section h2{color:#f8fafc;margin-top:0}.detail-header-row{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.detail-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end}.resource-url-detail{color:#94a3b8;margin:0}.maintenance-badge{background:#fff7db;border:1px solid #f9db88;color:#8a6a00}.stats-grid-4{grid-template-columns:repeat(4,1fr)}.detail-stats-grid{margin-top:2rem}.section-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.filter-control{align-items:center;display:inline-flex;gap:.4rem}.filter-control label{color:#cbd5e1;font-size:.9rem}.filter-control select{background:#111827;border:1px solid #334155;border-radius:6px;color:#e2e8f0;padding:.3rem .5rem}.controls-pagination{display:flex;gap:.5rem;margin-left:auto}.table-wrapper{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{background:#111827;border-bottom:2px solid #334155;color:#e2e8f0;font-size:.86rem;letter-spacing:.02em;padding:.75rem;text-align:left;text-transform:uppercase}.data-table td{border-bottom:1px solid #1f2937;color:#e2e8f0;padding:.75rem}.data-table tbody tr:hover{background:#1e293b}.text-right{text-align:right!important}.muted-cell{color:#94a3b8}.w-25{width:25%}.w-15{width:15%}.w-35{width:35%}.incident-reason-cell{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.incident-reason-toggle{color:#93c5fd;cursor:pointer;flex:1 1}.expand-indicator{color:#94a3b8;font-size:.85rem;margin-left:.5rem}.btn-compact{font-size:.85rem;padding:.3rem .6rem}.expanded-row{background:#0b1325}.expanded-cell{color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Courier New,monospace;font-size:.9rem;white-space:pre-wrap;word-break:break-word}.section-title-row{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.empty-copy{color:#94a3b8;padding:2rem;text-align:center}.chart-container{background:#0b1325;border:1px solid #334155;border-radius:12px;height:300px;margin-top:1rem;padding:.5rem}.incident-badge{background:#fff3cd;color:#856404;font-weight:600}.back-button,.incident-badge{border-radius:6px;display:inline-block;margin-bottom:1rem;padding:.5rem 1rem}.back-button{background:#1e293b;border:1px solid #334155;color:#f8fafc;text-decoration:none;transition:background .2s}.back-button:hover{background:#334155}.empty-state{color:#666;padding:3rem;text-align:center}.empty-state h3{color:#333;margin-bottom:.5rem}@media (max-width:1024px){.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.container{padding:1.5rem}}@media (max-width:768px){.navbar{padding:.75rem 1rem}.navbar h1{font-size:1.25rem}.navbar-links{flex-wrap:wrap;gap:.5rem}.nav-link{font-size:.9rem;padding:.35rem .65rem}.navbar-inner,.navbar-left{align-items:flex-start;flex-direction:column}.navbar-left{gap:.75rem;width:100%}.container{padding:1rem}.dashboard-toolbar{align-items:flex-start;flex-direction:column;gap:1rem}.dashboard-actions{flex-direction:column;gap:.5rem;width:100%}.actions-menu-wrapper,.dashboard-actions button,.dashboard-actions select,.tag-filter-input{width:100%}.actions-menu{left:0;right:auto}.dashboard-grid{gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.cc-metrics-grid{grid-template-columns:repeat(2,1fr)}.cc-layout{grid-template-columns:1fr}.cc-rail{position:static}.resource-list-shell{max-height:none;overflow:visible}.resource-list-count,.resource-list-header{position:static}.resource-row{gap:.7rem;grid-template-columns:1fr}.resource-list-header{display:none}.row-metrics{grid-template-columns:repeat(3,1fr)}.row-side{align-items:center;flex-direction:row;justify-content:space-between}.stats-grid{gap:.75rem;grid-template-columns:repeat(2,1fr)!important}.resource-card{padding:.875rem}.detail-header-row{flex-direction:column}.detail-actions{justify-content:flex-start;width:100%}.stats-grid-4{grid-template-columns:repeat(2,1fr)}.filter-control{justify-content:space-between;width:100%}.controls-pagination{margin-left:0;width:100%}.controls-pagination .btn{flex:1 1}.resource-meta{gap:.5rem;grid-template-columns:1fr}.resource-meta>div{text-align:left!important}.chart-container{height:300px!important}.detail-section{padding:1rem!important}.form-row{flex-direction:column;gap:0}.form-group{width:100%}.modal{margin:1rem;max-width:none;padding:1.5rem;width:95%}.group-header{align-items:flex-start;flex-direction:column;gap:.5rem}.group-stats{justify-content:space-between;width:100%}.card-actions{flex-direction:row;gap:.5rem;justify-content:flex-end}table{font-size:.85rem}td,th{padding:.5rem!important}}@media (max-width:480px){.navbar h1{font-size:1.1rem}.stat-value{font-size:1.5rem}.stat-label{font-size:.75rem}.stats-grid{grid-template-columns:1fr!important}.modal h2{font-size:1.25rem}.btn{font-size:.9rem;padding:.5rem 1rem}.stats-grid-4{grid-template-columns:1fr}.row-metrics{grid-template-columns:1fr 1fr}}.notification-center{position:relative}.notification-bell-container{align-items:center;display:flex}.notification-bell{background:none;border:none;cursor:pointer;font-size:1.5rem;padding:.5rem;position:relative;transition:transform .2s}.notification-bell:hover{transform:scale(1.1)}.notification-badge{align-items:center;background:#ef4444;border-radius:50%;color:#fff;display:flex;font-size:.6rem;font-weight:700;height:1.2rem;justify-content:center;line-height:1;position:absolute;right:0;top:0;width:1.2rem}.notification-popup{background:#1e293b;border:1px solid #334155;border-radius:10px;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;max-height:600px;overflow:hidden;position:fixed;right:20px;top:60px;width:420px;z-index:1000}.notification-header{align-items:center;background:#0f172a;border-bottom:1px solid #334155;display:flex;justify-content:space-between;padding:.875rem 1rem}.notification-header h3{color:#f1f5f9;font-size:1rem;font-weight:600;letter-spacing:.01em;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#64748b;cursor:pointer;display:flex;font-size:1.1rem;height:28px;justify-content:center;padding:0;transition:color .15s,background .15s;width:28px}.close-btn:hover{background:#334155;color:#e2e8f0}.notification-filters{background:#1e293b;border-bottom:1px solid #334155;display:flex;flex-wrap:wrap;gap:.4rem;padding:.6rem .875rem}.filter-btn{background:#0000;border:1px solid #334155;border-radius:5px;color:#94a3b8;cursor:pointer;font-size:.8rem;font-weight:500;padding:.3rem .65rem;transition:all .15s}.filter-btn:hover{border-color:#14b8a6;color:#14b8a6}.filter-btn.active{background:#14b8a6;border-color:#14b8a6;color:#0f172a;font-weight:600}.clear-btn{background:#0000;border-color:#f87171;color:#f87171;margin-left:auto}.clear-btn:hover{background:#f87171;border-color:#f87171;color:#0f172a}.notification-list{flex:1 1;max-height:460px;overflow-y:auto}.notification-item{background:#1e293b;border-bottom:1px solid #1e293b;cursor:default;display:flex;gap:.75rem;padding:.875rem 1rem;transition:background .15s}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:#263347}.notification-item.unread{background:#162032;border-left:3px solid #14b8a6}.notification-item.unread:hover{background:#1c2a40}.notification-content{min-width:0}.notification-title{color:#f1f5f9;font-size:.875rem;font-weight:600;line-height:1.3;margin-bottom:.3rem}.notification-message{color:#94a3b8;font-size:.8rem;line-height:1.45;margin-bottom:.5rem;word-break:break-word}.notification-meta{align-items:center;color:#64748b;font-size:.72rem;gap:.5rem}.notification-resource{background:#0f172a;border:1px solid #334155;border-radius:3px;color:#94a3b8;font-size:.7rem;padding:.15rem .45rem}.notification-time{white-space:nowrap}.notification-actions{align-items:flex-start;gap:.25rem}.action-btn{background:none;border:none;border-radius:4px;color:#475569;cursor:pointer;font-size:.9rem;padding:.25rem .4rem;transition:color .15s,background .15s}.action-btn:hover{background:#334155;color:#e2e8f0}.action-btn.mark-read:hover{color:#4ade80}.action-btn.delete:hover{color:#f87171}.notification-empty{color:#475569;font-size:.875rem;padding:2.5rem 1rem;text-align:center}.notification-list::-webkit-scrollbar{width:5px}.notification-list::-webkit-scrollbar-track{background:#0f172a}.notification-list::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.notification-list::-webkit-scrollbar-thumb:hover{background:#475569}@media (max-width:600px){.notification-popup{left:10px;max-height:70vh;position:fixed;right:10px;top:60px;width:auto}.notification-filters{flex-direction:column}.filter-btn{flex:1 1}.clear-btn{margin-left:0}}.settings-wizard{color:#e2e8f0;margin:0 auto;max-width:980px}.settings-wizard>h2{color:#f8fafc;text-shadow:0 1px 0 #0f172a4d}.settings-description{color:#cbd5e1;margin-bottom:1.4rem}.settings-section{background:#0f172ad9;border:1px solid #334155;border-radius:12px;margin-bottom:1rem;padding:1.35rem}.settings-header{align-items:center;border-bottom:1px solid #334155;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.8rem}.settings-header h3{color:#f8fafc;margin:0}.settings-form{margin-top:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:1rem}.form-group small{color:#cbd5e1;display:block;font-size:.85rem;margin-top:.25rem}.settings-wizard .form-group label{color:#e2e8f0}.settings-wizard .form-group input,.settings-wizard .form-group select,.settings-wizard .form-group textarea{background:#0b1325;border:1px solid #334155;color:#f8fafc}.settings-wizard .form-group input:focus,.settings-wizard .form-group select:focus,.settings-wizard .form-group textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #60a5fa47}.info-box{background:#0b1325;border:1px solid #334155;border-radius:8px;margin:1.5rem 0;padding:1rem}.info-box strong{color:#f8fafc;display:block;margin-bottom:.5rem}.info-box ol{margin:.5rem 0 0 1.5rem;padding:0}.info-box li{color:#e2e8f0;margin:.25rem 0}.info-box a{color:#bfdbfe;text-decoration:none}.info-box a:hover{text-decoration:underline}.info-box pre{background:#111827;border:1px solid #334155;border-radius:8px;color:#f8fafc;font-size:.85rem;margin-top:.5rem;overflow-x:auto;padding:1rem}.toggle-switch{display:inline-block;height:34px;position:relative;width:60px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#334155;border-radius:34px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s}.toggle-slider:before{background-color:#e2e8f0;border-radius:50%;bottom:4px;content:"";height:26px;left:4px;position:absolute;transition:.4s;width:26px}.toggle-switch input:checked+.toggle-slider{background-color:#2563eb}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #60a5fa47}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(26px)}.btn-secondary{background:#1e293b;border:1px solid #334155;color:#f8fafc;margin-top:1rem}.btn-secondary:hover:not(:disabled){background:#334155}.btn-secondary:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.test-result{border-radius:8px;margin:1.5rem 0;padding:1rem}.test-result.success{background:#052e16;border:1px solid #166534;color:#86efac}.test-result.error{background:#3f1d1d;border:1px solid #7f1d1d;color:#fda4af}.test-result strong{display:block;margin-bottom:.5rem}.test-result p{margin:0}.settings-actions{display:flex;justify-content:center;margin-top:2rem}.btn-large{font-size:1.1rem;padding:1rem 3rem}.save-status{animation:slideIn .3s ease-out;border-radius:6px;box-shadow:0 4px 12px #00000026;max-width:300px;padding:1rem 1.5rem;position:fixed;right:20px;top:20px;z-index:1000}.save-status.success{background:#166534;border-left:4px solid #22c55e;color:#dcfce7}.save-status.error{background:#7f1d1d;border-left:4px solid #ef4444;color:#fee2e2}.save-status strong{display:block;font-size:1rem;margin-bottom:.5rem}.save-status p{font-size:.9rem;margin:0}@keyframes slideIn{0%{opacity:0;transform:translateX(400px)}to{opacity:1;transform:translateX(0)}}.cc-page{color:#e2e8f0;padding-top:1.4rem}.cc-alert{background:#2b1907;border:1px solid #854d0e;border-radius:10px;color:#fcd34d;margin-bottom:1rem;padding:.85rem 1rem}.cc-page-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.2rem}.cc-page-title{color:#f8fafc!important;font-size:1.65rem;letter-spacing:-.02em;margin:0;text-shadow:0 1px 0 #0f172a4d}.cc-page h2{color:#f8fafc}.cc-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.cc-pill-toggle{align-items:center;background:#111827;border:1px solid #334155;border-radius:999px;color:#f1f5f9;display:inline-flex;font-size:.82rem;gap:.5rem;padding:.5rem .75rem}.cc-pill-toggle input{accent-color:#3b82f6}.cc-input-sm:focus,.cc-pill-toggle:focus-within,.cc-select-sm:focus{outline:2px solid #60a5fa;outline-offset:2px}.cc-surface{background:#0f172a;border:1px solid #334155;border-radius:12px;padding:1rem}.cc-kpi-grid{grid-gap:.65rem;display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.cc-kpi{background:#0b1325;border:1px solid #334155;border-radius:10px;padding:.75rem}.cc-kpi-label{color:#cbd5e1;font-size:.7rem;letter-spacing:.07em;margin:0;text-transform:uppercase}.cc-kpi-value{color:#f8fafc;font-size:1.45rem;font-weight:700;margin:.35rem 0 0}.cc-table-wrap{background:#0b1325;border:1px solid #334155;border-radius:12px;overflow:auto}.cc-table{border-collapse:collapse;width:100%}.cc-table thead tr{background:#0f172a}.cc-table th{border-bottom:1px solid #334155;color:#e2e8f0;font-size:.78rem;letter-spacing:.07em;padding:.75rem;text-align:left;text-transform:uppercase}.cc-table td{border-bottom:1px solid #1f2937;color:#f1f5f9;padding:.75rem}.cc-table tbody tr:hover{background:#1e293b}.cc-pagination{align-items:center;background:#111827;border:1px solid #334155;border-radius:10px;display:flex;gap:1rem;justify-content:center;margin-top:1rem;padding:1rem}.cc-input-sm{text-align:center;width:56px}.cc-input-sm,.cc-select-sm{background:#111827;border:1px solid #334155;border-radius:8px;color:#e2e8f0;padding:.45rem}.cc-empty{color:#cbd5e1;padding:2.2rem 1rem;text-align:center}.history-resource-card{margin-bottom:1.4rem}.history-resource-title{color:#dbeafe;margin:0 0 .45rem}.history-resource-meta{color:#e2e8f0;display:flex;flex-wrap:wrap;gap:1rem;margin:0 0 1rem}.history-resource-meta strong{color:#f8fafc}.history-chart-box{background:#111827;border:1px solid #334155;border-radius:10px;height:400px;margin-bottom:1rem;padding:1rem}.history-trend-row{color:#e2e8f0;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.8rem}.notifications-list{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr}.notification-row{align-items:flex-start;background:#0b1325;border:1px solid #334155;border-radius:10px;display:flex;gap:1rem;justify-content:space-between;padding:1rem}.notification-row.is-unread{border-color:#1d4ed8;box-shadow:inset 0 0 0 1px #3b82f659}.notification-content{flex:1 1}.notification-title{color:#f8fafc;font-size:1rem;margin:0 0 .4rem}.notification-message{color:#e2e8f0;margin:0 0 .5rem}.notification-meta{color:#cbd5e1;display:flex;flex-wrap:wrap;font-size:.84rem;gap:.65rem}.notification-chip{background:#111827;border:1px solid #334155;border-radius:999px;color:#f1f5f9;padding:.2rem .55rem}.notification-actions{display:flex;flex-shrink:0;gap:.4rem}.notification-actions .btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}@media (max-width:768px){.cc-controls,.cc-controls .btn,.cc-controls .cc-pill-toggle,.cc-controls .tag-filter-input{width:100%}.cc-pagination{align-items:stretch;flex-direction:column}}.status-container{margin:0 auto;max-width:1200px;padding:2rem}.status-header{align-items:flex-start;border-bottom:1px solid #dbe2ea;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.status-header h1{color:#0f172a;font-size:2.2rem;margin:0 0 .5rem}.status-subtitle{color:#64748b;font-size:1rem;margin:0}.status-refresh{text-align:right}.status-refresh label{align-items:center;cursor:pointer;display:flex;gap:.5rem;margin-bottom:.5rem}.status-refresh input[type=checkbox]{cursor:pointer}.last-updated{color:#64748b;font-size:.85rem;margin:0}.status-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.summary-card{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid #dbe2ea;border-radius:14px;box-shadow:0 8px 20px #0f172a0f;padding:1.5rem;text-align:center}.summary-value{font-size:2rem;font-weight:700;margin-bottom:.5rem}.summary-label{color:#64748b;font-size:.9rem;margin:0}.status-section{margin-bottom:2rem}.status-section h2{border-bottom:1px solid #e5e7eb;color:#1e293b;font-size:1.5rem;margin:0 0 1rem;padding-bottom:.5rem}.status-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.status-card{border:1px solid #dbe2ea;border-radius:14px;box-shadow:0 8px 20px #0f172a0f;padding:1.5rem;transition:all .2s ease}.status-card:hover{box-shadow:0 8px 18px #0f172a1f}.status-card-up{background:#f0fdf4;border-color:#86efac}.status-card-down{background:#fef2f2;border-color:#fca5a5}.status-card-maintenance{background:#fffbeb;border-color:#fcd34d}.status-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.status-card h3{color:#0f172a;flex:1 1;font-size:1.2rem;margin:0}.status-badge{border-radius:20px;font-size:.8rem;font-weight:700;padding:.25rem .75rem;white-space:nowrap}.status-badge-up{background-color:#4caf50;color:#fff}.status-badge-down{background-color:#f44336;color:#fff}.status-badge-maintenance{background-color:#ff9800;color:#fff}.resource-url{font-size:.9rem;margin:.5rem 0}.resource-url a{color:#06c;text-decoration:none}.resource-url a:hover{text-decoration:underline}.incident-info{background-color:#f443361a;border-left:3px solid #f44336;border-radius:4px;margin:1rem 0;padding:1rem}.incident-info p{font-size:.9rem;margin:.3rem 0}.incident-title{color:#f44336;font-weight:700;margin-bottom:.5rem!important}.incident-started{color:#666}.incident-description{color:#333;font-family:monospace;font-size:.85rem;max-height:100px;overflow-y:auto;white-space:pre-wrap;word-break:break-word}.incident-duration{color:#666;font-weight:700;margin-top:.5rem!important}.maintenance-info{background-color:#ff98001a;border-left:3px solid #ff9800;border-radius:4px;margin:1rem 0;padding:1rem}.maintenance-info p{font-size:.9rem;margin:.3rem 0}.maintenance-title{color:#ff9800;font-weight:700;margin-bottom:.5rem!important}.maintenance-window{color:#666}.status-operational{color:#4caf50;font-weight:700;padding:1rem;text-align:center}.incidents-table,.maintenance-table{background:#fff;border:1px solid #dbe2ea;border-collapse:collapse;border-radius:12px;overflow:hidden;width:100%}.incidents-table thead,.maintenance-table thead{background-color:#f1f5f9;border-bottom:2px solid #dbe2ea}.incidents-table th,.maintenance-table th{color:#333;font-weight:700;padding:1rem;text-align:left}.incidents-table td,.maintenance-table td{border-bottom:1px solid #e5e7eb;padding:1rem}.incidents-table tr:hover,.maintenance-table tr:hover{background-color:#f0f9ff}.incident-desc-cell{color:#555;font-family:monospace;font-size:.9rem;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.status-container{padding:1rem}.status-header{flex-direction:column}.status-header h1{font-size:1.8rem}.status-refresh{margin-top:1rem;text-align:left}.status-grid{grid-template-columns:1fr}.incidents-table,.maintenance-table{font-size:.85rem}.incidents-table td,.incidents-table th,.maintenance-table td,.maintenance-table th{padding:.5rem}}.observability-page{padding-top:2rem}.observability-page h2{color:#f8fafc;text-shadow:0 1px 0 #0f172a4d}.obs-tabs{border-bottom:1px solid #334155;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.obs-tab{background:#0000;border:solid #0000;border-top-left-radius:10px;border-top-right-radius:10px;border-width:1px 1px 3px;color:#cbd5e1;cursor:pointer;font-weight:600;padding:.75rem 1rem}.obs-tab:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.obs-tab.is-active{background:#0f172a;border-color:#334155 #334155 #60a5fa;color:#f8fafc}.obs-summary-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:2rem}.obs-summary-card{background:linear-gradient(180deg,#0f172a,#0b1325);border:1px solid #334155;border-radius:14px;box-shadow:none;padding:1rem}.obs-card-label{color:#cbd5e1;font-size:.85rem}.obs-card-value{color:#f8fafc;font-size:1.5rem;font-weight:700;margin-top:.45rem}.obs-card-value.is-danger{color:#f87171}.obs-card-value.is-ok{color:#34d399}.obs-table-wrap{overflow-x:auto}.obs-spacing-bottom{margin-bottom:2rem}.obs-table{border-collapse:collapse;width:100%}.obs-table th{background:#0f172a;border-bottom:2px solid #334155;color:#e2e8f0;font-size:.84rem;letter-spacing:.02em;padding:.75rem;text-align:left;text-transform:uppercase}.obs-table td{border-bottom:1px solid #1f2937;color:#f1f5f9;padding:.75rem}.obs-table tbody tr:hover{background:#1e293b}.obs-right{text-align:right!important}.obs-rate-pill{border-radius:4px;font-size:.88rem;font-weight:600;padding:.25rem .5rem}.obs-rate-pill.is-good{background:#052e16;color:#4ade80}.obs-rate-pill.is-warn{background:#3f2a0f;color:#fbbf24}.obs-empty-copy{color:#cbd5e1;padding:2rem;text-align:center}.obs-zebra{background:#0b1325}.obs-error-code{color:#f87171;font-size:.85rem}.obs-muted-sm{color:#cbd5e1}.obs-muted-sm,.obs-small{font-size:.85rem}.obs-audit-summary{background:#0f172a;border:1px solid #334155;border-radius:12px;margin-bottom:2rem;padding:1rem}.obs-audit-summary-line{color:#e2e8f0;font-size:.9rem;margin:.25rem 0}.obs-filters-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:1rem}.obs-filter-input{background:#111827;border:1px solid #334155;border-radius:10px;color:#e2e8f0;padding:.5rem}.obs-filter-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb33;outline:none}.obs-toggle-code:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.obs-click-row{cursor:pointer}.obs-toggle-code{color:#bfdbfe;cursor:pointer}.obs-expanded-row{background:#111b2e}.obs-expanded-cell{padding:1rem}.obs-pre{background:#0b1325;border:1px solid #334155;border-radius:8px;color:#e2e8f0;margin-top:.5rem;overflow-x:auto;padding:.75rem}@media (max-width:768px){.obs-tab{font-size:.92rem;padding:.6rem .8rem}}
+/*# sourceMappingURL=main.5afb44a9.css.map*/
\ No newline at end of file
diff --git a/client/build/static/css/main.5afb44a9.css.map b/client/build/static/css/main.5afb44a9.css.map
new file mode 100644
index 0000000..e226d09
--- /dev/null
+++ b/client/build/static/css/main.5afb44a9.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/main.5afb44a9.css","mappings":"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","sources":["index.css","App.css","NotificationCenter.css","SettingsWizard.css","CommandCenterPages.css","Status.css","Observability.css"],"sourcesContent":["body {\n margin: 0;\n font-family: 'Manrope', 'IBM Plex Sans', 'Segoe UI', sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n color: #e2e8f0;\n background-color: #020617;\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 background:\n radial-gradient(circle at 15% 0%, rgba(30, 64, 175, 0.2) 0%, transparent 42%),\n radial-gradient(circle at 95% 10%, rgba(15, 118, 110, 0.14) 0%, transparent 36%),\n #020617;\n}\n\n.navbar {\n background: rgba(15, 23, 42, 0.82);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n padding: 0.85rem 2rem;\n color: #e2e8f0;\n border-bottom: 1px solid #334155;\n box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);\n position: sticky;\n top: 0;\n z-index: 30;\n}\n\n.navbar h1 {\n margin: 0;\n font-size: 1.5rem;\n letter-spacing: -0.02em;\n}\n\n.navbar-inner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1rem;\n width: 100%;\n}\n\n.navbar-left {\n display: flex;\n align-items: center;\n gap: 1.5rem;\n min-width: 0;\n}\n\n.navbar-links {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.nav-link {\n color: #cbd5e1;\n text-decoration: none;\n font-weight: 600;\n font-size: 0.92rem;\n padding: 0.4rem 0.7rem;\n border-radius: 7px;\n transition: background 0.2s, color 0.2s, box-shadow 0.2s;\n}\n\n.nav-link:hover {\n background: #111827;\n color: #f8fafc;\n box-shadow: inset 0 0 0 1px #334155;\n}\n\n.settings-link {\n display: inline-flex;\n align-items: center;\n gap: 0.4rem;\n}\n\n.setup-badge {\n background: #facc15;\n color: #111827;\n padding: 0.15rem 0.5rem;\n border-radius: 999px;\n font-size: 0.68rem;\n font-weight: 700;\n}\n\n.notifications-pill {\n display: flex;\n align-items: center;\n gap: 0.45rem;\n font-size: 0.82rem;\n color: #e2e8f0;\n background: #111827;\n border: 1px solid #334155;\n border-radius: 999px;\n padding: 0.3rem 0.7rem;\n}\n\n.container {\n max-width: 1400px;\n margin: 0 auto;\n padding: 2rem;\n}\n\n.dashboard-toolbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n margin-bottom: 2rem;\n}\n\n.dashboard-title {\n margin: 0;\n font-size: 1.85rem;\n letter-spacing: -0.02em;\n color: #f8fafc;\n}\n\n.dashboard-subtitle {\n margin: 0.2rem 0 0;\n color: #94a3b8;\n font-size: 0.9rem;\n}\n\n.dashboard-actions {\n display: flex;\n gap: 0.5rem;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.quick-filter-row {\n display: flex;\n gap: 0.45rem;\n flex-wrap: wrap;\n margin: 0.2rem 0 0.8rem;\n}\n\n.quick-chip {\n background: #0f172a;\n border: 1px solid #334155;\n color: #cbd5e1;\n border-radius: 999px;\n padding: 0.28rem 0.7rem;\n font-size: 0.74rem;\n font-weight: 700;\n letter-spacing: 0.02em;\n cursor: pointer;\n}\n\n.quick-chip:hover {\n background: #111f34;\n}\n\n.quick-chip.active {\n background: #14b8a6;\n border-color: #14b8a6;\n color: #052e2b;\n}\n\n.tag-filter-input {\n padding: 0.5rem 0.75rem;\n border-radius: 10px;\n border: 1px solid #334155;\n min-width: 180px;\n background: #111827;\n color: #e2e8f0;\n}\n\n.actions-menu-wrapper {\n position: relative;\n}\n\n.actions-menu {\n position: absolute;\n right: 0;\n top: 110%;\n background: #ffffff;\n border: 1px solid #dbe2ea;\n border-radius: 8px;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.14);\n min-width: 220px;\n padding: 0.35rem 0;\n z-index: 20;\n}\n\n.actions-menu-divider {\n margin: 0.25rem 0;\n border: 0;\n border-top: 1px solid #eef2f6;\n}\n\n.hidden-file-input {\n display: none;\n}\n\n.toast-stack {\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 9999;\n}\n\n.toast-item {\n margin-bottom: 10px;\n padding: 12px 16px;\n border-radius: 8px;\n min-width: 280px;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.16);\n border: 1px solid transparent;\n}\n\n.toast-error {\n background: #fee2e2;\n color: #7f1d1d;\n border-color: #fecaca;\n}\n\n.toast-success {\n background: #dcfce7;\n color: #14532d;\n border-color: #bbf7d0;\n}\n\n.toast-info {\n background: #dbeafe;\n color: #1e3a8a;\n border-color: #bfdbfe;\n}\n\n.cc-metrics-grid {\n display: grid;\n grid-template-columns: repeat(6, minmax(0, 1fr));\n gap: 0.65rem;\n margin-bottom: 1rem;\n}\n\n.cc-metric-card {\n background: linear-gradient(180deg, rgba(15, 23, 42, 0.96) 0%, rgba(30, 41, 59, 0.96) 100%);\n border: 1px solid #334155;\n border-radius: 10px;\n padding: 0.75rem;\n color: #e2e8f0;\n}\n\n.cc-metric-label {\n margin: 0;\n font-size: 0.68rem;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: #94a3b8;\n}\n\n.cc-metric-value {\n margin: 0.35rem 0 0;\n font-size: 1.2rem;\n font-weight: 700;\n}\n\n.metric-ok {\n border-color: #14532d;\n}\n\n.metric-down {\n border-color: #7f1d1d;\n}\n\n.metric-maint {\n border-color: #78350f;\n}\n\n.cc-layout {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 300px;\n gap: 0.8rem;\n align-items: start;\n}\n\n.cc-main {\n min-width: 0;\n}\n\n.cc-rail {\n display: flex;\n flex-direction: column;\n gap: 0.75rem;\n position: sticky;\n top: 82px;\n}\n\n.cc-panel {\n background: rgba(15, 23, 42, 0.94);\n color: #e2e8f0;\n border: 1px solid #334155;\n border-radius: 12px;\n padding: 0.75rem;\n}\n\n.cc-panel h3 {\n margin: 0 0 0.65rem;\n font-size: 0.9rem;\n letter-spacing: 0.03em;\n}\n\n.cc-empty {\n margin: 0;\n color: #94a3b8;\n font-size: 0.85rem;\n}\n\n.cc-incident-list,\n.cc-group-list {\n display: flex;\n flex-direction: column;\n gap: 0.4rem;\n}\n\n.cc-incident-item,\n.cc-group-item {\n width: 100%;\n background: #0f172a;\n border: 1px solid #334155;\n color: #e2e8f0;\n border-radius: 8px;\n padding: 0.45rem 0.55rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n}\n\n.cc-incident-item:hover,\n.cc-group-item:hover {\n background: #111f34;\n border-color: #475569;\n}\n\n.cc-incident-name {\n font-size: 0.85rem;\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n margin-right: 0.5rem;\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-list {\n display: flex;\n flex-direction: column;\n gap: 0.45rem;\n}\n\n.resource-list-shell {\n background: rgba(15, 23, 42, 0.9);\n border: 1px solid #334155;\n border-radius: 12px;\n padding: 0.65rem;\n max-height: calc(100vh - 250px);\n overflow: auto;\n}\n\n.resource-list-header {\n display: grid;\n grid-template-columns: minmax(260px, 2fr) minmax(220px, 1.25fr) minmax(170px, 0.8fr);\n gap: 1rem;\n padding: 0.35rem 0.6rem 0.6rem;\n font-size: 0.72rem;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: #94a3b8;\n border-bottom: 1px solid #334155;\n margin-bottom: 0.45rem;\n position: sticky;\n top: 0;\n z-index: 5;\n background: rgba(15, 23, 42, 0.98);\n}\n\n.resource-list-count {\n font-size: 0.75rem;\n color: #94a3b8;\n margin: 0 0.6rem 0.55rem;\n position: sticky;\n top: 31px;\n z-index: 4;\n background: rgba(15, 23, 42, 0.95);\n padding-bottom: 0.25rem;\n}\n\n.resource-row {\n display: grid;\n grid-template-columns: minmax(260px, 2fr) minmax(220px, 1.25fr) minmax(170px, 0.8fr);\n align-items: center;\n gap: 1rem;\n padding: 0.65rem 0.8rem;\n background: rgba(15, 23, 42, 0.96);\n border: 1px solid #334155;\n border-radius: 10px;\n box-shadow: 0 4px 12px rgba(2, 6, 23, 0.55);\n cursor: pointer;\n transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;\n}\n\n.resource-row:hover {\n transform: translateY(-1px);\n border-color: #60a5fa;\n box-shadow: 0 12px 22px rgba(2, 6, 23, 0.65);\n}\n\n.row-main {\n min-width: 0;\n}\n\n.row-title-line {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n flex-wrap: wrap;\n margin-bottom: 0.15rem;\n}\n\n.row-name {\n margin: 0;\n font-size: 0.98rem;\n color: #f8fafc;\n}\n\n.resource-group-pill {\n padding: 0.15rem 0.5rem;\n border-radius: 999px;\n background: #1e293b;\n color: #cbd5e1;\n font-size: 0.72rem;\n font-weight: 700;\n}\n\n.incident-inline {\n font-size: 0.72rem;\n color: #991b1b;\n background: #fee2e2;\n border: 1px solid #fecaca;\n padding: 0.15rem 0.45rem;\n border-radius: 999px;\n}\n\n.maintenance-inline {\n font-size: 0.72rem;\n color: #92400e;\n background: #fef3c7;\n border: 1px solid #fde68a;\n padding: 0.15rem 0.45rem;\n border-radius: 999px;\n}\n\n.row-url,\n.row-type {\n margin: 0;\n color: #94a3b8;\n}\n\n.row-url {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 0.78rem;\n}\n\n.row-type {\n font-size: 0.72rem;\n}\n\n.row-metrics {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 0.8rem;\n align-items: center;\n}\n\n.row-metrics .stat-label {\n font-size: 0.64rem;\n color: #94a3b8;\n}\n\n.row-metrics .stat-value {\n color: #e2e8f0;\n font-weight: 700;\n}\n\n.row-sparkline {\n min-width: 95px;\n}\n\n.row-side {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 0.2rem;\n}\n\n.row-actions {\n display: flex;\n gap: 0.35rem;\n}\n\n.resource-card {\n background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);\n border-radius: 14px;\n padding: 1rem 1.1rem;\n box-shadow: 0 8px 22px rgba(15, 23, 42, 0.06);\n transition: transform 0.2s, box-shadow 0.2s;\n cursor: pointer;\n border: 1px solid #e5e7eb;\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 14px 28px rgba(15, 23, 42, 0.13);\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.trend-chip {\n display: inline-block;\n margin-left: 0.3rem;\n font-size: 0.72rem;\n font-weight: 800;\n}\n.trend-better {\n color: #34d399;\n}\n.trend-worse {\n color: #f87171;\n}\n.trend-flat {\n color: #94a3b8;\n}\n\n.resource-url {\n color: #64748b;\n font-size: 0.8rem;\n word-break: break-all;\n}\n.load-more-btn {\n width: 100%;\n border: 1px dashed #94a3b8;\n background: #f8fafc;\n color: #334155;\n border-radius: 10px;\n padding: 0.65rem;\n font-weight: 700;\n cursor: pointer;\n}\n.load-more-btn:hover {\n background: #f1f5f9;\n}\n\n.resource-type {\n margin: 0.15rem 0 0;\n color: #475569;\n font-size: 0.78rem;\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: #dcfce7;\n color: #166534;\n}\n\n.status-down {\n background: #fee2e2;\n color: #991b1b;\n}\n\n.status-unknown {\n background: #e2e8f0;\n color: #334155;\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: #e2e8f0;\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: #94a3b8;\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: #94a3b8;\n}\n\n.group-section {\n margin-bottom: 2rem;\n background: rgba(255, 255, 255, 0.7);\n border: 1px solid #e2e8f0;\n border-radius: 14px;\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: 10px;\n cursor: pointer;\n transition: background 0.2s;\n border: 1px solid #e2e8f0;\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-name {\n margin: 0;\n flex: 1;\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: #f8fafc;\n border: 1px solid #e2e8f0;\n padding: 0.4rem 0.8rem;\n border-radius: 999px;\n color: #475569;\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: #0b1325;\n border: 1px solid #334155;\n color: #e2e8f0;\n min-width: 34px;\n min-height: 30px;\n border-radius: 8px;\n cursor: pointer;\n font-size: 1rem;\n padding: 0.25rem 0.5rem;\n opacity: 1;\n transition: transform 0.15s, background 0.2s, border-color 0.2s;\n}\n\n.btn-icon:hover {\n transform: translateY(-1px);\n background: #111f34;\n border-color: #60a5fa;\n}\n\n.btn-icon:focus-visible {\n outline: 2px solid #60a5fa;\n outline-offset: 2px;\n}\n\n.btn-icon.action-edit {\n color: #93c5fd;\n}\n\n.btn-icon.action-maint {\n color: #fbbf24;\n}\n\n.btn-icon.action-delete {\n color: #fca5a5;\n border-color: #7f1d1d;\n background: #3f1d1d;\n}\n\n.btn-icon.action-delete:hover {\n background: #7f1d1d;\n border-color: #ef4444;\n color: #fee2e2;\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: 1px solid transparent;\n border-radius: 10px;\n font-size: 1rem;\n font-weight: 600;\n cursor: pointer;\n transition: all 0.2s ease;\n}\n\n.btn-primary {\n background: linear-gradient(180deg, #14b8a6 0%, #0d9488 100%);\n color: white;\n}\n\n.btn-primary:hover {\n filter: brightness(0.95);\n}\n\n.btn-secondary {\n background: #ffffff;\n border-color: #dbe2ea;\n color: #0f172a;\n}\n\n.btn-secondary:hover {\n background: #f8fafc;\n}\n\n.btn-danger {\n background: linear-gradient(180deg, #ef4444 0%, #dc2626 100%);\n color: #ffffff;\n}\n\n.btn-ghost {\n display: block;\n width: 100%;\n text-align: left;\n padding: 0.6rem 0.8rem;\n background: #ffffff;\n color: #0f172a;\n border: 0;\n font-weight: 500;\n border-radius: 0;\n}\n\n.btn-ghost:hover {\n background: #f1f5f9;\n}\n\n.btn-danger {\n color: white;\n}\n\n.btn-danger:hover {\n filter: brightness(0.95);\n}\n\n.modal-overlay {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(15, 23, 42, 0.42);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 1000;\n}\n\n.modal {\n background: #ffffff;\n border-radius: 16px;\n border: 1px solid #e2e8f0;\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.form-group textarea {\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.form-group textarea:focus,\n.tag-filter-input:focus {\n outline: none;\n border-color: #0ea5a2;\n box-shadow: 0 0 0 3px rgba(14, 165, 162, 0.18);\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: rgba(15, 23, 42, 0.94);\n border: 1px solid #334155;\n border-radius: 14px;\n padding: 1.5rem;\n margin-bottom: 1.5rem;\n box-shadow: 0 10px 24px rgba(2, 6, 23, 0.55);\n color: #e2e8f0;\n}\n\n.detail-section h2 {\n margin-top: 0;\n color: #f8fafc;\n}\n\n.detail-header-row {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 1rem;\n}\n\n.detail-actions {\n display: flex;\n gap: 0.75rem;\n flex-wrap: wrap;\n justify-content: flex-end;\n}\n\n.resource-url-detail {\n color: #94a3b8;\n margin: 0;\n}\n\n.maintenance-badge {\n background: #fff7db;\n color: #8a6a00;\n border: 1px solid #f9db88;\n}\n\n.stats-grid-4 {\n grid-template-columns: repeat(4, 1fr);\n}\n\n.detail-stats-grid {\n margin-top: 2rem;\n}\n\n.section-controls {\n display: flex;\n gap: 1rem;\n align-items: center;\n margin-bottom: 1rem;\n flex-wrap: wrap;\n}\n\n.filter-control {\n display: inline-flex;\n align-items: center;\n gap: 0.4rem;\n}\n\n.filter-control label {\n font-size: 0.9rem;\n color: #cbd5e1;\n}\n\n.filter-control select {\n background: #111827;\n color: #e2e8f0;\n border: 1px solid #334155;\n border-radius: 6px;\n padding: 0.3rem 0.5rem;\n}\n\n.controls-pagination {\n margin-left: auto;\n display: flex;\n gap: 0.5rem;\n}\n\n.table-wrapper {\n overflow-x: auto;\n}\n\n.data-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.data-table th {\n padding: 0.75rem;\n text-align: left;\n border-bottom: 2px solid #334155;\n color: #e2e8f0;\n background: #111827;\n font-size: 0.86rem;\n text-transform: uppercase;\n letter-spacing: 0.02em;\n}\n\n.data-table td {\n padding: 0.75rem;\n border-bottom: 1px solid #1f2937;\n color: #e2e8f0;\n}\n\n.data-table tbody tr:hover {\n background: #1e293b;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.muted-cell {\n color: #94a3b8;\n}\n\n.w-25 {\n width: 25%;\n}\n\n.w-15 {\n width: 15%;\n}\n\n.w-35 {\n width: 35%;\n}\n\n.incident-reason-cell {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 0.5rem;\n}\n\n.incident-reason-toggle {\n cursor: pointer;\n color: #93c5fd;\n flex: 1;\n}\n\n.expand-indicator {\n margin-left: 0.5rem;\n font-size: 0.85rem;\n color: #94a3b8;\n}\n\n.btn-compact {\n padding: 0.3rem 0.6rem;\n font-size: 0.85rem;\n}\n\n.expanded-row {\n background: #0b1325;\n}\n\n.expanded-cell {\n white-space: pre-wrap;\n word-break: break-word;\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Courier New', monospace;\n font-size: 0.9rem;\n color: #e2e8f0;\n}\n\n.section-title-row {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n margin-bottom: 1rem;\n}\n\n.empty-copy {\n color: #94a3b8;\n text-align: center;\n padding: 2rem;\n}\n\n.chart-container {\n margin-top: 1rem;\n height: 300px;\n background: #0b1325;\n border: 1px solid #334155;\n border-radius: 12px;\n padding: 0.5rem;\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: #1e293b;\n color: #f8fafc;\n text-decoration: none;\n border-radius: 6px;\n border: 1px solid #334155;\n transition: background 0.2s;\n}\n\n.back-button:hover {\n background: #334155;\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 .nav-link {\n padding: 0.35rem 0.65rem;\n font-size: 0.9rem;\n }\n\n .navbar-inner {\n flex-direction: column;\n align-items: flex-start;\n }\n\n .navbar-left {\n width: 100%;\n flex-direction: column;\n align-items: flex-start;\n gap: 0.75rem;\n }\n\n .container {\n padding: 1rem;\n }\n\n .dashboard-toolbar {\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 .tag-filter-input,\n .actions-menu-wrapper {\n width: 100%;\n }\n\n .actions-menu {\n left: 0;\n right: auto;\n }\n\n .dashboard-grid {\n grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n gap: 0.75rem;\n }\n\n .cc-metrics-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .cc-layout {\n grid-template-columns: 1fr;\n }\n\n .cc-rail {\n position: static;\n }\n\n .resource-list-shell {\n max-height: none;\n overflow: visible;\n }\n\n .resource-list-count,\n .resource-list-header {\n position: static;\n }\n\n .resource-row {\n grid-template-columns: 1fr;\n gap: 0.7rem;\n }\n\n .resource-list-header {\n display: none;\n }\n\n .row-metrics {\n grid-template-columns: repeat(3, 1fr);\n }\n\n .row-side {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\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 .detail-header-row {\n flex-direction: column;\n }\n\n .detail-actions {\n width: 100%;\n justify-content: flex-start;\n }\n\n .stats-grid-4 {\n grid-template-columns: repeat(2, 1fr);\n }\n\n .filter-control {\n width: 100%;\n justify-content: space-between;\n }\n\n .controls-pagination {\n margin-left: 0;\n width: 100%;\n }\n\n .controls-pagination .btn {\n flex: 1;\n }\n\n .resource-meta {\n grid-template-columns: 1fr;\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 {\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 h2 {\n font-size: 1.25rem;\n }\n\n .btn {\n padding: 0.5rem 1rem;\n font-size: 0.9rem;\n }\n\n .stats-grid-4 {\n grid-template-columns: 1fr;\n }\n\n .row-metrics {\n grid-template-columns: 1fr 1fr;\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: #ef4444;\n color: #fff;\n border-radius: 50%;\n width: 1.2rem;\n height: 1.2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 0.6rem;\n font-weight: 700;\n line-height: 1;\n}\n\n/* ── Panel ── */\n.notification-popup {\n position: fixed;\n top: 60px;\n right: 20px;\n width: 420px;\n max-height: 600px;\n background: #1e293b;\n border: 1px solid #334155;\n border-radius: 10px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);\n z-index: 1000;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n/* ── Header ── */\n.notification-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.875rem 1rem;\n border-bottom: 1px solid #334155;\n background: #0f172a;\n}\n\n.notification-header h3 {\n margin: 0;\n font-size: 1rem;\n font-weight: 600;\n color: #f1f5f9;\n letter-spacing: 0.01em;\n}\n\n.close-btn {\n background: none;\n border: none;\n font-size: 1.1rem;\n cursor: pointer;\n color: #64748b;\n padding: 0;\n width: 28px;\n height: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 4px;\n transition: color 0.15s, background 0.15s;\n}\n\n.close-btn:hover {\n color: #e2e8f0;\n background: #334155;\n}\n\n/* ── Filters ── */\n.notification-filters {\n display: flex;\n gap: 0.4rem;\n padding: 0.6rem 0.875rem;\n border-bottom: 1px solid #334155;\n background: #1e293b;\n flex-wrap: wrap;\n}\n\n.filter-btn {\n padding: 0.3rem 0.65rem;\n border: 1px solid #334155;\n background: transparent;\n color: #94a3b8;\n border-radius: 5px;\n cursor: pointer;\n font-size: 0.8rem;\n font-weight: 500;\n transition: all 0.15s;\n}\n\n.filter-btn:hover {\n border-color: #14b8a6;\n color: #14b8a6;\n}\n\n.filter-btn.active {\n background: #14b8a6;\n color: #0f172a;\n border-color: #14b8a6;\n font-weight: 600;\n}\n\n.clear-btn {\n margin-left: auto;\n background: transparent;\n color: #f87171;\n border-color: #f87171;\n}\n\n.clear-btn:hover {\n background: #f87171;\n color: #0f172a;\n border-color: #f87171;\n}\n\n/* ── List ── */\n.notification-list {\n flex: 1;\n overflow-y: auto;\n max-height: 460px;\n}\n\n.notification-item {\n padding: 0.875rem 1rem;\n border-bottom: 1px solid #1e293b;\n display: flex;\n gap: 0.75rem;\n background: #1e293b;\n transition: background 0.15s;\n cursor: default;\n}\n\n.notification-item:last-child {\n border-bottom: none;\n}\n\n.notification-item:hover {\n background: #263347;\n}\n\n.notification-item.unread {\n background: #162032;\n border-left: 3px solid #14b8a6;\n}\n\n.notification-item.unread:hover {\n background: #1c2a40;\n}\n\n/* ── Content ── */\n.notification-content {\n flex: 1;\n min-width: 0;\n}\n\n.notification-title {\n font-weight: 600;\n margin-bottom: 0.3rem;\n font-size: 0.875rem;\n color: #f1f5f9;\n line-height: 1.3;\n}\n\n.notification-message {\n font-size: 0.8rem;\n color: #94a3b8;\n margin-bottom: 0.5rem;\n word-break: break-word;\n line-height: 1.45;\n}\n\n.notification-meta {\n display: flex;\n gap: 0.5rem;\n font-size: 0.72rem;\n color: #64748b;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.notification-resource {\n background: #0f172a;\n color: #94a3b8;\n padding: 0.15rem 0.45rem;\n border-radius: 3px;\n border: 1px solid #334155;\n font-size: 0.7rem;\n}\n\n.notification-time {\n white-space: nowrap;\n}\n\n/* ── Actions ── */\n.notification-actions {\n display: flex;\n gap: 0.25rem;\n align-items: flex-start;\n flex-shrink: 0;\n}\n\n.action-btn {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 0.9rem;\n padding: 0.25rem 0.4rem;\n color: #475569;\n border-radius: 4px;\n transition: color 0.15s, background 0.15s;\n}\n\n.action-btn:hover {\n background: #334155;\n color: #e2e8f0;\n}\n\n.action-btn.mark-read:hover {\n color: #4ade80;\n}\n\n.action-btn.delete:hover {\n color: #f87171;\n}\n\n/* ── Empty state ── */\n.notification-empty {\n padding: 2.5rem 1rem;\n text-align: center;\n color: #475569;\n font-size: 0.875rem;\n}\n\n/* ── Scrollbar ── */\n.notification-list::-webkit-scrollbar {\n width: 5px;\n}\n\n.notification-list::-webkit-scrollbar-track {\n background: #0f172a;\n}\n\n.notification-list::-webkit-scrollbar-thumb {\n background: #334155;\n border-radius: 3px;\n}\n\n.notification-list::-webkit-scrollbar-thumb:hover {\n background: #475569;\n}\n\n/* ── Mobile ── */\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",".settings-wizard {\n max-width: 980px;\n margin: 0 auto;\n color: #e2e8f0;\n}\n\n.settings-wizard > h2 {\n color: #f8fafc;\n text-shadow: 0 1px 0 rgba(15, 23, 42, 0.3);\n}\n\n.settings-description {\n color: #cbd5e1;\n margin-bottom: 1.4rem;\n}\n\n.settings-section {\n background: rgba(15, 23, 42, 0.85);\n border-radius: 12px;\n padding: 1.35rem;\n margin-bottom: 1rem;\n border: 1px solid #334155;\n}\n\n.settings-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 1rem;\n padding-bottom: 0.8rem;\n border-bottom: 1px solid #334155;\n}\n\n.settings-header h3 {\n margin: 0;\n color: #f8fafc;\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: #cbd5e1;\n font-size: 0.85rem;\n margin-top: 0.25rem;\n}\n\n.settings-wizard .form-group label {\n color: #e2e8f0;\n}\n\n.settings-wizard .form-group input,\n.settings-wizard .form-group select,\n.settings-wizard .form-group textarea {\n background: #0b1325;\n color: #f8fafc;\n border: 1px solid #334155;\n}\n\n.settings-wizard .form-group input:focus,\n.settings-wizard .form-group select:focus,\n.settings-wizard .form-group textarea:focus {\n border-color: #2563eb;\n box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.28);\n}\n\n.info-box {\n background: #0b1325;\n border-left: 4px solid #60a5fa;\n padding: 1rem;\n margin: 1.5rem 0;\n border-radius: 8px;\n border: 1px solid #334155;\n}\n\n.info-box strong {\n display: block;\n margin-bottom: 0.5rem;\n color: #f8fafc;\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: #e2e8f0;\n}\n\n.info-box a {\n color: #bfdbfe;\n text-decoration: none;\n}\n\n.info-box a:hover {\n text-decoration: underline;\n}\n\n.info-box pre {\n background: #111827;\n color: #f8fafc;\n padding: 1rem;\n border-radius: 8px;\n overflow-x: auto;\n font-size: 0.85rem;\n margin-top: 0.5rem;\n border: 1px solid #334155;\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: #334155;\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: #e2e8f0;\n transition: .4s;\n border-radius: 50%;\n}\n\n.toggle-switch input:checked + .toggle-slider {\n background-color: #2563eb;\n}\n\n.toggle-switch input:focus + .toggle-slider {\n box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.28);\n}\n\n.toggle-switch input:checked + .toggle-slider:before {\n transform: translateX(26px);\n}\n\n.btn-secondary {\n background: #1e293b;\n color: #f8fafc;\n margin-top: 1rem;\n border: 1px solid #334155;\n}\n\n.btn-secondary:hover:not(:disabled) {\n background: #334155;\n}\n\n.btn-secondary:focus-visible {\n outline: 2px solid #60a5fa;\n outline-offset: 2px;\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: #052e16;\n color: #86efac;\n border: 1px solid #166534;\n}\n\n.test-result.error {\n background: #3f1d1d;\n color: #fda4af;\n border: 1px solid #7f1d1d;\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: #166534;\n color: #dcfce7;\n border-left: 4px solid #22c55e;\n}\n\n.save-status.error {\n background: #7f1d1d;\n color: #fee2e2;\n border-left: 4px solid #ef4444;\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",".cc-page {\n padding-top: 1.4rem;\n color: #e2e8f0;\n}\n\n.cc-alert {\n padding: 0.85rem 1rem;\n margin-bottom: 1rem;\n border-radius: 10px;\n border: 1px solid #854d0e;\n background: #2b1907;\n color: #fcd34d;\n}\n\n.cc-page-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n margin-bottom: 1.2rem;\n flex-wrap: wrap;\n}\n\n.cc-page-title {\n margin: 0;\n font-size: 1.65rem;\n letter-spacing: -0.02em;\n color: #f8fafc !important;\n text-shadow: 0 1px 0 rgba(15, 23, 42, 0.3);\n}\n\n.cc-page h2 {\n color: #f8fafc;\n}\n\n.cc-controls {\n display: flex;\n gap: 0.5rem;\n align-items: center;\n flex-wrap: wrap;\n}\n\n.cc-pill-toggle {\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n border: 1px solid #334155;\n border-radius: 999px;\n background: #111827;\n color: #f1f5f9;\n font-size: 0.82rem;\n}\n\n.cc-pill-toggle input {\n accent-color: #3b82f6;\n}\n\n.cc-pill-toggle:focus-within,\n.cc-input-sm:focus,\n.cc-select-sm:focus {\n outline: 2px solid #60a5fa;\n outline-offset: 2px;\n}\n\n.cc-surface {\n background: #0f172a;\n border: 1px solid #334155;\n border-radius: 12px;\n padding: 1rem;\n}\n\n.cc-kpi-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));\n gap: 0.65rem;\n}\n\n.cc-kpi {\n background: #0b1325;\n border: 1px solid #334155;\n border-radius: 10px;\n padding: 0.75rem;\n}\n\n.cc-kpi-label {\n margin: 0;\n font-size: 0.7rem;\n text-transform: uppercase;\n letter-spacing: 0.07em;\n color: #cbd5e1;\n}\n\n.cc-kpi-value {\n margin: 0.35rem 0 0;\n color: #f8fafc;\n font-size: 1.45rem;\n font-weight: 700;\n}\n\n.cc-table-wrap {\n overflow: auto;\n border: 1px solid #334155;\n border-radius: 12px;\n background: #0b1325;\n}\n\n.cc-table {\n width: 100%;\n border-collapse: collapse;\n}\n\n.cc-table thead tr {\n background: #0f172a;\n}\n\n.cc-table th {\n text-align: left;\n padding: 0.75rem;\n color: #e2e8f0;\n font-size: 0.78rem;\n text-transform: uppercase;\n letter-spacing: 0.07em;\n border-bottom: 1px solid #334155;\n}\n\n.cc-table td {\n padding: 0.75rem;\n border-bottom: 1px solid #1f2937;\n color: #f1f5f9;\n}\n\n.cc-table tbody tr:hover {\n background: #1e293b;\n}\n\n.cc-pagination {\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n margin-top: 1rem;\n padding: 1rem;\n background: #111827;\n border: 1px solid #334155;\n border-radius: 10px;\n}\n\n.cc-input-sm {\n width: 56px;\n padding: 0.45rem;\n border: 1px solid #334155;\n border-radius: 8px;\n text-align: center;\n background: #111827;\n color: #e2e8f0;\n}\n\n.cc-select-sm {\n padding: 0.45rem;\n border: 1px solid #334155;\n border-radius: 8px;\n background: #111827;\n color: #e2e8f0;\n}\n\n.cc-empty {\n text-align: center;\n color: #cbd5e1;\n padding: 2.2rem 1rem;\n}\n\n.history-resource-card {\n margin-bottom: 1.4rem;\n}\n\n.history-resource-title {\n margin: 0 0 0.45rem;\n color: #dbeafe;\n}\n\n.history-resource-meta {\n margin: 0 0 1rem;\n color: #e2e8f0;\n display: flex;\n gap: 1rem;\n flex-wrap: wrap;\n}\n\n.history-resource-meta strong {\n color: #f8fafc;\n}\n\n.history-chart-box {\n height: 400px;\n margin-bottom: 1rem;\n background: #111827;\n padding: 1rem;\n border-radius: 10px;\n border: 1px solid #334155;\n}\n\n.history-trend-row {\n display: flex;\n gap: 1rem;\n margin-bottom: 0.8rem;\n color: #e2e8f0;\n flex-wrap: wrap;\n}\n\n.notifications-list {\n display: grid;\n grid-template-columns: 1fr;\n gap: 0.75rem;\n}\n\n.notification-row {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n gap: 1rem;\n padding: 1rem;\n border-radius: 10px;\n border: 1px solid #334155;\n background: #0b1325;\n}\n\n.notification-row.is-unread {\n border-color: #1d4ed8;\n box-shadow: inset 0 0 0 1px rgba(59, 130, 246, 0.35);\n}\n\n.notification-content {\n flex: 1;\n}\n\n.notification-title {\n margin: 0 0 0.4rem;\n color: #f8fafc;\n font-size: 1rem;\n}\n\n.notification-message {\n margin: 0 0 0.5rem;\n color: #e2e8f0;\n}\n\n.notification-meta {\n display: flex;\n gap: 0.65rem;\n flex-wrap: wrap;\n color: #cbd5e1;\n font-size: 0.84rem;\n}\n\n.notification-chip {\n background: #111827;\n border: 1px solid #334155;\n border-radius: 999px;\n padding: 0.2rem 0.55rem;\n color: #f1f5f9;\n}\n\n.notification-actions {\n display: flex;\n gap: 0.4rem;\n flex-shrink: 0;\n}\n\n.notification-actions .btn:focus-visible {\n outline: 2px solid #60a5fa;\n outline-offset: 2px;\n}\n\n@media (max-width: 768px) {\n .cc-controls {\n width: 100%;\n }\n\n .cc-controls .btn,\n .cc-controls .tag-filter-input,\n .cc-controls .cc-pill-toggle {\n width: 100%;\n }\n\n .cc-pagination {\n flex-direction: column;\n align-items: stretch;\n }\n}\n",".status-container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 2rem;\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: 1px solid #dbe2ea;\n padding-bottom: 1.5rem;\n}\n\n.status-header h1 {\n margin: 0 0 0.5rem 0;\n font-size: 2.2rem;\n color: #0f172a;\n}\n\n.status-subtitle {\n margin: 0;\n color: #64748b;\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: #64748b;\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: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);\n border: 1px solid #dbe2ea;\n border-radius: 14px;\n padding: 1.5rem;\n text-align: center;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);\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: #64748b;\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: #1e293b;\n margin: 0 0 1rem 0;\n border-bottom: 1px solid #e5e7eb;\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: 1px solid #dbe2ea;\n border-radius: 14px;\n padding: 1.5rem;\n box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);\n transition: all 0.2s ease;\n}\n\n.status-card:hover {\n box-shadow: 0 8px 18px rgba(15, 23, 42, 0.12);\n}\n\n.status-card-up {\n border-color: #86efac;\n background: #f0fdf4;\n}\n\n.status-card-down {\n border-color: #fca5a5;\n background: #fef2f2;\n}\n\n.status-card-maintenance {\n border-color: #fcd34d;\n background: #fffbeb;\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: #0f172a;\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 #dbe2ea;\n border-radius: 12px;\n overflow: hidden;\n}\n\n.maintenance-table thead,\n.incidents-table thead {\n background-color: #f1f5f9;\n border-bottom: 2px solid #dbe2ea;\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 #e5e7eb;\n}\n\n.maintenance-table tr:hover,\n.incidents-table tr:hover {\n background-color: #f0f9ff;\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",".observability-page {\n\tpadding-top: 2rem;\n}\n\n.observability-page h2 {\n\tcolor: #f8fafc;\n\ttext-shadow: 0 1px 0 rgba(15, 23, 42, 0.3);\n}\n\n.obs-tabs {\n\tmargin-bottom: 2rem;\n\tborder-bottom: 1px solid #334155;\n\tdisplay: flex;\n\tgap: 0.5rem;\n\tflex-wrap: wrap;\n}\n\n.obs-tab {\n\tpadding: 0.75rem 1rem;\n\tborder: 1px solid transparent;\n\tborder-top-left-radius: 10px;\n\tborder-top-right-radius: 10px;\n\tborder-bottom: 3px solid transparent;\n\tbackground: transparent;\n\tcursor: pointer;\n\tfont-weight: 600;\n\tcolor: #cbd5e1;\n}\n\n.obs-tab:focus-visible {\n\toutline: 2px solid #60a5fa;\n\toutline-offset: 2px;\n}\n\n.obs-tab.is-active {\n\tborder-bottom-color: #60a5fa;\n\tcolor: #f8fafc;\n\tbackground: #0f172a;\n\tborder-color: #334155;\n\tborder-bottom-color: #60a5fa;\n}\n\n.obs-summary-grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n\tgap: 1rem;\n\tmargin-bottom: 2rem;\n}\n\n.obs-summary-card {\n\tpadding: 1rem;\n\tborder: 1px solid #334155;\n\tborder-radius: 14px;\n\tbackground: linear-gradient(180deg, #0f172a 0%, #0b1325 100%);\n\tbox-shadow: none;\n}\n\n.obs-card-label {\n\tfont-size: 0.85rem;\n\tcolor: #cbd5e1;\n}\n\n.obs-card-value {\n\tfont-size: 1.5rem;\n\tfont-weight: 700;\n\tmargin-top: 0.45rem;\n\tcolor: #f8fafc;\n}\n\n.obs-card-value.is-danger {\n\tcolor: #f87171;\n}\n\n.obs-card-value.is-ok {\n\tcolor: #34d399;\n}\n\n.obs-table-wrap {\n\toverflow-x: auto;\n}\n\n.obs-spacing-bottom {\n\tmargin-bottom: 2rem;\n}\n\n.obs-table {\n\twidth: 100%;\n\tborder-collapse: collapse;\n}\n\n.obs-table th {\n\ttext-align: left;\n\tpadding: 0.75rem;\n\tbackground: #0f172a;\n\tborder-bottom: 2px solid #334155;\n\tcolor: #e2e8f0;\n\tfont-size: 0.84rem;\n\ttext-transform: uppercase;\n\tletter-spacing: 0.02em;\n}\n\n.obs-table td {\n\tpadding: 0.75rem;\n\tborder-bottom: 1px solid #1f2937;\n\tcolor: #f1f5f9;\n}\n\n.obs-table tbody tr:hover {\n\tbackground: #1e293b;\n}\n\n.obs-right {\n\ttext-align: right !important;\n}\n\n.obs-rate-pill {\n\tpadding: 0.25rem 0.5rem;\n\tborder-radius: 4px;\n\tfont-size: 0.88rem;\n\tfont-weight: 600;\n}\n\n.obs-rate-pill.is-good {\n\tbackground: #052e16;\n\tcolor: #4ade80;\n}\n\n.obs-rate-pill.is-warn {\n\tbackground: #3f2a0f;\n\tcolor: #fbbf24;\n}\n\n.obs-empty-copy {\n\tcolor: #cbd5e1;\n\ttext-align: center;\n\tpadding: 2rem;\n}\n\n.obs-zebra {\n\tbackground: #0b1325;\n}\n\n.obs-error-code {\n\tfont-size: 0.85rem;\n\tcolor: #f87171;\n}\n\n.obs-muted-sm {\n\tfont-size: 0.85rem;\n\tcolor: #cbd5e1;\n}\n\n.obs-small {\n\tfont-size: 0.85rem;\n}\n\n.obs-audit-summary {\n\tmargin-bottom: 2rem;\n\tpadding: 1rem;\n\tbackground: #0f172a;\n\tborder-radius: 12px;\n\tborder: 1px solid #334155;\n}\n\n.obs-audit-summary-line {\n\tmargin: 0.25rem 0;\n\tfont-size: 0.9rem;\n\tcolor: #e2e8f0;\n}\n\n.obs-filters-grid {\n\tmargin-bottom: 1rem;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(150px, 1fr));\n\tgap: 0.5rem;\n}\n\n.obs-filter-input {\n\tpadding: 0.5rem;\n\tborder: 1px solid #334155;\n\tborder-radius: 10px;\n\tbackground: #111827;\n\tcolor: #e2e8f0;\n}\n\n.obs-filter-input:focus {\n\toutline: none;\n\tborder-color: #2563eb;\n\tbox-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);\n}\n\n.obs-toggle-code:focus-visible {\n\toutline: 2px solid #60a5fa;\n\toutline-offset: 2px;\n}\n\n.obs-click-row {\n\tcursor: pointer;\n}\n\n.obs-toggle-code {\n\tcursor: pointer;\n\tcolor: #bfdbfe;\n}\n\n.obs-expanded-row {\n\tbackground: #111b2e;\n}\n\n.obs-expanded-cell {\n\tpadding: 1rem;\n}\n\n.obs-pre {\n\tmargin-top: 0.5rem;\n\tbackground: #0b1325;\n\tcolor: #e2e8f0;\n\tpadding: 0.75rem;\n\tborder-radius: 8px;\n\toverflow-x: auto;\n\tborder: 1px solid #334155;\n}\n\n@media (max-width: 768px) {\n\t.obs-tab {\n\t\tpadding: 0.6rem 0.8rem;\n\t\tfont-size: 0.92rem;\n\t}\n}\n"],"names":[],"ignoreList":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/client/src/NotificationCenter.css b/client/src/NotificationCenter.css
index 0b4e840..afe7d45 100644
--- a/client/src/NotificationCenter.css
+++ b/client/src/NotificationCenter.css
@@ -25,134 +25,157 @@
position: absolute;
top: 0;
right: 0;
- background: #dc3545;
- color: white;
+ background: #ef4444;
+ color: #fff;
border-radius: 50%;
- width: 1.25rem;
- height: 1.25rem;
+ width: 1.2rem;
+ height: 1.2rem;
display: flex;
align-items: center;
justify-content: center;
- font-size: 0.65rem;
- font-weight: bold;
+ font-size: 0.6rem;
+ font-weight: 700;
line-height: 1;
}
+/* ── Panel ── */
.notification-popup {
position: fixed;
top: 60px;
right: 20px;
- width: 400px;
+ width: 420px;
max-height: 600px;
- background: white;
- border: 1px solid #ddd;
- border-radius: 8px;
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
+ background: #1e293b;
+ border: 1px solid #334155;
+ border-radius: 10px;
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
z-index: 1000;
display: flex;
flex-direction: column;
overflow: hidden;
}
+/* ── Header ── */
.notification-header {
display: flex;
justify-content: space-between;
align-items: center;
- padding: 1rem;
- border-bottom: 1px solid #eee;
- background: #f9f9f9;
+ padding: 0.875rem 1rem;
+ border-bottom: 1px solid #334155;
+ background: #0f172a;
}
.notification-header h3 {
margin: 0;
- font-size: 1.1rem;
- color: #333;
+ font-size: 1rem;
+ font-weight: 600;
+ color: #f1f5f9;
+ letter-spacing: 0.01em;
}
.close-btn {
background: none;
border: none;
- font-size: 1.25rem;
+ font-size: 1.1rem;
cursor: pointer;
- color: #999;
+ color: #64748b;
padding: 0;
- width: 30px;
- height: 30px;
+ width: 28px;
+ height: 28px;
display: flex;
align-items: center;
justify-content: center;
+ border-radius: 4px;
+ transition: color 0.15s, background 0.15s;
}
.close-btn:hover {
- color: #333;
+ color: #e2e8f0;
+ background: #334155;
}
+/* ── Filters ── */
.notification-filters {
display: flex;
- gap: 0.5rem;
- padding: 0.75rem 1rem;
- border-bottom: 1px solid #eee;
- background: #fafafa;
+ gap: 0.4rem;
+ padding: 0.6rem 0.875rem;
+ border-bottom: 1px solid #334155;
+ background: #1e293b;
flex-wrap: wrap;
}
.filter-btn {
- padding: 0.4rem 0.75rem;
- border: 1px solid #ddd;
- background: white;
- border-radius: 4px;
+ padding: 0.3rem 0.65rem;
+ border: 1px solid #334155;
+ background: transparent;
+ color: #94a3b8;
+ border-radius: 5px;
cursor: pointer;
- font-size: 0.85rem;
- transition: all 0.2s;
+ font-size: 0.8rem;
+ font-weight: 500;
+ transition: all 0.15s;
}
.filter-btn:hover {
- border-color: #007bff;
- color: #007bff;
+ border-color: #14b8a6;
+ color: #14b8a6;
}
.filter-btn.active {
- background: #007bff;
- color: white;
- border-color: #007bff;
+ background: #14b8a6;
+ color: #0f172a;
+ border-color: #14b8a6;
+ font-weight: 600;
}
.clear-btn {
margin-left: auto;
- background: #dc3545;
- color: white;
- border-color: #dc3545;
+ background: transparent;
+ color: #f87171;
+ border-color: #f87171;
}
.clear-btn:hover {
- background: #c82333;
- border-color: #c82333;
+ background: #f87171;
+ color: #0f172a;
+ border-color: #f87171;
}
+/* ── List ── */
.notification-list {
flex: 1;
overflow-y: auto;
- max-height: 450px;
+ max-height: 460px;
}
.notification-item {
- padding: 1rem;
- border-bottom: 1px solid #eee;
+ padding: 0.875rem 1rem;
+ border-bottom: 1px solid #1e293b;
display: flex;
gap: 0.75rem;
- background: white;
- transition: background 0.2s;
+ background: #1e293b;
+ transition: background 0.15s;
+ cursor: default;
+}
+
+.notification-item:last-child {
+ border-bottom: none;
}
.notification-item:hover {
- background: #f9f9f9;
+ background: #263347;
}
.notification-item.unread {
- background: #f0f8ff;
- font-weight: 500;
+ background: #162032;
+ border-left: 3px solid #14b8a6;
}
+.notification-item.unread:hover {
+ background: #1c2a40;
+}
+
+/* ── Content ── */
.notification-content {
flex: 1;
min-width: 0;
@@ -160,84 +183,101 @@
.notification-title {
font-weight: 600;
- margin-bottom: 0.25rem;
- font-size: 0.95rem;
- color: #333;
+ margin-bottom: 0.3rem;
+ font-size: 0.875rem;
+ color: #f1f5f9;
+ line-height: 1.3;
}
.notification-message {
- font-size: 0.85rem;
- color: #666;
+ font-size: 0.8rem;
+ color: #94a3b8;
margin-bottom: 0.5rem;
word-break: break-word;
+ line-height: 1.45;
}
.notification-meta {
display: flex;
- gap: 0.75rem;
- font-size: 0.75rem;
- color: #999;
+ gap: 0.5rem;
+ font-size: 0.72rem;
+ color: #64748b;
flex-wrap: wrap;
+ align-items: center;
}
.notification-resource {
- background: #f0f0f0;
- padding: 0.2rem 0.5rem;
+ background: #0f172a;
+ color: #94a3b8;
+ padding: 0.15rem 0.45rem;
border-radius: 3px;
+ border: 1px solid #334155;
+ font-size: 0.7rem;
}
.notification-time {
white-space: nowrap;
}
+/* ── Actions ── */
.notification-actions {
display: flex;
- gap: 0.5rem;
+ gap: 0.25rem;
align-items: flex-start;
+ flex-shrink: 0;
}
.action-btn {
background: none;
border: none;
cursor: pointer;
- font-size: 1rem;
- padding: 0.25rem 0.5rem;
- color: #999;
- transition: color 0.2s;
- flex-shrink: 0;
+ font-size: 0.9rem;
+ padding: 0.25rem 0.4rem;
+ color: #475569;
+ border-radius: 4px;
+ transition: color 0.15s, background 0.15s;
}
.action-btn:hover {
- color: #333;
+ background: #334155;
+ color: #e2e8f0;
}
.action-btn.mark-read:hover {
- color: #28a745;
+ color: #4ade80;
}
.action-btn.delete:hover {
- color: #dc3545;
+ color: #f87171;
}
-/* Scrollbar styling */
+/* ── Empty state ── */
+.notification-empty {
+ padding: 2.5rem 1rem;
+ text-align: center;
+ color: #475569;
+ font-size: 0.875rem;
+}
+
+/* ── Scrollbar ── */
.notification-list::-webkit-scrollbar {
- width: 6px;
+ width: 5px;
}
.notification-list::-webkit-scrollbar-track {
- background: #f1f1f1;
+ background: #0f172a;
}
.notification-list::-webkit-scrollbar-thumb {
- background: #888;
+ background: #334155;
border-radius: 3px;
}
.notification-list::-webkit-scrollbar-thumb:hover {
- background: #555;
+ background: #475569;
}
-/* Mobile responsive */
+/* ── Mobile ── */
@media (max-width: 600px) {
.notification-popup {
position: fixed;