diff --git a/client/build/asset-manifest.json b/client/build/asset-manifest.json index 40bef28..e025f87 100644 --- a/client/build/asset-manifest.json +++ b/client/build/asset-manifest.json @@ -1,15 +1,15 @@ { "files": { - "main.css": "/static/css/main.5afb44a9.css", - "main.js": "/static/js/main.a387bcf0.js", + "main.css": "/static/css/main.67d2dbc4.css", + "main.js": "/static/js/main.85e69234.js", "static/js/453.d456ce70.chunk.js": "/static/js/453.d456ce70.chunk.js", "index.html": "/index.html", - "main.5afb44a9.css.map": "/static/css/main.5afb44a9.css.map", - "main.a387bcf0.js.map": "/static/js/main.a387bcf0.js.map", + "main.67d2dbc4.css.map": "/static/css/main.67d2dbc4.css.map", + "main.85e69234.js.map": "/static/js/main.85e69234.js.map", "453.d456ce70.chunk.js.map": "/static/js/453.d456ce70.chunk.js.map" }, "entrypoints": [ - "static/css/main.5afb44a9.css", - "static/js/main.a387bcf0.js" + "static/css/main.67d2dbc4.css", + "static/js/main.85e69234.js" ] } \ No newline at end of file diff --git a/client/build/index.html b/client/build/index.html index 4c10c5e..ee94124 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.5afb44a9.css b/client/build/static/css/main.5afb44a9.css deleted file mode 100644 index 376b098..0000000 --- a/client/build/static/css/main.5afb44a9.css +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index e226d09..0000000 --- a/client/build/static/css/main.5afb44a9.css.map +++ /dev/null @@ -1 +0,0 @@ -{"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/build/static/css/main.67d2dbc4.css b/client/build/static/css/main.67d2dbc4.css new file mode 100644 index 0000000..50cbaec --- /dev/null +++ b/client/build/static/css/main.67d2dbc4.css @@ -0,0 +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}:root{--app-bg:#020617;--surface:#0f172a;--surface-2:#1e293b;--border:#334155;--text:#e2e8f0;--text-muted:#94a3b8;--text-dim:#64748b;--accent:#14b8a6}[data-theme=light]{--app-bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--border:#e2e8f0;--text:#1e293b;--text-muted:#475569;--text-dim:#94a3b8;--accent:#0d9488}[data-theme=light] .App{background:#020617;background:var(--app-bg)}[data-theme=light] .navbar{background:#ffffffeb;border-bottom:1px solid #334155;border-bottom:1px solid var(--border);color:#e2e8f0;color:var(--text)}[data-theme=light] .nav-link{color:#475569}[data-theme=light] .nav-link:hover{background:#f1f5f9;box-shadow:inset 0 0 0 1px #e2e8f0;color:#1e293b}[data-theme=light] .container,[data-theme=light] .detail-section,[data-theme=light] .resource-row{background:#0f172a;background:var(--surface);color:#e2e8f0;color:var(--text)}.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-incident-item{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#e2e8f0;display:flex;justify-content:space-between;padding:.2rem .35rem .2rem 0;width:100%}.cc-incident-item:hover{background:#111f34;border-color:#475569}.cc-incident-nav{align-items:center;background:none;border:none;color:#e2e8f0;cursor:pointer;display:flex;flex:1 1;justify-content:space-between;padding:.25rem .55rem;text-align:left}.cc-ack-btn{color:#4ade80;flex-shrink:0;font-size:.95rem;margin-right:.25rem;padding:.2rem .4rem}.cc-group-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{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:28px 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:28px 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{gap:1rem;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,.row-checkbox{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}}.bulk-action-bar{align-items:center;background:#0f172a;border:1px solid #334155;border-radius:8px;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;padding:.5rem .75rem}.bulk-count{color:#94a3b8;flex-shrink:0;font-size:.85rem;margin-right:.5rem}.row-checkbox{align-items:center;cursor:pointer;display:flex;flex-shrink:0;justify-content:center}.header-select-all input[type=checkbox],.row-checkbox input[type=checkbox]{accent-color:#14b8a6;cursor:pointer;height:15px;width:15px}.header-select-all{align-items:center;cursor:pointer;display:flex}.resource-row-selected{background:#14b8a60f!important;border-color:#14b8a6!important}.status-spark-bars{height:40px}.chart-range-btns{display:flex;gap:.3rem}.chart-range-btn{background:#0f172a;border:1px solid #334155;border-radius:5px;color:#94a3b8;cursor:pointer;font-size:.8rem;padding:.25rem .6rem;transition:all .15s}.chart-range-btn:hover{border-color:#14b8a6;color:#14b8a6}.chart-range-btn.active{background:#14b8a6;border-color:#14b8a6;color:#0f172a;font-weight:600}.check-row-expandable{cursor:pointer}.check-row-expandable:hover{background:#14b8a60d}.detail-json{background:#0a0f1a;border-radius:6px;color:#94a3b8;font-family:SF Mono,Fira Code,monospace;font-size:.78rem;line-height:1.5;margin:0;overflow-x:auto;padding:.75rem 1rem;white-space:pre}.section-title-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.section-title-row h2{margin:0}.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}.push-prompt{padding:.4rem .875rem 0}@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}}.uptime-history{border-radius:4px;display:flex;gap:2px;height:28px;margin:.75rem 0 .25rem;overflow:hidden}.uptime-day-bar{border-radius:1px;cursor:default;flex:1 1;min-width:1px;transition:opacity .15s}.uptime-day-bar:hover{opacity:.7}.uptime-history-labels{color:#94a3b8;display:flex;font-size:.7rem;justify-content:space-between;margin-bottom:.75rem}.status-spark-bars{align-items:stretch;display:flex;gap:2px;height:44px;width:100%}.spark-bar{border-radius:1px;flex:1 1;min-width:3px;transition:opacity .15s}.spark-bar:hover{opacity:.65}.spark-bar-up{background:#14b8a6}.spark-bar-down{background:#ef4444}.spark-bar-unknown{background:#475569}.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.67d2dbc4.css.map*/ \ No newline at end of file diff --git a/client/build/static/css/main.67d2dbc4.css.map b/client/build/static/css/main.67d2dbc4.css.map new file mode 100644 index 0000000..9981cfb --- /dev/null +++ b/client/build/static/css/main.67d2dbc4.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.67d2dbc4.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","/* ── Theme variables ── */\n:root {\n --app-bg: #020617;\n --surface: #0f172a;\n --surface-2: #1e293b;\n --border: #334155;\n --text: #e2e8f0;\n --text-muted: #94a3b8;\n --text-dim: #64748b;\n --accent: #14b8a6;\n}\n\n[data-theme=\"light\"] {\n --app-bg: #f8fafc;\n --surface: #ffffff;\n --surface-2: #f1f5f9;\n --border: #e2e8f0;\n --text: #1e293b;\n --text-muted: #475569;\n --text-dim: #94a3b8;\n --accent: #0d9488;\n}\n\n[data-theme=\"light\"] .App {\n background: var(--app-bg);\n}\n\n[data-theme=\"light\"] .navbar {\n background: rgba(255, 255, 255, 0.92);\n border-bottom: 1px solid var(--border);\n color: var(--text);\n}\n\n[data-theme=\"light\"] .nav-link {\n color: #475569;\n}\n\n[data-theme=\"light\"] .nav-link:hover {\n background: #f1f5f9;\n color: #1e293b;\n box-shadow: inset 0 0 0 1px #e2e8f0;\n}\n\n[data-theme=\"light\"] .container,\n[data-theme=\"light\"] .detail-section,\n[data-theme=\"light\"] .resource-row {\n background: var(--surface);\n color: var(--text);\n}\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 width: 100%;\n background: #0f172a;\n border: 1px solid #334155;\n color: #e2e8f0;\n border-radius: 8px;\n padding: 0.2rem 0.35rem 0.2rem 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.cc-incident-item:hover {\n background: #111f34;\n border-color: #475569;\n}\n\n.cc-incident-nav {\n flex: 1;\n background: none;\n border: none;\n color: #e2e8f0;\n padding: 0.25rem 0.55rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n text-align: left;\n}\n\n.cc-ack-btn {\n flex-shrink: 0;\n color: #4ade80;\n font-size: 0.95rem;\n padding: 0.2rem 0.4rem;\n margin-right: 0.25rem;\n}\n\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-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: 28px 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: 28px 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-checkbox {\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\n/* ── Bulk action bar ── */\n.bulk-action-bar {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n background: #0f172a;\n border: 1px solid #334155;\n border-radius: 8px;\n margin-bottom: 0.5rem;\n flex-wrap: wrap;\n}\n\n.bulk-count {\n font-size: 0.85rem;\n color: #94a3b8;\n margin-right: 0.5rem;\n flex-shrink: 0;\n}\n\n/* ── Row checkbox ── */\n.row-checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex-shrink: 0;\n}\n\n.row-checkbox input[type=\"checkbox\"],\n.header-select-all input[type=\"checkbox\"] {\n width: 15px;\n height: 15px;\n accent-color: #14b8a6;\n cursor: pointer;\n}\n\n.header-select-all {\n display: flex;\n align-items: center;\n cursor: pointer;\n}\n\n.resource-row-selected {\n border-color: #14b8a6 !important;\n background: rgba(20, 184, 166, 0.06) !important;\n}\n\n/* ── Status sparkline bars ── */\n.status-spark-bars {\n display: flex;\n gap: 2px;\n align-items: stretch;\n height: 40px;\n width: 100%;\n}\n\n.spark-bar {\n flex: 1;\n min-width: 3px;\n border-radius: 1px;\n transition: opacity 0.15s;\n}\n\n.spark-bar:hover { opacity: 0.65; }\n.spark-bar-up { background: #14b8a6; }\n.spark-bar-down { background: #ef4444; }\n.spark-bar-unknown { background: #475569; }\n\n/* ── Chart time-range buttons ── */\n.chart-range-btns {\n display: flex;\n gap: 0.3rem;\n}\n\n.chart-range-btn {\n background: #0f172a;\n border: 1px solid #334155;\n color: #94a3b8;\n border-radius: 5px;\n padding: 0.25rem 0.6rem;\n font-size: 0.8rem;\n cursor: pointer;\n transition: all 0.15s;\n}\n\n.chart-range-btn:hover {\n border-color: #14b8a6;\n color: #14b8a6;\n}\n\n.chart-range-btn.active {\n background: #14b8a6;\n border-color: #14b8a6;\n color: #0f172a;\n font-weight: 600;\n}\n\n/* ── Check row expansion ── */\n.check-row-expandable {\n cursor: pointer;\n}\n\n.check-row-expandable:hover {\n background: rgba(20, 184, 166, 0.05);\n}\n\n.detail-json {\n font-family: 'SF Mono', 'Fira Code', monospace;\n font-size: 0.78rem;\n color: #94a3b8;\n background: #0a0f1a;\n border-radius: 6px;\n padding: 0.75rem 1rem;\n overflow-x: auto;\n white-space: pre;\n margin: 0;\n line-height: 1.5;\n}\n\n/* ── Section title row ── */\n.section-title-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 0.75rem;\n}\n\n.section-title-row h2 {\n margin: 0;\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/* ── Push prompt ── */\n.push-prompt {\n padding: 0.4rem 0.875rem 0;\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\n/* ── 90-day uptime bars ── */\n.uptime-history {\n display: flex;\n gap: 2px;\n height: 28px;\n margin: 0.75rem 0 0.25rem;\n border-radius: 4px;\n overflow: hidden;\n}\n\n.uptime-day-bar {\n flex: 1;\n min-width: 1px;\n border-radius: 1px;\n cursor: default;\n transition: opacity 0.15s;\n}\n\n.uptime-day-bar:hover {\n opacity: 0.7;\n}\n\n.uptime-history-labels {\n display: flex;\n justify-content: space-between;\n font-size: 0.7rem;\n color: #94a3b8;\n margin-bottom: 0.75rem;\n}\n\n/* ── Spark bars in dashboard ── */\n.status-spark-bars {\n display: flex;\n gap: 2px;\n align-items: stretch;\n height: 44px;\n width: 100%;\n}\n\n.spark-bar {\n flex: 1;\n min-width: 3px;\n border-radius: 1px;\n transition: opacity 0.15s;\n}\n\n.spark-bar:hover { opacity: 0.65; }\n.spark-bar-up { background: #14b8a6; }\n.spark-bar-down { background: #ef4444; }\n.spark-bar-unknown { background: #475569; }\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/js/main.85e69234.js b/client/build/static/js/main.85e69234.js new file mode 100644 index 0000000..0d07ff1 --- /dev/null +++ b/client/build/static/js/main.85e69234.js @@ -0,0 +1,3 @@ +/*! For license information please see main.85e69234.js.LICENSE.txt */ +(()=>{var e={356:(e,t,n)=>{e.exports=n(9645).last},418:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toString=function e(t){if(null==t)return"";if("string"===typeof t)return t;if(Array.isArray(t))return t.map(e).join(",");const n=String(t);return"0"===n&&Object.is(Number(t),-0)?"-0":n}},579:(e,t,n)=>{"use strict";e.exports=n(2799)},870:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isObject=function(e){return null!==e&&("object"===typeof e||"function"===typeof e)}},1203:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(8420);t.isArrayLike=function(e){return null!=e&&"function"!==typeof e&&r.isLength(e.length)}},1293:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(4830);t.debounce=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};"object"!==typeof n&&(n={});const{leading:a=!1,trailing:i=!0,maxWait:o}=n,l=Array(2);let s;a&&(l[0]="leading"),i&&(l[1]="trailing");let c=null;const u=r.debounce(function(){for(var t=arguments.length,n=new Array(t),r=0;r=o)?(s=e.apply(this,n),c=Date.now(),u.cancel(),u.schedule(),s):(u.apply(this,n),s)};return d.cancel=u.cancel,d.flush=()=>(u.flush(),s),d}},1444:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(418),a=n(3272);t.toPath=function(e){if(Array.isArray(e))return e.map(a.toKey);if("symbol"===typeof e)return[e];const t=[],n=(e=r.toString(e)).length;if(0===n)return t;let i=0,o="",l="",s=!1;for(46===e.charCodeAt(0)&&(t.push(""),i++);i{"use strict";e.exports=n(5082)},2104:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(1203),a=n(9921);t.isArrayLikeObject=function(e){return a.isObjectLike(e)&&r.isArrayLike(e)}},2132:(e,t,n)=>{"use strict";var r=n(2897).default;Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const a=n(870),i=n(4803),o=n(9972);function l(e,t,n,u){if(t===e)return!0;switch(typeof t){case"object":return function(e,t,n,r){if(null==t)return!0;if(Array.isArray(t))return s(e,t,n,r);if(t instanceof Map)return function(e,t,n,r){if(0===t.size)return!0;if(!(e instanceof Map))return!1;for(const[a,i]of t.entries()){if(!1===n(e.get(a),i,a,e,t,r))return!1}return!0}(e,t,n,r);if(t instanceof Set)return c(e,t,n,r);const a=Object.keys(t);if(null==e)return 0===a.length;if(0===a.length)return!0;if(null!==r&&void 0!==r&&r.has(t))return r.get(t)===e;null===r||void 0===r||r.set(t,e);try{for(let o=0;o0?l(e,r({},t),n,u):o.eq(e,t);default:return a.isObject(e)?"string"!==typeof t||""===t:o.eq(e,t)}}function s(e,t,n,r){if(0===t.length)return!0;if(!Array.isArray(e))return!1;const a=new Set;for(let i=0;i{}):l(t,n,function e(t,n,a,i,o,s){const c=r(t,n,a,i,o,s);return void 0!==c?Boolean(c):l(t,n,e,s)},new Map)},t.isSetMatch=c},2204:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(5316),a=n(7312),i=n(3799);t.sortBy=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o1&&i.isIterateeCall(e,n[0],n[1])?n=[]:l>2&&i.isIterateeCall(n[0],n[1],n[2])&&(n=[n[0]]),r.orderBy(e,a.flatten(n),["asc"])}},2330:(e,t,n)=>{"use strict";var r=n(5043);var a="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},i=r.useState,o=r.useEffect,l=r.useLayoutEffect,s=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var u="undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),a=r[0].inst,u=r[1];return l(function(){a.value=n,a.getSnapshot=t,c(a)&&u({inst:a})},[e,n,t]),o(function(){return c(a)&&u({inst:a}),e(function(){c(a)&&u({inst:a})})},[e]),s(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},2489:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isDeepKey=function(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}},2682:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isPlainObject=function(e){if("object"!==typeof e)return!1;if(null==e)return!1;if(null===Object.getPrototypeOf(e))return!0;if("[object Object]"!==Object.prototype.toString.call(e)){var t;const n=e[Symbol.toStringTag];if(null==n)return!1;return!!(null!==(t=Object.getOwnPropertyDescriptor(e,Symbol.toStringTag))&&void 0!==t&&t.writable)&&e.toString()==="[object ".concat(n,"]")}let n=e;for(;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}},2715:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(9599),a=n(7330),i=n(3808),o=n(8845);t.iteratee=function(e){if(null==e)return r.identity;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&2===e.length?o.matchesProperty(e[0],e[1]):i.matches(e);case"string":case"symbol":case"number":return a.property(e)}}},2777:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isSymbol=function(e){return"symbol"===typeof e||e instanceof Symbol}},2799:(e,t)=>{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function a(e,t,r){var a=null;if(void 0!==r&&(a=""+r),void 0!==t.key&&(a=""+t.key),"key"in t)for(var i in r={},t)"key"!==i&&(r[i]=t[i]);else r=t;return t=r.ref,{$$typeof:n,type:e,key:a,ref:void 0!==t?t:null,props:r}}t.Fragment=r,t.jsx=a,t.jsxs=a},2897:(e,t,n)=>{var r=n(3693);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}e.exports=function(e){for(var t=1;t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toKey=function(e){var t;return"string"===typeof e||"symbol"===typeof e?e:Object.is(null===e||void 0===e||null===(t=e.valueOf)||void 0===t?void 0:t.call(e),-0)?"-0":String(e)}},3693:(e,t,n)=>{var r=n(7736);e.exports=function(e,t,n){return(t=r(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e},e.exports.__esModule=!0,e.exports.default=e.exports},3738:e=>{function t(n){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(n)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},3757:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isTypedArray=function(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}},3799:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(4704),a=n(1203),i=n(870),o=n(9972);t.isIterateeCall=function(e,t,n){return!!i.isObject(n)&&(!!("number"===typeof t&&a.isArrayLike(n)&&r.isIndex(t)&&t{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(8268),a=n(5261);t.matches=function(e){return e=a.cloneDeep(e),t=>r.isMatch(t,e)}},3821:(e,t,n)=>{e.exports=n(2204).sortBy},4208:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.uniqBy=function(e,t){const n=new Map;for(let r=0;r{"use strict";var n=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),h=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,y={};function g(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||m}function b(){}function x(e,t,n){this.props=e,this.context=t,this.refs=y,this.updater=n||m}g.prototype.isReactComponent={},g.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},g.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=g.prototype;var w=x.prototype=new b;w.constructor=x,v(w,g.prototype),w.isPureReactComponent=!0;var j=Array.isArray;function S(){}var k={H:null,A:null,T:null,S:null},O=Object.prototype.hasOwnProperty;function E(e,t,r){var a=r.ref;return{$$typeof:n,type:e,key:t,ref:void 0!==a?a:null,props:r}}function _(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var N=/\/+/g;function P(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(e){return t[e]})}(""+e.key):t.toString(36)}function C(e,t,a,i,o){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s,c,u=!1;if(null===e)u=!0;else switch(l){case"bigint":case"string":case"number":u=!0;break;case"object":switch(e.$$typeof){case n:case r:u=!0;break;case f:return C((u=e._init)(e._payload),t,a,i,o)}}if(u)return o=o(e),u=""===i?"."+P(e,0):i,j(o)?(a="",null!=u&&(a=u.replace(N,"$&/")+"/"),C(o,t,a,"",function(e){return e})):null!=o&&(_(o)&&(s=o,c=a+(null==o.key||e&&e.key===o.key?"":(""+o.key).replace(N,"$&/")+"/")+u,o=E(s.type,c,s.props)),t.push(o)),1;u=0;var d,p=""===i?".":i+":";if(j(e))for(var m=0;m{e.exports=n(5053).uniqBy},4391:(e,t,n)=>{"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(7004)},4704:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const n=/^(?:0|[1-9]\d*)$/;t.isIndex=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_SAFE_INTEGER;switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isPrimitive=function(e){return null==e||"object"!==typeof e&&"function"!==typeof e}},4830:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.debounce=function(e,t){let n,{signal:r,edges:a}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=null;const o=null!=a&&a.includes("leading"),l=null==a||a.includes("trailing"),s=()=>{null!==i&&(e.apply(n,i),n=void 0,i=null)};let c=null;const u=()=>{null!=c&&clearTimeout(c),c=setTimeout(()=>{c=null,l&&s(),d()},t)},d=()=>{null!==c&&(clearTimeout(c),c=null),n=void 0,i=null},f=function(){if(null!==r&&void 0!==r&&r.aborted)return;n=this;for(var e=arguments.length,t=new Array(e),a=0;a{s()},null===r||void 0===r||r.addEventListener("abort",d,{once:!0}),f}},4879:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6770);t.toFinite=function(e){if(!e)return 0===e?e:0;if((e=r.toNumber(e))===1/0||e===-1/0){return(e<0?-1:1)*Number.MAX_VALUE}return e===e?e:0}},5043:(e,t,n)=>{"use strict";e.exports=n(4288)},5053:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(4208),a=n(9599),i=n(2104),o=n(2715);t.uniqBy=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a.identity;return i.isArrayLikeObject(e)?r.uniqBy(Array.from(e),o.iteratee(t)):[]}},5082:(e,t)=>{"use strict";var n=60103,r=60106,a=60107,i=60108,o=60114,l=60109,s=60110,c=60112,u=60113,d=60120,f=60115,p=60116,h=60121,m=60122,v=60117,y=60129,g=60131;if("function"===typeof Symbol&&Symbol.for){var b=Symbol.for;n=b("react.element"),r=b("react.portal"),a=b("react.fragment"),i=b("react.strict_mode"),o=b("react.profiler"),l=b("react.provider"),s=b("react.context"),c=b("react.forward_ref"),u=b("react.suspense"),d=b("react.suspense_list"),f=b("react.memo"),p=b("react.lazy"),h=b("react.block"),m=b("react.server.block"),v=b("react.fundamental"),y=b("react.debug_trace_mode"),g=b("react.legacy_hidden")}function x(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case a:case o:case i:case u:case d:return e;default:switch(e=e&&e.$$typeof){case s:case c:case p:case f:case l:return e;default:return t}}case r:return t}}}t.isFragment=function(e){return x(e)===a}},5261:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6433);t.cloneDeep=function(e){return r.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}},5303:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(2489),a=n(4704),i=n(6321),o=n(1444);t.has=function(e,t){let n;if(n=Array.isArray(t)?t:"string"===typeof t&&r.isDeepKey(t)&&null==(null===e||void 0===e?void 0:e[t])?o.toPath(t):[t],0===n.length)return!1;let l=e;for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(9709),a=n(7043),i=n(1444);t.orderBy=function(e,t,n,o){if(null==e)return[];n=o?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=null==t?[null]:[t]),0===t.length&&(t=[null]),Array.isArray(n)||(n=null==n?[]:[n]),n=n.map(e=>String(e));const l=(e,t)=>{let n=e;for(let r=0;r(Array.isArray(e)&&1===e.length&&(e=e[0]),null==e||"function"===typeof e||Array.isArray(e)||a.isKey(e)?e:{key:e,path:i.toPath(e)}));return e.map(e=>({original:e,criteria:s.map(t=>((e,t)=>null==t||null==e?t:"object"===typeof e&&"key"in e?Object.hasOwn(t,e.key)?t[e.key]:l(t,e.path):"function"===typeof e?e(t):Array.isArray(e)?l(t,e):"object"===typeof t?t[e]:t)(t,e))})).slice().sort((e,t)=>{for(let a=0;ae.original)}},5414:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(1293);t.throttle=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};const{leading:a=!0,trailing:i=!0}=n;return r.debounce(e,t,{leading:a,maxWait:t,trailing:i})}},5508:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6433),a=n(7599);t.cloneDeepWith=function(e,t){return r.cloneDeepWith(e,(n,i,o,l)=>{const s=null===t||void 0===t?void 0:t(n,i,o,l);if(void 0!==s)return s;if("object"===typeof e)switch(Object.prototype.toString.call(e)){case a.numberTag:case a.stringTag:case a.booleanTag:{const t=new e.constructor(null===e||void 0===e?void 0:e.valueOf());return r.copyProperties(t,e),t}case a.argumentsTag:{const t={};return r.copyProperties(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}})}},5896:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0>>1,a=e[r];if(!(0>>1;ri(s,n))ci(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[l]=n,r=l);else{if(!(ci(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if(t.unstable_now=void 0,"object"===typeof performance&&"function"===typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var c=[],u=[],d=1,f=null,p=3,h=!1,m=!1,v=!1,y=!1,g="function"===typeof setTimeout?setTimeout:null,b="function"===typeof clearTimeout?clearTimeout:null,x="undefined"!==typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function j(e){if(v=!1,w(e),!m)if(null!==r(c))m=!0,k||(k=!0,S());else{var t=r(u);null!==t&&T(j,t.startTime-e)}}var S,k=!1,O=-1,E=5,_=-1;function N(){return!!y||!(t.unstable_now()-_e&&N());){var o=f.callback;if("function"===typeof o){f.callback=null,p=f.priorityLevel;var l=o(f.expirationTime<=e);if(e=t.unstable_now(),"function"===typeof l){f.callback=l,w(e),n=!0;break t}f===r(c)&&a(c),w(e)}else a(c);f=r(c)}if(null!==f)n=!0;else{var s=r(u);null!==s&&T(j,s.startTime-e),n=!1}}break e}finally{f=null,p=i,h=!1}n=void 0}}finally{n?S():k=!1}}}if("function"===typeof x)S=function(){x(P)};else if("undefined"!==typeof MessageChannel){var C=new MessageChannel,A=C.port2;C.port1.onmessage=P,S=function(){A.postMessage(null)}}else S=function(){g(P,0)};function T(e,n){O=g(function(){e(t.unstable_now())},n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125o?(e.sortIndex=i,n(u,e),null===r(c)&&e===r(u)&&(v?(b(O),O=-1):v=!0,T(j,i-o))):(e.sortIndex=l,n(c,e),m||h||(m=!0,k||(k=!0,S()))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},5990:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getTag=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}},6321:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(5990);t.isArguments=function(e){return null!==e&&"object"===typeof e&&"[object Arguments]"===r.getTag(e)}},6392:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.last=function(e){return e[e.length-1]}},6433:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6443),a=n(5990),i=n(7599),o=n(4803),l=n(3757);function s(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:new Map,u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;const d=null===u||void 0===u?void 0:u(e,t,n,r);if(void 0!==d)return d;if(o.isPrimitive(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){const t=new Array(e.length);r.set(e,t);for(let a=0;a2&&void 0!==arguments[2]?arguments[2]:e,a=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;const o=[...Object.keys(t),...r.getSymbols(t)];for(let r=0;r{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.getSymbols=function(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}},6672:(e,t,n)=>{"use strict";var r=n(5043);function a(e){var t="https://react.dev/errors/"+e;if(1{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(2777);t.toNumber=function(e){return r.isSymbol(e)?NaN:Number(e)}},7004:(e,t,n)=>{"use strict";var r=n(8853),a=n(5043),i=n(7950);function o(e){var t="https://react.dev/errors/"+e;if(1L||(e.current=z[L],z[L]=null,L--)}function B(e,t){L++,z[L]=e.current,e.current=t}var W,H,K=F(null),q=F(null),V=F(null),$=F(null);function Y(e,t){switch(B(V,t),B(q,e),B(K,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?yd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=gd(t=yd(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}U(K),B(K,e)}function G(){U(K),U(q),U(V)}function Q(e){null!==e.memoizedState&&B($,e);var t=K.current,n=gd(t,e.type);t!==n&&(B(q,e),B(K,n))}function X(e){q.current===e&&(U(K),U(q)),$.current===e&&(U($),df._currentValue=R)}function J(e){if(void 0===W)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);W=t&&t[1]||"",H=-1)":-1--a||s[r]!==c[a]){var u="\n"+s[r].replace(" at new "," at ");return e.displayName&&u.includes("")&&(u=u.replace("",e.displayName)),u}}while(1<=r&&0<=a);break}}}finally{Z=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?J(n):""}function te(e,t){switch(e.tag){case 26:case 27:case 5:return J(e.type);case 16:return J("Lazy");case 13:return e.child!==t&&null!==t?J("Suspense Fallback"):J("Suspense");case 19:return J("SuspenseList");case 0:case 15:return ee(e.type,!1);case 11:return ee(e.type.render,!1);case 1:return ee(e.type,!0);case 31:return J("Activity");default:return""}}function ne(e){try{var t="",n=null;do{t+=te(e,n),n=e,e=e.return}while(e);return t}catch(r){return"\nError generating stack: "+r.message+"\n"+r.stack}}var re=Object.prototype.hasOwnProperty,ae=r.unstable_scheduleCallback,ie=r.unstable_cancelCallback,oe=r.unstable_shouldYield,le=r.unstable_requestPaint,se=r.unstable_now,ce=r.unstable_getCurrentPriorityLevel,ue=r.unstable_ImmediatePriority,de=r.unstable_UserBlockingPriority,fe=r.unstable_NormalPriority,pe=r.unstable_LowPriority,he=r.unstable_IdlePriority,me=r.log,ve=r.unstable_setDisableYieldValue,ye=null,ge=null;function be(e){if("function"===typeof me&&ve(e),ge&&"function"===typeof ge.setStrictMode)try{ge.setStrictMode(ye,e)}catch(t){}}var xe=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(we(e)/je|0)|0},we=Math.log,je=Math.LN2;var Se=256,ke=262144,Oe=4194304;function Ee(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return 261888&e;case 262144:case 524288:case 1048576:case 2097152:return 3932160&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function _e(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,i=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var l=134217727&r;return 0!==l?0!==(r=l&~i)?a=Ee(r):0!==(o&=l)?a=Ee(o):n||0!==(n=l&~e)&&(a=Ee(n)):0!==(l=r&~i)?a=Ee(l):0!==o?a=Ee(o):n||0!==(n=r&~e)&&(a=Ee(n)),0===a?0:0!==t&&t!==a&&0===(t&i)&&((i=a&-a)>=(n=t&-t)||32===i&&0!==(4194048&n))?t:a}function Ne(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Pe(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function Ce(){var e=Oe;return 0===(62914560&(Oe<<=1))&&(Oe=4194304),e}function Ae(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Te(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Me(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-xe(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|261930&n}function De(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-xe(n),a=1<=En),Pn=String.fromCharCode(32),Cn=!1;function An(e,t){switch(e){case"keyup":return-1!==kn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Tn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Mn=!1;var Dn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function In(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Dn[e.type]:"textarea"===t}function Rn(e,t,n,r){It?Rt?Rt.push(r):Rt=[r]:It=r,0<(t=rd(t,"onChange")).length&&(n=new nn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var zn=null,Ln=null;function Fn(e){Gu(e,0)}function Un(e){if(ht(Je(e)))return e}function Bn(e,t){if("change"===e)return t}var Wn=!1;if(Bt){var Hn;if(Bt){var Kn="oninput"in document;if(!Kn){var qn=document.createElement("div");qn.setAttribute("oninput","return;"),Kn="function"===typeof qn.oninput}Hn=Kn}else Hn=!1;Wn=Hn&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=er(r)}}function nr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?nr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function rr(e){for(var t=mt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=mt((e=t.contentWindow).document)}return t}function ar(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var ir=Bt&&"documentMode"in document&&11>=document.documentMode,or=null,lr=null,sr=null,cr=!1;function ur(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;cr||null==or||or!==mt(r)||("selectionStart"in(r=or)&&ar(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},sr&&Zn(sr,r)||(sr=r,0<(r=rd(lr,"onSelect")).length&&(t=new nn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=or)))}function dr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var fr={animationend:dr("Animation","AnimationEnd"),animationiteration:dr("Animation","AnimationIteration"),animationstart:dr("Animation","AnimationStart"),transitionrun:dr("Transition","TransitionRun"),transitionstart:dr("Transition","TransitionStart"),transitioncancel:dr("Transition","TransitionCancel"),transitionend:dr("Transition","TransitionEnd")},pr={},hr={};function mr(e){if(pr[e])return pr[e];if(!fr[e])return e;var t,n=fr[e];for(t in n)if(n.hasOwnProperty(t)&&t in hr)return pr[e]=n[t];return e}Bt&&(hr=document.createElement("div").style,"AnimationEvent"in window||(delete fr.animationend.animation,delete fr.animationiteration.animation,delete fr.animationstart.animation),"TransitionEvent"in window||delete fr.transitionend.transition);var vr=mr("animationend"),yr=mr("animationiteration"),gr=mr("animationstart"),br=mr("transitionrun"),xr=mr("transitionstart"),wr=mr("transitioncancel"),jr=mr("transitionend"),Sr=new Map,kr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Or(e,t){Sr.set(e,t),rt(t,[e])}kr.push("scrollEnd");var Er="function"===typeof reportError?reportError:function(e){if("object"===typeof window&&"function"===typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"===typeof e&&null!==e&&"string"===typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"===typeof process&&"function"===typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)},_r=[],Nr=0,Pr=0;function Cr(){for(var e=Nr,t=Pr=Nr=0;t>=o,a-=o,na=1<<32-xe(t)+a|n<m?(v=d,d=null):v=d.sibling;var y=p(a,d,l[m],s);if(null===y){null===d&&(d=v);break}e&&d&&null===y.alternate&&t(a,d),o=i(y,o,m),null===u?c=y:u.sibling=y,u=y,d=v}if(m===l.length)return n(a,d),da&&aa(a,m),c;if(null===d){for(;mv?(y=m,m=null):y=m.sibling;var b=p(a,m,g.value,c);if(null===b){null===m&&(m=y);break}e&&m&&null===b.alternate&&t(a,m),l=i(b,l,v),null===d?u=b:d.sibling=b,d=b,m=y}if(g.done)return n(a,m),da&&aa(a,v),u;if(null===m){for(;!g.done;v++,g=s.next())null!==(g=f(a,g.value,c))&&(l=i(g,l,v),null===d?u=g:d.sibling=g,d=g);return da&&aa(a,v),u}for(m=r(m);!g.done;v++,g=s.next())null!==(g=h(m,a,v,g.value,c))&&(e&&null!==g.alternate&&m.delete(null===g.key?v:g.key),l=i(g,l,v),null===d?u=g:d.sibling=g,d=g);return e&&m.forEach(function(e){return t(a,e)}),da&&aa(a,v),u}(s,c,u=b.call(u),d)}if("function"===typeof u.then)return g(s,c,ci(u),d);if(u.$$typeof===w)return g(s,c,Ma(s,u),d);di(s,u)}return"string"===typeof u&&""!==u||"number"===typeof u||"bigint"===typeof u?(u=""+u,null!==c&&6===c.tag?(n(s,c.sibling),(d=a(c,u)).return=s,s=d):(n(s,c),(d=Kr(u,s.mode,d)).return=s,s=d),l(s)):n(s,c)}return function(e,t,n,r){try{si=0;var a=g(e,t,n,r);return li=null,a}catch(o){if(o===Xa||o===Za)throw o;var i=Lr(29,o,null,e.mode);return i.lanes=r,i.return=e,i}}}var pi=fi(!0),hi=fi(!1),mi=!1;function vi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function yi(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function gi(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function bi(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&pc)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,t=Ir(e),Dr(e,null,n),t}return Ar(e,r,t,n),Ir(e)}function xi(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194048&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,De(e,n)}}function wi(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,i=null;if(null!==(n=n.firstBaseUpdate)){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};null===i?a=i=o:i=i.next=o,n=n.next}while(null!==n);null===i?a=i=t:i=i.next=t}else a=i=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:i,shared:r.shared,callbacks:r.callbacks},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var ji=!1;function Si(){if(ji){if(null!==Ka)throw Ka}}function ki(e,t,n,r){ji=!1;var a=e.updateQueue;mi=!1;var i=a.firstBaseUpdate,o=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var s=l,c=s.next;s.next=null,null===o?i=c:o.next=c,o=s;var u=e.alternate;null!==u&&((l=(u=u.updateQueue).lastBaseUpdate)!==o&&(null===l?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=s))}if(null!==i){var d=a.baseState;for(o=0,u=c=s=null,l=i;;){var f=-536870913&l.lane,h=f!==l.lane;if(h?(vc&f)===f:(r&f)===f){0!==f&&f===Ha&&(ji=!0),null!==u&&(u=u.next={lane:0,tag:l.tag,payload:l.payload,callback:null,next:null});e:{var m=e,v=l;f=t;var y=n;switch(v.tag){case 1:if("function"===typeof(m=v.payload)){d=m.call(y,d,f);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null===(f="function"===typeof(m=v.payload)?m.call(y,d,f):m)||void 0===f)break e;d=p({},d,f);break e;case 2:mi=!0}}null!==(f=l.callback)&&(e.flags|=64,h&&(e.flags|=8192),null===(h=a.callbacks)?a.callbacks=[f]:h.push(f))}else h={lane:f,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===u?(c=u=h,s=d):u=u.next=h,o|=f;if(null===(l=l.next)){if(null===(l=a.shared.pending))break;l=(h=l).next,h.next=null,a.lastBaseUpdate=h,a.shared.pending=null}}null===u&&(s=d),a.baseState=s,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null===i&&(a.shared.lanes=0),kc|=o,e.lanes=o,e.memoizedState=d}}function Oi(e,t){if("function"!==typeof e)throw Error(o(191,e));e.call(t)}function Ei(e,t){var n=e.callbacks;if(null!==n)for(e.callbacks=null,e=0;ei?i:8;var o=D.T,l={};D.T=l,dl(e,!1,t,n);try{var s=a(),c=D.S;if(null!==c&&c(l,s),null!==s&&"object"===typeof s&&"function"===typeof s.then)ul(e,t,function(e,t){var n=[],r={status:"pending",value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status="fulfilled",r.value=t;for(var e=0;e<\/script>",i=i.removeChild(i.firstChild);break;case"select":i="string"===typeof r.is?l.createElement("select",{is:r.is}):l.createElement("select"),r.multiple?i.multiple=!0:r.size&&(i.size=r.size);break;default:i="string"===typeof r.is?l.createElement(a,{is:r.is}):l.createElement(a)}}i[Be]=t,i[We]=r;e:for(l=t.child;null!==l;){if(5===l.tag||6===l.tag)i.appendChild(l.stateNode);else if(4!==l.tag&&27!==l.tag&&null!==l.child){l.child.return=l,l=l.child;continue}if(l===t)break e;for(;null===l.sibling;){if(null===l.return||l.return===t)break e;l=l.return}l.sibling.return=l.return,l=l.sibling}t.stateNode=i;e:switch(fd(i,a,r),a){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}r&&ls(t)}}return fs(t),ss(t,t.type,null===e||e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&null!=t.stateNode)e.memoizedProps!==r&&ls(t);else{if("string"!==typeof r&&null===t.stateNode)throw Error(o(166));if(e=V.current,ga(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,null!==(a=ca))switch(a.tag){case 27:case 5:r=a.memoizedProps}e[Be]=t,(e=!!(e.nodeValue===n||null!==r&&!0===r.suppressHydrationWarning||cd(e.nodeValue,n)))||ma(t,!0)}else(e=vd(e).createTextNode(r))[Be]=t,t.stateNode=e}return fs(t),null;case 31:if(n=t.memoizedState,null===e||null!==e.memoizedState){if(r=ga(t),null!==n){if(null===e){if(!r)throw Error(o(318));if(!(e=null!==(e=t.memoizedState)?e.dehydrated:null))throw Error(o(557));e[Be]=t}else ba(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;fs(t),e=!1}else n=xa(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return 256&t.flags?(Li(t),t):(Li(t),null);if(0!==(128&t.flags))throw Error(o(558))}return fs(t),null;case 13:if(r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(a=ga(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(o(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(o(317));a[Be]=t}else ba(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;fs(t),a=!1}else a=xa(),null!==e&&null!==e.memoizedState&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return 256&t.flags?(Li(t),t):(Li(t),null)}return Li(t),0!==(128&t.flags)?(t.lanes=n,t):(n=null!==r,e=null!==e&&null!==e.memoizedState,n&&(a=null,null!==(r=t.child).alternate&&null!==r.alternate.memoizedState&&null!==r.alternate.memoizedState.cachePool&&(a=r.alternate.memoizedState.cachePool.pool),i=null,null!==r.memoizedState&&null!==r.memoizedState.cachePool&&(i=r.memoizedState.cachePool.pool),i!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),us(t,t.updateQueue),fs(t),null);case 4:return G(),null===e&&Zu(t.stateNode.containerInfo),fs(t),null;case 10:return Ea(t.type),fs(t),null;case 19:if(U(Fi),null===(r=t.memoizedState))return fs(t),null;if(a=0!==(128&t.flags),null===(i=r.rendering))if(a)ds(r,!1);else{if(0!==Sc||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(i=Ui(e))){for(t.flags|=128,ds(r,!1),e=i.updateQueue,t.updateQueue=e,us(t,e),t.subtreeFlags=0,e=n,n=t.child;null!==n;)Br(n,e),n=n.sibling;return B(Fi,1&Fi.current|2),da&&aa(t,r.treeForkCount),t.child}e=e.sibling}null!==r.tail&&se()>Dc&&(t.flags|=128,a=!0,ds(r,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=Ui(i))){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,us(t,e),ds(r,!0),null===r.tail&&"hidden"===r.tailMode&&!i.alternate&&!da)return fs(t),null}else 2*se()-r.renderingStartTime>Dc&&536870912!==n&&(t.flags|=128,a=!0,ds(r,!1),t.lanes=4194304);r.isBackwards?(i.sibling=t.child,t.child=i):(null!==(e=r.last)?e.sibling=i:t.child=i,r.last=i)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=se(),e.sibling=null,n=Fi.current,B(Fi,a?1&n|2:1&n),da&&aa(t,r.treeForkCount),e):(fs(t),null);case 22:case 23:return Li(t),Ai(),r=null!==t.memoizedState,null!==e?null!==e.memoizedState!==r&&(t.flags|=8192):r&&(t.flags|=8192),r?0!==(536870912&n)&&0===(128&t.flags)&&(fs(t),6&t.subtreeFlags&&(t.flags|=8192)):fs(t),null!==(n=t.updateQueue)&&us(t,n.retryQueue),n=null,null!==e&&null!==e.memoizedState&&null!==e.memoizedState.cachePool&&(n=e.memoizedState.cachePool.pool),r=null,null!==t.memoizedState&&null!==t.memoizedState.cachePool&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),null!==e&&U($a),null;case 24:return n=null,null!==e&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Ea(La),fs(t),null;case 25:case 30:return null}throw Error(o(156,t.tag))}function hs(e,t){switch(la(t),t.tag){case 1:return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Ea(La),G(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 26:case 27:case 5:return X(t),null;case 31:if(null!==t.memoizedState){if(Li(t),null===t.alternate)throw Error(o(340));ba()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 13:if(Li(t),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));ba()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return U(Fi),null;case 4:return G(),null;case 10:return Ea(t.type),null;case 22:case 23:return Li(t),Ai(),null!==e&&U($a),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 24:return Ea(La),null;default:return null}}function ms(e,t){switch(la(t),t.tag){case 3:Ea(La),G();break;case 26:case 27:case 5:X(t);break;case 4:G();break;case 31:null!==t.memoizedState&&Li(t);break;case 13:Li(t);break;case 19:U(Fi);break;case 10:Ea(t.type);break;case 22:case 23:Li(t),Ai(),null!==e&&U($a);break;case 24:Ea(La)}}function vs(e,t){try{var n=t.updateQueue,r=null!==n?n.lastEffect:null;if(null!==r){var a=r.next;n=a;do{if((n.tag&e)===e){r=void 0;var i=n.create,o=n.inst;r=i(),o.destroy=r}n=n.next}while(n!==a)}}catch(l){Su(t,t.return,l)}}function ys(e,t,n){try{var r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var i=a.next;r=i;do{if((r.tag&e)===e){var o=r.inst,l=o.destroy;if(void 0!==l){o.destroy=void 0,a=t;var s=n,c=l;try{c()}catch(u){Su(a,s,u)}}}r=r.next}while(r!==i)}}catch(u){Su(t,t.return,u)}}function gs(e){var t=e.updateQueue;if(null!==t){var n=e.stateNode;try{Ei(t,n)}catch(r){Su(e,e.return,r)}}}function bs(e,t,n){n.props=Sl(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(r){Su(e,t,r)}}function xs(e,t){try{var n=e.ref;if(null!==n){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;default:r=e.stateNode}"function"===typeof n?e.refCleanup=n(r):n.current=r}}catch(a){Su(e,t,a)}}function ws(e,t){var n=e.ref,r=e.refCleanup;if(null!==n)if("function"===typeof r)try{r()}catch(a){Su(e,t,a)}finally{e.refCleanup=null,null!=(e=e.alternate)&&(e.refCleanup=null)}else if("function"===typeof n)try{n(null)}catch(i){Su(e,t,i)}else n.current=null}function js(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":n.autoFocus&&r.focus();break e;case"img":n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(a){Su(e,e.return,a)}}function Ss(e,t,n){try{var r=e.stateNode;!function(e,t,n,r){switch(t){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var a=null,i=null,l=null,s=null,c=null,u=null,d=null;for(h in n){var f=n[h];if(n.hasOwnProperty(h)&&null!=f)switch(h){case"checked":case"value":break;case"defaultValue":c=f;default:r.hasOwnProperty(h)||ud(e,t,h,null,r,f)}}for(var p in r){var h=r[p];if(f=n[p],r.hasOwnProperty(p)&&(null!=h||null!=f))switch(p){case"type":i=h;break;case"name":a=h;break;case"checked":u=h;break;case"defaultChecked":d=h;break;case"value":l=h;break;case"defaultValue":s=h;break;case"children":case"dangerouslySetInnerHTML":if(null!=h)throw Error(o(137,t));break;default:h!==f&&ud(e,t,p,h,r,f)}}return void gt(e,l,s,c,u,d,i,a);case"select":for(i in h=l=s=p=null,n)if(c=n[i],n.hasOwnProperty(i)&&null!=c)switch(i){case"value":break;case"multiple":h=c;default:r.hasOwnProperty(i)||ud(e,t,i,null,r,c)}for(a in r)if(i=r[a],c=n[a],r.hasOwnProperty(a)&&(null!=i||null!=c))switch(a){case"value":p=i;break;case"defaultValue":s=i;break;case"multiple":l=i;default:i!==c&&ud(e,t,a,i,r,c)}return t=s,n=l,r=h,void(null!=p?wt(e,!!n,p,!1):!!r!==!!n&&(null!=t?wt(e,!!n,t,!0):wt(e,!!n,n?[]:"",!1)));case"textarea":for(s in h=p=null,n)if(a=n[s],n.hasOwnProperty(s)&&null!=a&&!r.hasOwnProperty(s))switch(s){case"value":case"children":break;default:ud(e,t,s,null,r,a)}for(l in r)if(a=r[l],i=n[l],r.hasOwnProperty(l)&&(null!=a||null!=i))switch(l){case"value":p=a;break;case"defaultValue":h=a;break;case"children":break;case"dangerouslySetInnerHTML":if(null!=a)throw Error(o(91));break;default:a!==i&&ud(e,t,l,a,r,i)}return void jt(e,p,h);case"option":for(var m in n)if(p=n[m],n.hasOwnProperty(m)&&null!=p&&!r.hasOwnProperty(m))if("selected"===m)e.selected=!1;else ud(e,t,m,null,r,p);for(c in r)if(p=r[c],h=n[c],r.hasOwnProperty(c)&&p!==h&&(null!=p||null!=h))if("selected"===c)e.selected=p&&"function"!==typeof p&&"symbol"!==typeof p;else ud(e,t,c,p,r,h);return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var v in n)p=n[v],n.hasOwnProperty(v)&&null!=p&&!r.hasOwnProperty(v)&&ud(e,t,v,null,r,p);for(u in r)if(p=r[u],h=n[u],r.hasOwnProperty(u)&&p!==h&&(null!=p||null!=h))switch(u){case"children":case"dangerouslySetInnerHTML":if(null!=p)throw Error(o(137,t));break;default:ud(e,t,u,p,r,h)}return;default:if(Nt(t)){for(var y in n)p=n[y],n.hasOwnProperty(y)&&void 0!==p&&!r.hasOwnProperty(y)&&dd(e,t,y,void 0,r,p);for(d in r)p=r[d],h=n[d],!r.hasOwnProperty(d)||p===h||void 0===p&&void 0===h||dd(e,t,d,p,r,h);return}}for(var g in n)p=n[g],n.hasOwnProperty(g)&&null!=p&&!r.hasOwnProperty(g)&&ud(e,t,g,null,r,p);for(f in r)p=r[f],h=n[f],!r.hasOwnProperty(f)||p===h||null==p&&null==h||ud(e,t,f,p,r,h)}(r,e.type,n,t),r[We]=t}catch(a){Su(e,e.return,a)}}function ks(e){return 5===e.tag||3===e.tag||26===e.tag||27===e.tag&&Ed(e.type)||4===e.tag}function Os(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||ks(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(27===e.tag&&Ed(e.type))continue e;if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function Es(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?(9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).insertBefore(e,t):((t=9===n.nodeType?n.body:"HTML"===n.nodeName?n.ownerDocument.body:n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=Tt));else if(4!==r&&(27===r&&Ed(e.type)&&(n=e.stateNode,t=null),null!==(e=e.child)))for(Es(e,t,n),e=e.sibling;null!==e;)Es(e,t,n),e=e.sibling}function _s(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&(27===r&&Ed(e.type)&&(n=e.stateNode),null!==(e=e.child)))for(_s(e,t,n),e=e.sibling;null!==e;)_s(e,t,n),e=e.sibling}function Ns(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);fd(t,r,n),t[Be]=e,t[We]=n}catch(i){Su(e,e.return,i)}}var Ps=!1,Cs=!1,As=!1,Ts="function"===typeof WeakSet?WeakSet:Set,Ms=null;function Ds(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Ys(e,n),4&r&&vs(5,n);break;case 1:if(Ys(e,n),4&r)if(e=n.stateNode,null===t)try{e.componentDidMount()}catch(o){Su(n,n.return,o)}else{var a=Sl(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(a,t,e.__reactInternalSnapshotBeforeUpdate)}catch(l){Su(n,n.return,l)}}64&r&&gs(n),512&r&&xs(n,n.return);break;case 3:if(Ys(e,n),64&r&&null!==(e=n.updateQueue)){if(t=null,null!==n.child)switch(n.child.tag){case 27:case 5:case 1:t=n.child.stateNode}try{Ei(e,t)}catch(o){Su(n,n.return,o)}}break;case 27:null===t&&4&r&&Ns(n);case 26:case 5:Ys(e,n),null===t&&4&r&&js(n),512&r&&xs(n,n.return);break;case 12:Ys(e,n);break;case 31:Ys(e,n),4&r&&Us(e,n);break;case 13:Ys(e,n),4&r&&Bs(e,n),64&r&&(null!==(e=n.memoizedState)&&(null!==(e=e.dehydrated)&&function(e,t){var n=e.ownerDocument;if("$~"===e.data)e._reactRetry=t;else if("$?"!==e.data||"loading"!==n.readyState)t();else{var r=function(){t(),n.removeEventListener("DOMContentLoaded",r)};n.addEventListener("DOMContentLoaded",r),e._reactRetry=r}}(e,n=_u.bind(null,n))));break;case 22:if(!(r=null!==n.memoizedState||Ps)){t=null!==t&&null!==t.memoizedState||Cs,a=Ps;var i=Cs;Ps=r,(Cs=t)&&!i?Qs(e,n,0!==(8772&n.subtreeFlags)):Ys(e,n),Ps=a,Cs=i}break;case 30:break;default:Ys(e,n)}}function Is(e){var t=e.alternate;null!==t&&(e.alternate=null,Is(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&Ge(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var Rs=null,zs=!1;function Ls(e,t,n){for(n=n.child;null!==n;)Fs(e,t,n),n=n.sibling}function Fs(e,t,n){if(ge&&"function"===typeof ge.onCommitFiberUnmount)try{ge.onCommitFiberUnmount(ye,n)}catch(i){}switch(n.tag){case 26:Cs||ws(n,t),Ls(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&(n=n.stateNode).parentNode.removeChild(n);break;case 27:Cs||ws(n,t);var r=Rs,a=zs;Ed(n.type)&&(Rs=n.stateNode,zs=!1),Ls(e,t,n),Ld(n.stateNode),Rs=r,zs=a;break;case 5:Cs||ws(n,t);case 6:if(r=Rs,a=zs,Rs=null,Ls(e,t,n),zs=a,null!==(Rs=r))if(zs)try{(9===Rs.nodeType?Rs.body:"HTML"===Rs.nodeName?Rs.ownerDocument.body:Rs).removeChild(n.stateNode)}catch(o){Su(n,t,o)}else try{Rs.removeChild(n.stateNode)}catch(o){Su(n,t,o)}break;case 18:null!==Rs&&(zs?(_d(9===(e=Rs).nodeType?e.body:"HTML"===e.nodeName?e.ownerDocument.body:e,n.stateNode),qf(e)):_d(Rs,n.stateNode));break;case 4:r=Rs,a=zs,Rs=n.stateNode.containerInfo,zs=!0,Ls(e,t,n),Rs=r,zs=a;break;case 0:case 11:case 14:case 15:ys(2,n,t),Cs||ys(4,n,t),Ls(e,t,n);break;case 1:Cs||(ws(n,t),"function"===typeof(r=n.stateNode).componentWillUnmount&&bs(n,t,r)),Ls(e,t,n);break;case 21:Ls(e,t,n);break;case 22:Cs=(r=Cs)||null!==n.memoizedState,Ls(e,t,n),Cs=r;break;default:Ls(e,t,n)}}function Us(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&null!==(e=e.memoizedState))){e=e.dehydrated;try{qf(e)}catch(n){Su(t,t.return,n)}}}function Bs(e,t){if(null===t.memoizedState&&(null!==(e=t.alternate)&&(null!==(e=e.memoizedState)&&null!==(e=e.dehydrated))))try{qf(e)}catch(n){Su(t,t.return,n)}}function Ws(e,t){var n=function(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return null===t&&(t=e.stateNode=new Ts),t;case 22:return null===(t=(e=e.stateNode)._retryCache)&&(t=e._retryCache=new Ts),t;default:throw Error(o(435,e.tag))}}(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=Nu.bind(null,e,t);t.then(r,r)}})}function Hs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r title"))),fd(i,r,n),i[Be]=e,et(i),r=i;break e;case"link":var l=nf("link","href",a).get(r+(n.href||""));if(l)for(var s=0;sl)break;var u=s.transferSize,d=s.initiatorType;u&&pd(d)&&(o+=u*((s=s.responseEnd)of?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(a)}}:null}(d,h)))return Uc=i,e.cancelPendingCommit=h(mu.bind(null,e,t,i,n,r,a,o,l,s,u,d,null,f,p)),void Jc(e,i,o,!c)}mu(e,t,i,n,r,a,o,l,s)}function Xc(e){for(var t=e;;){var n=t.tag;if((0===n||11===n||15===n)&&16384&t.flags&&(null!==(n=t.updateQueue)&&null!==(n=n.stores)))for(var r=0;rv&&(o=v,v=m,m=o);var y=tr(l,m),g=tr(l,v);if(y&&g&&(1!==p.rangeCount||p.anchorNode!==y.node||p.anchorOffset!==y.offset||p.focusNode!==g.node||p.focusOffset!==g.offset)){var b=d.createRange();b.setStart(y.node,y.offset),p.removeAllRanges(),m>v?(p.addRange(b),p.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),p.addRange(b))}}}}for(d=[],p=l;p=p.parentNode;)1===p.nodeType&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for("function"===typeof l.focus&&l.focus(),l=0;ln?32:n,D.T=null,n=Wc,Wc=null;var i=Lc,l=Uc;if(zc=0,Fc=Lc=null,Uc=0,0!==(6&pc))throw Error(o(331));var s=pc;if(pc|=4,sc(i.current),ec(i,i.current,l,n),pc=s,Ru(0,!1),ge&&"function"===typeof ge.onPostCommitFiberRoot)try{ge.onPostCommitFiberRoot(ye,i)}catch(c){}return!0}finally{I.p=a,D.T=r,bu(e,t)}}function ju(e,t,n){t=Yr(n,t),null!==(e=bi(e,t=Pl(e.stateNode,t,2),2))&&(Te(e,2),Iu(e))}function Su(e,t,n){if(3===e.tag)ju(e,e,n);else for(;null!==t;){if(3===t.tag){ju(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Rc||!Rc.has(r))){e=Yr(n,e),null!==(r=bi(t,n=Cl(2),2))&&(Al(n,r,t,e),Te(r,2),Iu(r));break}}t=t.return}}function ku(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fc;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(wc=!0,a.add(n),e=Ou.bind(null,e,t,n),t.then(e,e))}function Ou(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,hc===e&&(vc&n)===n&&(4===Sc||3===Sc&&(62914560&vc)===vc&&300>se()-Tc?0===(2&pc)&&tu(e,0):Ec|=n,Nc===vc&&(Nc=0)),Iu(e)}function Eu(e,t){0===t&&(t=Ce()),null!==(e=Mr(e,t))&&(Te(e,t),Iu(e))}function _u(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Eu(e,n)}function Nu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(o(314))}null!==r&&r.delete(t),Eu(e,n)}var Pu=null,Cu=null,Au=!1,Tu=!1,Mu=!1,Du=0;function Iu(e){e!==Cu&&null===e.next&&(null===Cu?Pu=Cu=e:Cu=Cu.next=e),Tu=!0,Au||(Au=!0,kd(function(){0!==(6&pc)?ae(ue,zu):Lu()}))}function Ru(e,t){if(!Mu&&Tu){Mu=!0;do{for(var n=!1,r=Pu;null!==r;){if(!t)if(0!==e){var a=r.pendingLanes;if(0===a)var i=0;else{var o=r.suspendedLanes,l=r.pingedLanes;i=(1<<31-xe(42|e)+1)-1,i=201326741&(i&=a&~(o&~l))?201326741&i|1:i?2|i:0}0!==i&&(n=!0,Bu(r,i))}else i=vc,0===(3&(i=_e(r,r===hc?i:0,null!==r.cancelPendingCommit||-1!==r.timeoutHandle)))||Ne(r,i)||(n=!0,Bu(r,i));r=r.next}}while(n);Mu=!1}}function zu(){Lu()}function Lu(){Tu=Au=!1;var e=0;0!==Du&&function(){var e=window.event;if(e&&"popstate"===e.type)return e!==xd&&(xd=e,!0);return xd=null,!1}()&&(e=Du);for(var t=se(),n=null,r=Pu;null!==r;){var a=r.next,i=Fu(r,t);0===i?(r.next=null,null===n?Pu=a:n.next=a,null===a&&(Cu=n)):(n=r,(0!==e||0!==(3&i))&&(Tu=!0)),r=a}0!==zc&&5!==zc||Ru(e,!1),0!==Du&&(Du=0)}function Fu(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,i=-62914561&e.pendingLanes;0 title"):null)}function af(e){return"stylesheet"!==e.type||0!==(3&e.state.loading)}var of=0;function lf(){if(this.count--,0===this.count&&(0===this.imgCount||!this.waitingForImages))if(this.stylesheets)cf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}var sf=null;function cf(e,t){e.stylesheets=null,null!==e.unsuspend&&(e.count++,sf=new Map,t.forEach(uf,e),sf=null,lf.call(e))}function uf(e,t){if(!(4&t.state.loading)){var n=sf.get(e);if(n)var r=n.get(null);else{n=new Map,sf.set(e,n);for(var a=e.querySelectorAll("link[data-precedence],style[data-precedence]"),i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(2777),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;t.isKey=function(e,t){return!Array.isArray(e)&&(!("number"!==typeof e&&"boolean"!==typeof e&&null!=e&&!r.isSymbol(e))||("string"===typeof e&&(i.test(e)||!a.test(e))||null!=t&&Object.hasOwn(t,e)))}},7231:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(3799),a=n(4879);t.range=function(e,t,n){n&&"number"!==typeof n&&r.isIterateeCall(e,t,n)&&(t=n=void 0),e=a.toFinite(e),void 0===t?(t=e,e=0):t=a.toFinite(t),n=void 0===n?e{"use strict";n(8365)},7260:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isUnsafeProperty=function(e){return"__proto__"===e}},7312:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.flatten=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;const n=[],r=Math.floor(t),a=(e,t)=>{for(let i=0;i{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(9323);t.property=function(e){return function(t){return r.get(t,e)}}},7599:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.argumentsTag="[object Arguments]",t.arrayBufferTag="[object ArrayBuffer]",t.arrayTag="[object Array]",t.bigInt64ArrayTag="[object BigInt64Array]",t.bigUint64ArrayTag="[object BigUint64Array]",t.booleanTag="[object Boolean]",t.dataViewTag="[object DataView]",t.dateTag="[object Date]",t.errorTag="[object Error]",t.float32ArrayTag="[object Float32Array]",t.float64ArrayTag="[object Float64Array]",t.functionTag="[object Function]",t.int16ArrayTag="[object Int16Array]",t.int32ArrayTag="[object Int32Array]",t.int8ArrayTag="[object Int8Array]",t.mapTag="[object Map]",t.numberTag="[object Number]",t.objectTag="[object Object]",t.regexpTag="[object RegExp]",t.setTag="[object Set]",t.stringTag="[object String]",t.symbolTag="[object Symbol]",t.uint16ArrayTag="[object Uint16Array]",t.uint32ArrayTag="[object Uint32Array]",t.uint8ArrayTag="[object Uint8Array]",t.uint8ClampedArrayTag="[object Uint8ClampedArray]"},7736:(e,t,n)=>{var r=n(3738).default,a=n(9045);e.exports=function(e){var t=a(e,"string");return"symbol"==r(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},7770:(e,t,n)=>{e.exports=n(9323).get},7820:(e,t,n)=>{e.exports=n(5414).throttle},7950:(e,t,n)=>{"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(6672)},8210:function(e,t,n){var r;!function(){"use strict";var a,i=1e9,o={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},l=!0,s="[DecimalError] ",c=s+"Invalid argument: ",u=s+"Exponent out of range: ",d=Math.floor,f=Math.pow,p=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,h=1e7,m=9007199254740991,v=d(1286742750677284.5),y={};function g(e,t){var n,r,a,i,o,s,c,u,d=e.constructor,f=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),l?N(t,f):t;if(c=e.d,u=t.d,o=e.e,a=t.e,c=c.slice(),i=o-a){for(i<0?(r=c,i=-i,s=u.length):(r=u,a=o,s=c.length),i>(s=(o=Math.ceil(f/7))>s?o+1:s+1)&&(i=s,r.length=1),r.reverse();i--;)r.push(0);r.reverse()}for((s=c.length)-(i=u.length)<0&&(i=s,r=u,u=c,c=r),n=0;i;)n=(c[--i]=c[i]+u[i]+n)/h|0,c[i]%=h;for(n&&(c.unshift(n),++a),s=c.length;0==c[--s];)c.pop();return t.d=c,t.e=a,l?N(t,f):t}function b(e,t,n){if(e!==~~e||en)throw Error(c+e)}function x(e){var t,n,r,a=e.length-1,i="",o=e[0];if(a>0){for(i+=o,t=1;te.e^i.s<0?1:-1;for(t=0,n=(r=i.d.length)<(a=e.d.length)?r:a;te.d[t]^i.s<0?1:-1;return r===a?0:r>a^i.s<0?1:-1},y.decimalPlaces=y.dp=function(){var e=this,t=e.d.length-1,n=7*(t-e.e);if(t=e.d[t])for(;t%10==0;t/=10)n--;return n<0?0:n},y.dividedBy=y.div=function(e){return w(this,new this.constructor(e))},y.dividedToIntegerBy=y.idiv=function(e){var t=this.constructor;return N(w(this,new t(e),0,1),t.precision)},y.equals=y.eq=function(e){return!this.cmp(e)},y.exponent=function(){return S(this)},y.greaterThan=y.gt=function(e){return this.cmp(e)>0},y.greaterThanOrEqualTo=y.gte=function(e){return this.cmp(e)>=0},y.isInteger=y.isint=function(){return this.e>this.d.length-2},y.isNegative=y.isneg=function(){return this.s<0},y.isPositive=y.ispos=function(){return this.s>0},y.isZero=function(){return 0===this.s},y.lessThan=y.lt=function(e){return this.cmp(e)<0},y.lessThanOrEqualTo=y.lte=function(e){return this.cmp(e)<1},y.logarithm=y.log=function(e){var t,n=this,r=n.constructor,i=r.precision,o=i+5;if(void 0===e)e=new r(10);else if((e=new r(e)).s<1||e.eq(a))throw Error(s+"NaN");if(n.s<1)throw Error(s+(n.s?"NaN":"-Infinity"));return n.eq(a)?new r(0):(l=!1,t=w(E(n,o),E(e,o),o),l=!0,N(t,i))},y.minus=y.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?P(t,e):g(t,(e.s=-e.s,e))},y.modulo=y.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(!(e=new r(e)).s)throw Error(s+"NaN");return n.s?(l=!1,t=w(n,e,0,1).times(e),l=!0,n.minus(t)):N(new r(n),a)},y.naturalExponential=y.exp=function(){return j(this)},y.naturalLogarithm=y.ln=function(){return E(this)},y.negated=y.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},y.plus=y.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?g(t,e):P(t,(e.s=-e.s,e))},y.precision=y.sd=function(e){var t,n,r,a=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(c+e);if(t=S(a)+1,n=7*(r=a.d.length-1)+1,r=a.d[r]){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},y.squareRoot=y.sqrt=function(){var e,t,n,r,a,i,o,c=this,u=c.constructor;if(c.s<1){if(!c.s)return new u(0);throw Error(s+"NaN")}for(e=S(c),l=!1,0==(a=Math.sqrt(+c))||a==1/0?(((t=x(c.d)).length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=d((e+1)/2)-(e<0||e%2),r=new u(t=a==1/0?"5e"+e:(t=a.toExponential()).slice(0,t.indexOf("e")+1)+e)):r=new u(a.toString()),a=o=(n=u.precision)+3;;)if(r=(i=r).plus(w(c,i,o+2)).times(.5),x(i.d).slice(0,o)===(t=x(r.d)).slice(0,o)){if(t=t.slice(o-3,o+1),a==o&&"4999"==t){if(N(i,n+1,0),i.times(i).eq(c)){r=i;break}}else if("9999"!=t)break;o+=4}return l=!0,N(r,n)},y.times=y.mul=function(e){var t,n,r,a,i,o,s,c,u,d=this,f=d.constructor,p=d.d,m=(e=new f(e)).d;if(!d.s||!e.s)return new f(0);for(e.s*=d.s,n=d.e+e.e,(c=p.length)<(u=m.length)&&(i=p,p=m,m=i,o=c,c=u,u=o),i=[],r=o=c+u;r--;)i.push(0);for(r=u;--r>=0;){for(t=0,a=c+r;a>r;)s=i[a]+m[r]*p[a-r-1]+t,i[a--]=s%h|0,t=s/h|0;i[a]=(i[a]+t)%h|0}for(;!i[--o];)i.pop();return t?++n:i.shift(),e.d=i,e.e=n,l?N(e,f.precision):e},y.toDecimalPlaces=y.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),void 0===e?n:(b(e,0,i),void 0===t?t=r.rounding:b(t,0,8),N(n,e+S(n)+1,t))},y.toExponential=function(e,t){var n,r=this,a=r.constructor;return void 0===e?n=C(r,!0):(b(e,0,i),void 0===t?t=a.rounding:b(t,0,8),n=C(r=N(new a(r),e+1,t),!0,e+1)),n},y.toFixed=function(e,t){var n,r,a=this,o=a.constructor;return void 0===e?C(a):(b(e,0,i),void 0===t?t=o.rounding:b(t,0,8),n=C((r=N(new o(a),e+S(a)+1,t)).abs(),!1,e+S(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)},y.toInteger=y.toint=function(){var e=this,t=e.constructor;return N(new t(e),S(e)+1,t.rounding)},y.toNumber=function(){return+this},y.toPower=y.pow=function(e){var t,n,r,i,o,c,u=this,f=u.constructor,p=+(e=new f(e));if(!e.s)return new f(a);if(!(u=new f(u)).s){if(e.s<1)throw Error(s+"Infinity");return u}if(u.eq(a))return u;if(r=f.precision,e.eq(a))return N(u,r);if(c=(t=e.e)>=(n=e.d.length-1),o=u.s,c){if((n=p<0?-p:p)<=m){for(i=new f(a),t=Math.ceil(r/7+4),l=!1;n%2&&A((i=i.times(u)).d,t),0!==(n=d(n/2));)A((u=u.times(u)).d,t);return l=!0,e.s<0?new f(a).div(i):N(i,r)}}else if(o<0)throw Error(s+"NaN");return o=o<0&&1&e.d[Math.max(t,n)]?-1:1,u.s=1,l=!1,i=e.times(E(u,r+12)),l=!0,(i=j(i)).s=o,i},y.toPrecision=function(e,t){var n,r,a=this,o=a.constructor;return void 0===e?r=C(a,(n=S(a))<=o.toExpNeg||n>=o.toExpPos):(b(e,1,i),void 0===t?t=o.rounding:b(t,0,8),r=C(a=N(new o(a),e,t),e<=(n=S(a))||n<=o.toExpNeg,e)),r},y.toSignificantDigits=y.tosd=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(b(e,1,i),void 0===t?t=n.rounding:b(t,0,8)),N(new n(this),e,t)},y.toString=y.valueOf=y.val=y.toJSON=function(){var e=this,t=S(e),n=e.constructor;return C(e,t<=n.toExpNeg||t>=n.toExpPos)};var w=function(){function e(e,t){var n,r=0,a=e.length;for(e=e.slice();a--;)n=e[a]*t+r,e[a]=n%h|0,r=n/h|0;return r&&e.unshift(r),e}function t(e,t,n,r){var a,i;if(n!=r)i=n>r?1:-1;else for(a=i=0;at[a]?1:-1;break}return i}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=e[n]1;)e.shift()}return function(r,a,i,o){var l,c,u,d,f,p,m,v,y,g,b,x,w,j,k,O,E,_,P=r.constructor,C=r.s==a.s?1:-1,A=r.d,T=a.d;if(!r.s)return new P(r);if(!a.s)throw Error(s+"Division by zero");for(c=r.e-a.e,E=T.length,k=A.length,v=(m=new P(C)).d=[],u=0;T[u]==(A[u]||0);)++u;if(T[u]>(A[u]||0)&&--c,(x=null==i?i=P.precision:o?i+(S(r)-S(a))+1:i)<0)return new P(0);if(x=x/7+2|0,u=0,1==E)for(d=0,T=T[0],x++;(u1&&(T=e(T,d),A=e(A,d),E=T.length,k=A.length),j=E,g=(y=A.slice(0,E)).length;g=h/2&&++O;do{d=0,(l=t(T,y,E,g))<0?(b=y[0],E!=g&&(b=b*h+(y[1]||0)),(d=b/O|0)>1?(d>=h&&(d=h-1),1==(l=t(f=e(T,d),y,p=f.length,g=y.length))&&(d--,n(f,E16)throw Error(u+S(e));if(!e.s)return new p(a);for(null==t?(l=!1,s=h):s=t,o=new p(.03125);e.abs().gte(.1);)e=e.times(o),d+=5;for(s+=Math.log(f(2,d))/Math.LN10*2+5|0,n=r=i=new p(a),p.precision=s;;){if(r=N(r.times(e),s),n=n.times(++c),x((o=i.plus(w(r,n,s))).d).slice(0,s)===x(i.d).slice(0,s)){for(;d--;)i=N(i.times(i),s);return p.precision=h,null==t?(l=!0,N(i,h)):i}i=o}}function S(e){for(var t=7*e.e,n=e.d[0];n>=10;n/=10)t++;return t}function k(e,t,n){if(t>e.LN10.sd())throw l=!0,n&&(e.precision=n),Error(s+"LN10 precision limit exceeded");return N(new e(e.LN10),t)}function O(e){for(var t="";e--;)t+="0";return t}function E(e,t){var n,r,i,o,c,u,d,f,p,h=1,m=e,v=m.d,y=m.constructor,g=y.precision;if(m.s<1)throw Error(s+(m.s?"NaN":"-Infinity"));if(m.eq(a))return new y(0);if(null==t?(l=!1,f=g):f=t,m.eq(10))return null==t&&(l=!0),k(y,f);if(f+=10,y.precision=f,r=(n=x(v)).charAt(0),o=S(m),!(Math.abs(o)<15e14))return d=k(y,f+2,g).times(o+""),m=E(new y(r+"."+n.slice(1)),f-10).plus(d),y.precision=g,null==t?(l=!0,N(m,g)):m;for(;r<7&&1!=r||1==r&&n.charAt(1)>3;)r=(n=x((m=m.times(e)).d)).charAt(0),h++;for(o=S(m),r>1?(m=new y("0."+n),o++):m=new y(r+"."+n.slice(1)),u=c=m=w(m.minus(a),m.plus(a),f),p=N(m.times(m),f),i=3;;){if(c=N(c.times(p),f),x((d=u.plus(w(c,new y(i),f))).d).slice(0,f)===x(u.d).slice(0,f))return u=u.times(2),0!==o&&(u=u.plus(k(y,f+2,g).times(o+""))),u=w(u,new y(h),f),y.precision=g,null==t?(l=!0,N(u,g)):u;u=d,i+=2}}function _(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;48===t.charCodeAt(r);)++r;for(a=t.length;48===t.charCodeAt(a-1);)--a;if(t=t.slice(r,a)){if(a-=r,n=n-r-1,e.e=d(n/7),e.d=[],r=(n+1)%7,n<0&&(r+=7),rv||e.e<-v))throw Error(u+n)}else e.s=0,e.e=0,e.d=[0];return e}function N(e,t,n){var r,a,i,o,s,c,p,m,y=e.d;for(o=1,i=y[0];i>=10;i/=10)o++;if((r=t-o)<0)r+=7,a=t,p=y[m=0];else{if((m=Math.ceil((r+1)/7))>=(i=y.length))return e;for(p=i=y[m],o=1;i>=10;i/=10)o++;a=(r%=7)-7+o}if(void 0!==n&&(s=p/(i=f(10,o-a-1))%10|0,c=t<0||void 0!==y[m+1]||p%i,c=n<4?(s||c)&&(0==n||n==(e.s<0?3:2)):s>5||5==s&&(4==n||c||6==n&&(r>0?a>0?p/f(10,o-a):0:y[m-1])%10&1||n==(e.s<0?8:7))),t<1||!y[0])return c?(i=S(e),y.length=1,t=t-i-1,y[0]=f(10,(7-t%7)%7),e.e=d(-t/7)||0):(y.length=1,y[0]=e.e=e.s=0),e;if(0==r?(y.length=m,i=1,m--):(y.length=m+1,i=f(10,7-r),y[m]=a>0?(p/f(10,o-a)%f(10,a)|0)*i:0),c)for(;;){if(0==m){(y[0]+=i)==h&&(y[0]=1,++e.e);break}if(y[m]+=i,y[m]!=h)break;y[m--]=0,i=1}for(r=y.length;0===y[--r];)y.pop();if(l&&(e.e>v||e.e<-v))throw Error(u+S(e));return e}function P(e,t){var n,r,a,i,o,s,c,u,d,f,p=e.constructor,m=p.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new p(e),l?N(t,m):t;if(c=e.d,f=t.d,r=t.e,u=e.e,c=c.slice(),o=u-r){for((d=o<0)?(n=c,o=-o,s=f.length):(n=f,r=u,s=c.length),o>(a=Math.max(Math.ceil(m/7),s)+2)&&(o=a,n.length=1),n.reverse(),a=o;a--;)n.push(0);n.reverse()}else{for((d=(a=c.length)<(s=f.length))&&(s=a),a=0;a0;--a)c[s++]=0;for(a=f.length;a>o;){if(c[--a]0?i=i.charAt(0)+"."+i.slice(1)+O(r):o>1&&(i=i.charAt(0)+"."+i.slice(1)),i=i+(a<0?"e":"e+")+a):a<0?(i="0."+O(-a-1)+i,n&&(r=n-o)>0&&(i+=O(r))):a>=o?(i+=O(a+1-o),n&&(r=n-a-1)>0&&(i=i+"."+O(r))):((r=a+1)0&&(a+1===o&&(i+="."),i+=O(r))),e.s<0?"-"+i:i}function A(e,t){if(e.length>t)return e.length=t,!0}function T(e){if(!e||"object"!==typeof e)throw Error(s+"Object expected");var t,n,r,a=["precision",1,i,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t=a[t+1]&&r<=a[t+2]))throw Error(c+n+": "+r);this[n]=r}if(void 0!==(r=e[n="LN10"])){if(r!=Math.LN10)throw Error(c+n+": "+r);this[n]=new this(r)}return this}o=function e(t){var n,r,a;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i)return t.s=e.s,t.e=e.e,void(t.d=(e=e.d)?e.slice():e);if("number"===typeof e){if(0*e!==0)throw Error(c+e);if(e>0)t.s=1;else{if(!(e<0))return t.s=0,t.e=0,void(t.d=[0]);e=-e,t.s=-1}return e===~~e&&e<1e7?(t.e=0,void(t.d=[e])):_(t,e.toString())}if("string"!==typeof e)throw Error(c+e);if(45===e.charCodeAt(0)?(e=e.slice(1),t.s=-1):t.s=1,!p.test(e))throw Error(c+e);_(t,e)}if(i.prototype=y,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=e,i.config=i.set=T,void 0===t&&(t={}),t)for(a=["precision","rounding","toExpNeg","toExpPos","LN10"],n=0;n{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(2132);t.isMatch=function(e,t){return r.isMatchWith(e,t,()=>{})}},8346:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.toArray=function(e){return Array.isArray(e)?e:Array.from(e)}},8365:(e,t,n)=>{"use strict";var r=n(5043);var a="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},i=r.useSyncExternalStore,o=r.useRef,l=r.useEffect,s=r.useMemo,c=r.useDebugValue},8396:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(5508);t.cloneDeep=function(e){return r.cloneDeepWith(e)}},8420:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isLength=function(e){return Number.isSafeInteger(e)&&e>=0}},8443:(e,t,n)=>{"use strict";e.exports=n(9717)},8499:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n="~";function r(){}function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function i(e,t,r,i,o){if("function"!==typeof r)throw new TypeError("The listener must be a function");var l=new a(r,i||e,o),s=n?n+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],l]:e._events[s].push(l):(e._events[s]=l,e._eventsCount++),e}function o(e,t){0===--e._eventsCount?e._events=new r:delete e._events[t]}function l(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),l.prototype.eventNames=function(){var e,r,a=[];if(0===this._eventsCount)return a;for(r in e=this._events)t.call(e,r)&&a.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},l.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var a=0,i=r.length,o=new Array(i);a{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(8268),a=n(3272),i=n(8396),o=n(9323),l=n(5303);t.matchesProperty=function(e,t){switch(typeof e){case"object":var n;Object.is(null===(n=e)||void 0===n?void 0:n.valueOf(),-0)&&(e="-0");break;case"number":e=a.toKey(e)}return t=i.cloneDeep(t),function(n){const a=o.get(n,e);return void 0===a?l.has(n,e):void 0===t?void 0===a:r.isMatch(a,t)}}},8853:(e,t,n)=>{"use strict";e.exports=n(5896)},9045:(e,t,n)=>{var r=n(3738).default;e.exports=function(e,t){if("object"!=r(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!=r(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},9323:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(7260),a=n(2489),i=n(3272),o=n(1444);t.get=function e(t,n,l){if(null==t)return l;switch(typeof n){case"string":{if(r.isUnsafeProperty(n))return l;const i=t[n];return void 0===i?a.isDeepKey(n)?e(t,o.toPath(n),l):l:i}case"number":case"symbol":{"number"===typeof n&&(n=i.toKey(n));const e=t[n];return void 0===e?l:e}default:{var s;if(Array.isArray(n))return function(e,t,n){if(0===t.length)return n;let a=e;for(let i=0;i{e.exports=n(2682).isPlainObject},9461:(e,t,n)=>{"use strict";e.exports=n(2330)},9599:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.identity=function(e){return e}},9645:(e,t,n)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const r=n(6392),a=n(8346),i=n(1203);t.last=function(e){if(i.isArrayLike(e))return r.last(a.toArray(e))}},9709:(e,t)=>{"use strict";function n(e){return"symbol"===typeof e?1:null===e?2:void 0===e?3:e!==e?4:0}Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});t.compareValues=(e,t,r)=>{if(e!==t){const a=n(e),i=n(t);if(a===i&&0===a){if(et)return"desc"===r?-1:1}return"desc"===r?i-a:a-i}return 0}},9717:(e,t,n)=>{"use strict";var r=n(5043),a=n(9461);var i="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t},o=a.useSyncExternalStore,l=r.useRef,s=r.useEffect,c=r.useMemo,u=r.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,r,a){var d=l(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!s){if(s=!0,o=e,e=r(e),void 0!==a&&f.hasValue){var t=f.value;if(a(t,e))return l=t}return l=e}if(t=l,i(o,e))return t;var n=r(e);return void 0!==a&&a(t,n)?(o=e,t):(o=e,l=n)}var o,l,s=!1,c=void 0===n?null:n;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,n,r,a]);var p=o(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}},9859:(e,t,n)=>{e.exports=n(7231).range},9921:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.isObjectLike=function(e){return"object"===typeof e&&null!==e}},9972:(e,t)=>{"use strict";Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),t.eq=function(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.m=e,n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var i=Object.create(null);n.r(i);var o={};e=e||[null,t({}),t([]),t(t)];for(var l=2&a&&r;("object"==typeof l||"function"==typeof l)&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>o[e]=()=>r[e]);return o.default=()=>r,n.d(i,o),i}})(),n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce((t,r)=>(n.f[r](e,t),t),[])),n.u=e=>"static/js/"+e+".d456ce70.chunk.js",n.miniCssF=e=>{},n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="client:";n.l=(r,a,i,o)=>{if(e[r])e[r].push(a);else{var l,s;if(void 0!==i)for(var c=document.getElementsByTagName("script"),u=0;u{l.onerror=l.onload=null,clearTimeout(p);var a=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),a&&a.forEach(e=>e(n)),t)return t(n)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=f.bind(null,l.onerror),l.onload=f.bind(null,l.onload),s&&document.head.appendChild(l)}}})(),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",(()=>{var e={792:0};n.f.j=(t,r)=>{var a=n.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else{var i=new Promise((n,r)=>a=e[t]=[n,r]);r.push(a[2]=i);var o=n.p+n.u(t),l=new Error;n.l(o,r=>{if(n.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var i=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+i+": "+o+")",l.name="ChunkLoadError",l.type=i,l.request=o,a[1](l)}},"chunk-"+t,t)}};var t=(t,r)=>{var a,i,[o,l,s]=r,c=0;if(o.some(t=>0!==e[t])){for(a in l)n.o(l,a)&&(n.m[a]=l[a]);if(s)s(n)}for(t&&t(r);c{"use strict";var e={};n.r(e),n.d(e,{hasBrowserEnv:()=>In,hasStandardBrowserEnv:()=>zn,hasStandardBrowserWebWorkerEnv:()=>Ln,navigator:()=>Rn,origin:()=>Fn});var t={};n.r(t),n.d(t,{scaleBand:()=>bu,scaleDiverging:()=>hm,scaleDivergingLog:()=>mm,scaleDivergingPow:()=>ym,scaleDivergingSqrt:()=>gm,scaleDivergingSymlog:()=>vm,scaleIdentity:()=>sf,scaleImplicit:()=>yu,scaleLinear:()=>lf,scaleLog:()=>yf,scaleOrdinal:()=>gu,scalePoint:()=>wu,scalePow:()=>Ef,scaleQuantile:()=>Lf,scaleQuantize:()=>Ff,scaleRadial:()=>Pf,scaleSequential:()=>lm,scaleSequentialLog:()=>sm,scaleSequentialPow:()=>um,scaleSequentialQuantile:()=>fm,scaleSequentialSqrt:()=>dm,scaleSequentialSymlog:()=>cm,scaleSqrt:()=>_f,scaleSymlog:()=>wf,scaleThreshold:()=>Uf,scaleTime:()=>rm,scaleUtc:()=>am,tickFormat:()=>af});var r=n(5043),a=n.t(r,2),i=n(4391);function o(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r0&&void 0!==arguments[0]?arguments[0]:{})}function x(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function w(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function j(e,t){return{usr:e.state,key:e.key,idx:t}}function S(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3?arguments[3]:void 0;return d(d({pathname:"string"===typeof e?e:e.pathname,search:"",hash:""},"string"===typeof t?O(t):t),{},{state:n,key:t&&t.key||r||Math.random().toString(36).substring(2,10)})}function k(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function O(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function E(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{window:a=document.defaultView,v5Compat:i=!1}=r,o=a.history,l="POP",s=null,c=u();function u(){return(o.state||{idx:null}).idx}function f(){l="POP";let e=u(),t=null==e?null:e-c;c=e,s&&s({action:l,location:h.location,delta:t})}function p(e){return _(e)}null==c&&(c=0,o.replaceState(d(d({},o.state),{},{idx:c}),""));let h={get action(){return l},get location(){return e(a,o)},listen(e){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(g,f),s=e,()=>{a.removeEventListener(g,f),s=null}},createHref:e=>t(a,e),createURL:p,encodeLocation(e){let t=p(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){l="PUSH";let r=S(h.location,e,t);n&&n(r,e),c=u()+1;let d=j(r,c),f=h.createHref(r);try{o.pushState(d,"",f)}catch(p){if(p instanceof DOMException&&"DataCloneError"===p.name)throw p;a.location.assign(f)}i&&s&&s({action:l,location:h.location,delta:1})},replace:function(e,t){l="REPLACE";let r=S(h.location,e,t);n&&n(r,e),c=u();let a=j(r,c),d=h.createHref(r);o.replaceState(a,"",d),i&&s&&s({action:l,location:h.location,delta:0})},go:e=>o.go(e)};return h}function _(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="http://localhost";"undefined"!==typeof window&&(n="null"!==window.location.origin?window.location.origin:window.location.href),x(n,"No window.location.(origin|href) available to create URL");let r="string"===typeof e?e:k(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}new WeakMap;function N(e,t){return P(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:"/",!1)}function P(e,t,n,r){let a=K(("string"===typeof t?O(t):t).pathname||"/",n);if(null==a)return null;let i=C(e);!function(e){e.sort((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n]);return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)))}(i);let o=null;for(let l=0;null==o&&l1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",a=arguments.length>4&&void 0!==arguments[4]&&arguments[4],i=function(e,i){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:a,l=arguments.length>3?arguments[3]:void 0,s={relativePath:void 0===l?e.path||"":l,caseSensitive:!0===e.caseSensitive,childrenIndex:i,route:e};if(s.relativePath.startsWith("/")){if(!s.relativePath.startsWith(r)&&o)return;x(s.relativePath.startsWith(r),'Absolute route path "'.concat(s.relativePath,'" nested under path "').concat(r,'" is not valid. An absolute child route path must start with the combined path of all its parent routes.')),s.relativePath=s.relativePath.slice(r.length)}let c=J([r,s.relativePath]),u=n.concat(s);e.children&&e.children.length>0&&(x(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'.concat(c,'".')),C(e.children,t,u,c,o)),(null!=e.path||e.index)&&t.push({path:c,score:F(c,e.index),routesMeta:u})};return e.forEach((e,t)=>{var n;if(""!==e.path&&null!==(n=e.path)&&void 0!==n&&n.includes("?"))for(let r of A(e.path))i(e,t,!0,r);else i(e,t)}),t}function A(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,a=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return a?[i,""]:[i];let o=A(r.join("/")),l=[];return l.push(...o.map(e=>""===e?i:[i,e].join("/"))),a&&l.push(...o),l.map(t=>e.startsWith("/")&&""===t?"/":t)}var T=/^:[\w-]+$/,M=3,D=2,I=1,R=10,z=-2,L=e=>"*"===e;function F(e,t){let n=e.split("/"),r=n.length;return n.some(L)&&(r+=z),t&&(r+=D),n.filter(e=>!L(e)).reduce((e,t)=>e+(T.test(t)?M:""===t?I:R),r)}function U(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],{routesMeta:r}=e,a={},i="/",o=[];for(let l=0;l{let{paramName:r,isOptional:a}=t;if("*"===r){let e=l[n]||"";o=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const s=l[n];return e[r]=a&&!s?void 0:(s||"").replace(/%2F/g,"/"),e},{});return{params:s,pathname:i,pathnameBase:o,pattern:e}}function W(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];w("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'.concat(e,'" will be treated as if it were "').concat(e.replace(/\*$/,"/*"),'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "').concat(e.replace(/\*$/,"/*"),'".'));let r=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(e,t,n)=>(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),r]}function H(e){try{return e.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(t){return w(!1,'The URL path "'.concat(e,'" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (').concat(t,").")),e}}function K(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}var q=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,V=e=>q.test(e);function $(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)}),n.length>1?n.join("/"):"/"}function Y(e,t,n,r){return"Cannot include a '".concat(e,"' character in a manually specified `to.").concat(t,"` field [").concat(JSON.stringify(r),"]. Please separate it out to the `to.").concat(n,'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.')}function G(e){return e.filter((e,t)=>0===t||e.route.path&&e.route.path.length>0)}function Q(e){let t=G(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function X(e,t,n){let r,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];"string"===typeof e?r=O(e):(r=d({},e),x(!r.pathname||!r.pathname.includes("?"),Y("?","pathname","search",r)),x(!r.pathname||!r.pathname.includes("#"),Y("#","pathname","hash",r)),x(!r.search||!r.search.includes("#"),Y("#","search","hash",r)));let i,o=""===e||""===r.pathname,l=o?"/":r.pathname;if(null==l)i=n;else{let e=t.length-1;if(!a&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}i=e>=0?t[e]:"/"}let s=function(e){let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",{pathname:r,search:a="",hash:i=""}="string"===typeof e?O(e):e;if(r)if(V(r))t=r;else{if(r.includes("//")){let e=r;r=r.replace(/\/\/+/g,"/"),w(!1,"Pathnames cannot have embedded double slashes - normalizing ".concat(e," -> ").concat(r))}t=r.startsWith("/")?$(r.substring(1),"/"):$(r,n)}else t=n;return{pathname:t,search:ee(a),hash:te(i)}}(r,i),c=l&&"/"!==l&&l.endsWith("/"),u=(o||"."===l)&&n.endsWith("/");return s.pathname.endsWith("/")||!c&&!u||(s.pathname+="/"),s}var J=e=>e.join("/").replace(/\/\/+/g,"/"),Z=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),ee=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",te=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";function ne(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}function re(e){return e.map(e=>e.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}Symbol("Uninstrumented");Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ae=["POST","PUT","PATCH","DELETE"],ie=(new Set(ae),["GET",...ae]);new Set(ie),Symbol("ResetLoaderData");var oe=r.createContext(null);oe.displayName="DataRouter";var le=r.createContext(null);le.displayName="DataRouterState";var se=r.createContext(!1);var ce=r.createContext({isTransitioning:!1});ce.displayName="ViewTransition";var ue=r.createContext(new Map);ue.displayName="Fetchers";var de=r.createContext(null);de.displayName="Await";var fe=r.createContext(null);fe.displayName="Navigation";var pe=r.createContext(null);pe.displayName="Location";var he=r.createContext({outlet:null,matches:[],isDataRoute:!1});he.displayName="Route";var me=r.createContext(null);me.displayName="RouteError";function ve(){return null!=r.useContext(pe)}function ye(){return x(ve(),"useLocation() may be used only in the context of a component."),r.useContext(pe).location}var ge="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function be(e){r.useContext(fe).static||r.useLayoutEffect(e)}function xe(){let{isDataRoute:e}=r.useContext(he);return e?function(){let{router:e}=Ce("useNavigate"),t=Te("useNavigate"),n=r.useRef(!1);be(()=>{n.current=!0});let a=r.useCallback(async function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w(n.current,ge),n.current&&("number"===typeof r?await e.navigate(r):await e.navigate(r,d({fromRouteId:t},a)))},[e,t]);return a}():function(){x(ve(),"useNavigate() may be used only in the context of a component.");let e=r.useContext(oe),{basename:t,navigator:n}=r.useContext(fe),{matches:a}=r.useContext(he),{pathname:i}=ye(),o=JSON.stringify(Q(a)),l=r.useRef(!1);be(()=>{l.current=!0});let s=r.useCallback(function(r){let a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(w(l.current,ge),!l.current)return;if("number"===typeof r)return void n.go(r);let s=X(r,JSON.parse(o),i,"path"===a.relative);null==e&&"/"!==t&&(s.pathname="/"===s.pathname?t:J([t,s.pathname])),(a.replace?n.replace:n.push)(s,a.state,a)},[t,n,o,i,e]);return s}()}r.createContext(null);function we(){let{matches:e}=r.useContext(he),t=e[e.length-1];return t?t.params:{}}function je(e){let{relative:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{matches:n}=r.useContext(he),{pathname:a}=ye(),i=JSON.stringify(Q(n));return r.useMemo(()=>X(e,JSON.parse(i),a,"path"===t),[e,i,a,t])}function Se(e,t,n,a,i){x(ve(),"useRoutes() may be used only in the context of a component.");let{navigator:o}=r.useContext(fe),{matches:l}=r.useContext(he),s=l[l.length-1],c=s?s.params:{},u=s?s.pathname:"/",f=s?s.pathnameBase:"/",p=s&&s.route;{let e=p&&p.path||"";Ie(u,!p||e.endsWith("*")||e.endsWith("*?"),'You rendered descendant (or called `useRoutes()`) at "'.concat(u,'" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won\'t match anymore and therefore the child routes will never render.\n\nPlease change the parent to .'))}let h,m=ye();if(t){var v;let e="string"===typeof t?O(t):t;x("/"===f||(null===(v=e.pathname)||void 0===v?void 0:v.startsWith(f)),'When overriding the location using `` or `useRoutes(routes, location)`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "'.concat(f,'" but pathname "').concat(e.pathname,'" was given in the `location` prop.')),h=e}else h=m;let y=h.pathname||"/",g=y;if("/"!==f){let e=f.replace(/^\//,"").split("/");g="/"+y.replace(/^\//,"").split("/").slice(e.length).join("/")}let b=N(e,{pathname:g});w(p||null!=b,'No routes matched location "'.concat(h.pathname).concat(h.search).concat(h.hash,'" ')),w(null==b||void 0!==b[b.length-1].route.element||void 0!==b[b.length-1].route.Component||void 0!==b[b.length-1].route.lazy,'Matched leaf route at location "'.concat(h.pathname).concat(h.search).concat(h.hash,'" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.'));let j=Ne(b&&b.map(e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:J([f,o.encodeLocation?o.encodeLocation(e.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?f:J([f,o.encodeLocation?o.encodeLocation(e.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:e.pathnameBase])})),l,n,a,i);return t&&j?r.createElement(pe.Provider,{value:{location:d({pathname:"/",search:"",hash:"",state:null,key:"default"},h),navigationType:"POP"}},j):j}function ke(){let e=Me(),t=ne(e)?"".concat(e.status," ").concat(e.statusText):e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:a},o={padding:"2px 4px",backgroundColor:a},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=r.createElement(r.Fragment,null,r.createElement("p",null,"\ud83d\udcbf Hey developer \ud83d\udc4b"),r.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",r.createElement("code",{style:o},"ErrorBoundary")," or"," ",r.createElement("code",{style:o},"errorElement")," prop on your route.")),r.createElement(r.Fragment,null,r.createElement("h2",null,"Unexpected Application Error!"),r.createElement("h3",{style:{fontStyle:"italic"}},t),n?r.createElement("pre",{style:i},n):null,l)}var Oe=r.createElement(ke,null),Ee=class extends r.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){return void 0!==this.state.error?r.createElement(he.Provider,{value:this.props.routeContext},r.createElement(me.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function _e(e){let{routeContext:t,match:n,children:a}=e,i=r.useContext(oe);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),r.createElement(he.Provider,{value:t},a)}function Ne(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;if(null==e){if(!n)return null;if(n.errors)e=n.matches;else{if(0!==t.length||n.initialized||!(n.matches.length>0))return null;e=n.matches}}let i=e,o=null===n||void 0===n?void 0:n.errors;if(null!=o){let e=i.findIndex(e=>e.route.id&&void 0!==(null===o||void 0===o?void 0:o[e.route.id]));x(e>=0,"Could not find a matching route for errors on route IDs: ".concat(Object.keys(o).join(","))),i=i.slice(0,Math.min(i.length,e+1))}let l=!1,s=-1;if(n)for(let r=0;r=0?i.slice(0,s+1):[i[0]];break}}}let c=n&&a?(e,t)=>{var r,i;a(e,{location:n.location,params:null!==(r=null===(i=n.matches)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.params)&&void 0!==r?r:{},unstable_pattern:re(n.matches),errorInfo:t})}:void 0;return i.reduceRight((e,a,u)=>{let d,f=!1,p=null,h=null;n&&(d=o&&a.route.id?o[a.route.id]:void 0,p=a.route.errorElement||Oe,l&&(s<0&&0===u?(Ie("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),f=!0,h=null):s===u&&(f=!0,h=a.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,u+1)),v=()=>{let t;return t=d?p:f?h:a.route.Component?r.createElement(a.route.Component,null):a.route.element?a.route.element:e,r.createElement(_e,{match:a,routeContext:{outlet:e,matches:m,isDataRoute:null!=n},children:t})};return n&&(a.route.ErrorBoundary||a.route.errorElement||0===u)?r.createElement(Ee,{location:n.location,revalidation:n.revalidation,component:p,error:d,children:v(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:c}):v()},null)}function Pe(e){return"".concat(e," must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.")}function Ce(e){let t=r.useContext(oe);return x(t,Pe(e)),t}function Ae(e){let t=r.useContext(le);return x(t,Pe(e)),t}function Te(e){let t=function(e){let t=r.useContext(he);return x(t,Pe(e)),t}(e),n=t.matches[t.matches.length-1];return x(n.route.id,"".concat(e,' can only be used on routes that contain a unique "id"')),n.route.id}function Me(){var e;let t=r.useContext(me),n=Ae("useRouteError"),a=Te("useRouteError");return void 0!==t?t:null===(e=n.errors)||void 0===e?void 0:e[a]}var De={};function Ie(e,t,n){t||De[e]||(De[e]=!0,w(!1,n))}var Re={};function ze(e,t){e||Re[t]||(Re[t]=!0,console.warn(t))}a.useOptimistic;r.memo(function(e){let{routes:t,future:n,state:r,unstable_onError:a}=e;return Se(t,void 0,r,a,n)});function Le(e){x(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Fe(e){let{basename:t="/",children:n=null,location:a,navigationType:i="POP",navigator:o,static:l=!1,unstable_useTransitions:s}=e;x(!ve(),"You cannot render a inside another . You should never have more than one in your app.");let c=t.replace(/^\/*/,"/"),u=r.useMemo(()=>({basename:c,navigator:o,static:l,unstable_useTransitions:s,future:{}}),[c,o,l,s]);"string"===typeof a&&(a=O(a));let{pathname:d="/",search:f="",hash:p="",state:h=null,key:m="default"}=a,v=r.useMemo(()=>{let e=K(d,c);return null==e?null:{location:{pathname:e,search:f,hash:p,state:h,key:m},navigationType:i}},[c,d,f,p,h,m,i]);return w(null!=v,' is not able to match the URL "').concat(d).concat(f).concat(p,"\" because it does not start with the basename, so the won't render anything.")),null==v?null:r.createElement(fe.Provider,{value:u},r.createElement(pe.Provider,{children:n,value:v}))}function Ue(e){let{children:t,location:n}=e;return Se(Be(t),n)}r.Component;function Be(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[];return r.Children.forEach(e,(e,a)=>{if(!r.isValidElement(e))return;let i=[...t,a];if(e.type===r.Fragment)return void n.push.apply(n,Be(e.props.children,i));x(e.type===Le,"[".concat("string"===typeof e.type?e.type:e.type.name,"] is not a component. All component children of must be a or ")),x(!e.props.index||!e.props.children,"An index route cannot have child routes.");let o={id:e.props.id||i.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:!0===e.props.hasErrorBoundary||null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(o.children=Be(e.props.children,i)),n.push(o)}),n}var We="get",He="application/x-www-form-urlencoded";function Ke(e){return"undefined"!==typeof HTMLElement&&e instanceof HTMLElement}var qe=null;var Ve=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function $e(e){return null==e||Ve.has(e)?e:(w(!1,'"'.concat(e,'" is not a valid `encType` for `
`/`` and will default to "').concat(He,'"')),null)}function Ye(e,t){let n,r,a,i,o;if(function(e){return Ke(e)&&"form"===e.tagName.toLowerCase()}(e)){let o=e.getAttribute("action");r=o?K(o,t):null,n=e.getAttribute("method")||We,a=$e(e.getAttribute("enctype"))||He,i=new FormData(e)}else if(function(e){return Ke(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return Ke(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let o=e.form;if(null==o)throw new Error('Cannot submit a