@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);:root{--obs-sidebar-width:264px;--obs-primary:#6366f1;--obs-primary-rgb:99,102,241;--obs-primary-600:#5457e5;--obs-primary-700:#4338ca;--obs-accent:#8b5cf6;--obs-bg:#f1f3f9;--obs-surface:#fff;--obs-border:#e7e9f2;--obs-muted:#6b7280;--obs-heading:#111827;--obs-radius:14px;--obs-radius-sm:10px;--obs-shadow-sm:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.04);--obs-shadow:0 4px 16px rgba(16,24,40,.08),0 2px 4px rgba(16,24,40,.04);--obs-shadow-lg:0 18px 40px rgba(16,24,40,.12);--bs-primary:var(--obs-primary);--bs-primary-rgb:var(--obs-primary-rgb);--bs-link-color:var(--obs-primary-700);--bs-link-color-rgb:var(--obs-primary-rgb);--bs-link-hover-color:var(--obs-primary-600);--bs-border-color:var(--obs-border);--bs-body-color:#344054;--bs-body-font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--obs-bg);color:var(--bs-body-color);font-family:var(--bs-body-font-family);letter-spacing:-.005em}.card-title,h1,h2,h3,h4,h5,h6{color:var(--obs-heading);font-weight:600;letter-spacing:-.02em}a,a:hover{text-decoration:none}.app-sidebar,.app-wrapper .main-sidebar{width:var(--obs-sidebar-width)}.app-main,.content-wrapper{min-height:100vh}.app-content{padding-bottom:2rem;padding-top:1.25rem}.app-content-header{padding-bottom:.25rem;padding-top:1.5rem}.app-content-header h1{font-size:1.6rem;font-weight:700}.app-header.navbar{backdrop-filter:saturate(180%) blur(12px);background:hsla(0,0%,100%,.8)!important;border-bottom:1px solid var(--obs-border);box-shadow:none;min-height:60px}.app-header .nav-link{border-radius:10px;color:#475467;font-weight:500;transition:background .15s ease,color .15s ease}.app-header .nav-link:hover{background:rgba(var(--obs-primary-rgb),.08);color:var(--obs-primary-700)}.user-avatar{align-items:center;background:linear-gradient(135deg,var(--obs-primary),var(--obs-accent));border-radius:50%;box-shadow:0 4px 12px rgba(var(--obs-primary-rgb),.4);color:#fff;display:inline-flex;font-size:.9rem;font-weight:600;height:34px;justify-content:center;width:34px}.app-sidebar{background:linear-gradient(180deg,#1b1f3b,#15172b)!important;border-right:0;box-shadow:4px 0 24px rgba(16,24,40,.08)}.sidebar-brand{border-bottom:1px solid hsla(0,0%,100%,.06);padding:1.1rem 1.25rem}.sidebar-brand .brand-link{align-items:center;display:flex;gap:.6rem;padding:0}.sidebar-brand .brand-text{background:linear-gradient(90deg,#c7d2fe,#a5b4fc);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:1.15rem;font-weight:700!important;letter-spacing:-.02em;-webkit-text-fill-color:transparent}.sidebar-brand .brand-link:before{background:linear-gradient(135deg,var(--obs-primary),var(--obs-accent));border-radius:9px;box-shadow:0 6px 16px rgba(var(--obs-primary-rgb),.45);content:"";flex:0 0 auto;height:30px;width:30px}.sidebar-menu{gap:2px;padding:.75rem .65rem}.sidebar-menu .nav-item{margin:1px 0}.app-sidebar .sidebar-menu .nav-link{border-radius:10px;color:#aeb4d6;font-size:.925rem;font-weight:500;padding:.6rem .8rem;transition:background .15s ease,color .15s ease,transform .05s ease}.app-sidebar .sidebar-menu .nav-link .nav-icon{color:#7c83ab;transition:color .15s ease;width:1.4rem}.app-sidebar .sidebar-menu .nav-link:hover{background:hsla(0,0%,100%,.06);color:#fff}.app-sidebar .sidebar-menu .nav-link:hover .nav-icon{color:#c7d2fe}.app-sidebar .sidebar-menu .nav-link.active{background:linear-gradient(135deg,var(--obs-primary),var(--obs-primary-700));box-shadow:0 8px 18px rgba(var(--obs-primary-rgb),.35);color:#fff}.app-sidebar .sidebar-menu .nav-link.active .nav-icon{color:#fff}.app-sidebar .sidebar-menu .nav-link>p{align-items:center;display:flex;margin:0;width:100%}.app-sidebar .nav-arrow{color:#7c83ab;font-size:.75rem;margin-left:auto;transition:transform .2s ease}.app-sidebar .nav-group-toggle[aria-expanded=true] .nav-arrow{transform:rotate(90deg)}.app-sidebar .nav-section{margin-top:.35rem}.app-sidebar .admin-submenu{list-style:none;margin:2px 0 0;padding:2px 0 2px .65rem}.app-sidebar .admin-submenu .nav-link{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.app-sidebar .admin-submenu .nav-icon{font-size:.9rem}.collapse-toggle{align-items:center;color:var(--obs-primary-700);cursor:pointer;display:inline-flex;font-weight:500;gap:.4rem;text-decoration:none}.collapse-toggle:hover{color:var(--obs-primary-600)}.collapse-toggle .toggle-arrow{font-size:.8rem;transition:transform .2s ease}.collapse-toggle[aria-expanded=true] .toggle-arrow{transform:rotate(90deg)}.js-task-detail .task-edit{display:none}.js-task-detail.editing .task-edit{display:block}.js-task-detail.editing .task-view{display:none}.file-picker-box{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:.85rem;transition:border-color .15s ease,background .15s ease}.file-picker-box:hover{background:rgba(var(--obs-primary-rgb),.035);border-color:rgba(var(--obs-primary-rgb),.55)}.file-picker-box.is-drag-over{background:rgba(var(--obs-primary-rgb),.08);border-color:var(--obs-primary)}.file-picker-box-sm{padding:.7rem}.file-picker-list{display:grid;gap:.35rem}.file-picker-item{align-items:center;background:#fff;border:1px solid var(--obs-border);border-radius:6px;display:grid;gap:.4rem;grid-template-columns:auto minmax(0,1fr) auto auto;padding:.3rem .45rem}.file-picker-item span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker-more{color:var(--obs-muted);padding:.15rem .45rem}.file-picker-sm{max-width:100%}.file-picker-remove{line-height:1}.two-factor-qr{align-items:center;background:#fff;border:1px solid var(--obs-border);border-radius:8px;display:inline-flex;justify-content:center;padding:.65rem}.card{background:var(--obs-surface);border:1px solid var(--obs-border);border-radius:var(--obs-radius);box-shadow:var(--obs-shadow-sm);overflow:hidden;transition:box-shadow .18s cubic-bezier(.4,0,.2,1)}.card:hover{box-shadow:var(--obs-shadow)}.card+.card{margin-top:1.25rem}.card-header{background:transparent;border-bottom:1px solid var(--obs-border);font-weight:600;padding:1rem 1.25rem}.card-header .card-title{font-size:1rem;margin:0}.card-header.d-flex:after,.card-header.d-flex:before{content:none}.card-body{padding:1.25rem}.card-body.p-0{padding:0!important}.card-footer{background:#fafbfe;border-top:1px solid var(--obs-border);padding:1rem 1.25rem}.small-box{border:0;border-radius:var(--obs-radius);box-shadow:var(--obs-shadow);color:#fff;overflow:hidden;padding:1.25rem 1.35rem;position:relative;transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1)}.small-box:hover{box-shadow:var(--obs-shadow-lg);transform:translateY(-4px)}.small-box .inner{position:relative;z-index:1}.small-box .inner h3{color:#fff;font-size:2.4rem;font-weight:700;letter-spacing:-.03em;line-height:1;margin-bottom:.35rem}.small-box .inner p{color:hsla(0,0%,100%,.85);font-weight:500;margin:0}.small-box .small-box-icon{color:hsla(0,0%,100%,.22);font-size:3.6rem;position:absolute;right:1.1rem;top:50%;transform:translateY(-50%);transform-origin:center;transition:transform .18s cubic-bezier(.4,0,.2,1);z-index:0}.small-box:hover .small-box-icon{transform:translateY(-50%) scale(1.08)}.small-box.text-bg-danger{background:linear-gradient(135deg,#f43f5e,#be123c)!important}.small-box.text-bg-warning{background:linear-gradient(135deg,#f59e0b,#d97706)!important}.small-box.text-bg-info{background:linear-gradient(135deg,#06b6d4,#0e7490)!important}.small-box.text-bg-primary{background:linear-gradient(135deg,var(--obs-primary),var(--obs-primary-700))!important}.small-box.text-bg-success{background:linear-gradient(135deg,#22c55e,#15803d)!important}.app-content .row+.row{margin-top:1.25rem}.stat-tile{align-items:center;background:var(--obs-surface);border:1px solid var(--obs-border);border-radius:var(--obs-radius);box-shadow:var(--obs-shadow-sm);display:flex;gap:.9rem;height:100%;padding:1rem 1.15rem;transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s cubic-bezier(.4,0,.2,1)}.stat-tile:hover{box-shadow:var(--obs-shadow);transform:translateY(-3px)}.stat-tile .stat-icon{align-items:center;border-radius:12px;display:inline-flex;flex:0 0 auto;font-size:1.1rem;height:44px;justify-content:center;width:44px}.stat-tile .stat-value{color:var(--obs-heading);font-size:1.5rem;font-weight:700;letter-spacing:-.02em;line-height:1.1}.stat-tile .stat-sub{color:var(--obs-muted);font-size:.9rem;font-weight:500;margin-left:.2rem}.stat-tile .stat-label{color:var(--obs-muted);font-size:.82rem;font-weight:500}.metric-bars{display:flex;flex-direction:column;gap:.15rem}.metric-row{align-items:center;display:flex;font-size:.85rem;gap:.5rem;margin-top:.55rem}.metric-row:first-child{margin-top:0}.metric-dot{border-radius:50%;flex:0 0 auto;height:.6rem;width:.6rem}.metric-label{color:#475467;font-weight:500}.metric-count{color:var(--obs-heading);font-weight:600;margin-left:auto}.metric-track{background:#eef0f5;border-radius:999px;height:7px;margin-top:.3rem;overflow:hidden}.metric-fill{border-radius:999px;display:block;height:100%;transition:width .4s ease}.table{--bs-table-bg:transparent;color:#475467;margin-bottom:0}.table thead th{background:#f8f9fc;border-bottom:1px solid var(--obs-border);color:#667085;font-size:.72rem;font-weight:600;letter-spacing:.04em;padding:.8rem 1rem;text-transform:uppercase;white-space:nowrap}.table td,.table th{border-color:var(--obs-border);padding:.8rem 1rem;vertical-align:middle}.table tbody tr{transition:background .12s ease}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-accent-bg:#fbfbfe}.table tbody tr:hover>*{background:rgba(var(--obs-primary-rgb),.045)}.table a{color:var(--obs-primary-700);font-weight:500}.table a:hover{color:var(--obs-primary-600)}.btn{--bs-btn-border-radius:10px;border-radius:10px;font-weight:500;transition:transform .05s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease,color .15s ease}.btn:active{transform:translateY(1px)}.btn-primary{--bs-btn-bg:var(--obs-primary);--bs-btn-border-color:var(--obs-primary);--bs-btn-hover-bg:var(--obs-primary-600);--bs-btn-hover-border-color:var(--obs-primary-600);--bs-btn-active-bg:var(--obs-primary-700);--bs-btn-active-border-color:var(--obs-primary-700);--bs-btn-disabled-bg:var(--obs-primary);--bs-btn-disabled-border-color:var(--obs-primary);box-shadow:0 6px 16px rgba(var(--obs-primary-rgb),.3)}.btn-primary:hover{box-shadow:0 8px 20px rgba(var(--obs-primary-rgb),.38)}.btn-outline-primary{--bs-btn-color:var(--obs-primary-700);--bs-btn-border-color:rgba(var(--obs-primary-rgb),.45);--bs-btn-hover-bg:var(--obs-primary);--bs-btn-hover-border-color:var(--obs-primary);--bs-btn-active-bg:var(--obs-primary-700)}.btn-outline-secondary{--bs-btn-color:#475467;--bs-btn-border-color:var(--obs-border);--bs-btn-hover-bg:#f2f4f7;--bs-btn-hover-color:#111827;--bs-btn-hover-border-color:#d0d5dd}.btn-xs{--bs-btn-padding-y:.15rem;--bs-btn-padding-x:.45rem;--bs-btn-font-size:.75rem}.btn-sm,.btn-xs{border-radius:8px}.nav-tabs{border-bottom:1px solid var(--obs-border);gap:.25rem}.nav-tabs .nav-link{border:0;border-bottom:2px solid transparent;border-radius:8px 8px 0 0;color:#667085;font-weight:500;margin-bottom:-1px;padding:.6rem 1rem;transition:color .15s ease,background .15s ease,border-color .15s ease}.nav-tabs .nav-link:hover{background:rgba(var(--obs-primary-rgb),.06);border-bottom-color:transparent;color:var(--obs-primary-700);isolation:isolate}.nav-tabs .nav-link.active{background:transparent;border-bottom-color:var(--obs-primary);color:var(--obs-primary-700)}.tab-content.border{background:var(--obs-surface);border-color:var(--obs-border)!important;border-radius:0 0 var(--obs-radius-sm) var(--obs-radius-sm)}.form-label{color:#344054;font-size:.875rem;font-weight:500;margin-bottom:.35rem}.form-control,.form-select{border-color:var(--obs-border);border-radius:var(--obs-radius-sm);color:#1f2937;padding:.5rem .8rem;transition:border-color .15s ease,box-shadow .15s ease}.form-control:focus,.form-select:focus{border-color:var(--obs-primary);box-shadow:0 0 0 3px rgba(var(--obs-primary-rgb),.18)}.form-control::placeholder{color:#98a2b3}.form-check-input:checked{background-color:var(--obs-primary);border-color:var(--obs-primary)}.form-check-input:focus{border-color:var(--obs-primary);box-shadow:0 0 0 3px rgba(var(--obs-primary-rgb),.18)}.badge{letter-spacing:.01em;padding:.35em .7em}.badge,.badge-soft{border-radius:999px;font-weight:600}.badge-soft{align-items:center;display:inline-flex;font-size:.75rem;gap:.35em;line-height:1;padding:.4em .7em;text-transform:capitalize}.badge-soft:before{background:currentColor;border-radius:50%;content:"";height:.45em;width:.45em}.badge-soft-success{background:#e7f7ee;color:#15803d}.badge-soft-danger{background:#fdecec;color:#c0233a}.badge-soft-warning{background:#fef3e2;color:#b45309}.badge-soft-info{background:#e6f6fb;color:#0e7490}.badge-soft-secondary{background:#eef0f5;color:#475467}.status-dot{border-radius:50%;box-shadow:0 0 0 3px rgba(0,0,0,.04);display:inline-block;height:.65rem;margin-right:.4rem;width:.65rem}.status-up{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.18)}.status-down{background:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.18)}.status-unknown{background:#9ca3af;box-shadow:0 0 0 3px rgba(156,163,175,.18)}.alert{border:1px solid transparent;box-shadow:var(--obs-shadow-sm);font-weight:500}.alert,.stack-trace{border-radius:var(--obs-radius-sm)}.stack-trace{background:#0f172a;color:#e2e8f0;font-size:.82rem;line-height:1.55;max-height:420px;overflow:auto;padding:1rem 1.1rem}.stack-trace,.task-comment-body{white-space:pre-wrap}.task-comment-pinned{background:#fffaf0;border-left:3px solid #f59e0b;border-radius:0 var(--obs-radius-sm) var(--obs-radius-sm) 0;padding-left:.85rem!important;padding-right:.85rem!important}trix-editor.rich-editor{background:#fff;border:1px solid var(--obs-border);border-radius:var(--obs-radius-sm);color:#1f2937;min-height:6.5rem;padding:.55rem .8rem}trix-editor.rich-editor:focus{border-color:var(--obs-primary);box-shadow:0 0 0 3px rgba(var(--obs-primary-rgb),.18);outline:none}trix-toolbar .trix-button-group{border-color:var(--obs-border);border-radius:var(--obs-radius-sm);margin-bottom:.4rem}trix-toolbar .trix-button{border-bottom:0}trix-toolbar .trix-button-group--file-tools{display:none}.rich-text{word-break:break-word}.rich-text>:last-child{margin-bottom:0}.rich-text ol,.rich-text ul{margin-bottom:.5rem;padding-left:1.3rem}.rich-text blockquote{border-left:3px solid var(--obs-border);color:var(--obs-muted);margin:0 0 .5rem;padding-left:.8rem}.rich-text a{color:var(--obs-primary-700)}.rich-text pre{background:#f8f9fc;border-radius:var(--obs-radius-sm);overflow:auto;padding:.6rem .8rem}.modal-backdrop,.modal-backdrop.show{background-color:rgba(15,18,38,.45);opacity:1}.modal-backdrop.fade:not(.show){opacity:0}.modal-content{border:1px solid var(--obs-border);border-radius:var(--obs-radius);box-shadow:var(--obs-shadow-lg)}.comment-attach{margin-top:.85rem}.select2-container--bootstrap-5 .select2-selection{background:#fff;border:1px solid var(--obs-border);border-radius:var(--obs-radius-sm);min-height:calc(2.4rem + 2px)}.select2-container--bootstrap-5.select2-container--focus .select2-selection,.select2-container--bootstrap-5.select2-container--open .select2-selection{border-color:var(--obs-primary);box-shadow:0 0 0 3px rgba(var(--obs-primary-rgb),.18)}.select2-container--bootstrap-5 .select2-selection--single{align-items:center;display:flex}.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered{color:var(--bs-body-color);line-height:1.5;padding-left:.8rem}.select2-container--bootstrap-5 .select2-selection--single .select2-selection__arrow{height:100%}.select2-container--bootstrap-5 .select2-selection--multiple{display:block;height:auto;padding:.25rem .45rem}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__rendered{align-items:center;display:flex;flex-wrap:wrap;gap:.3rem;list-style:none;margin:0;padding:0;width:100%}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice{align-items:center;background:rgba(var(--obs-primary-rgb),.1);border:1px solid rgba(var(--obs-primary-rgb),.25);border-radius:6px;color:var(--obs-primary-700);display:inline-flex;font-size:.82rem;font-weight:500;gap:.35rem;line-height:1.4;margin:0;padding:.12rem .55rem}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice__remove{background:transparent;border:0;color:var(--obs-primary-700);font-size:1rem;line-height:1;margin:0;opacity:.55;order:2;padding:0;transition:opacity .12s ease,color .12s ease}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice__remove:hover{background:transparent;color:#dc2626;opacity:1}.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--bootstrap-5 .select2-selection--multiple .select2-search--inline .select2-search__field{color:var(--bs-body-color);height:1.7rem;line-height:1.7rem;margin:0}.select2-container--bootstrap-5 .select2-dropdown{border-color:var(--obs-border);border-radius:var(--obs-radius-sm);box-shadow:var(--obs-shadow-lg)}.select2-container--bootstrap-5 .select2-results__option--highlighted{background:var(--obs-primary)!important}.login-page{background:radial-gradient(1200px 600px at 15% -10%,rgba(139,92,246,.22),transparent 60%),radial-gradient(1000px 600px at 100% 110%,rgba(99,102,241,.25),transparent 55%),linear-gradient(135deg,#0f1226,#1b1f3b)}.login-page .auth-card{background:hsla(0,0%,100%,.98);border:1px solid hsla(0,0%,100%,.08);border-radius:18px;box-shadow:0 30px 70px rgba(8,11,30,.55)}.login-page .auth-brand{align-items:center;color:#fff;display:flex;gap:.65rem;justify-content:center;margin-bottom:1.5rem}.login-page .auth-brand .auth-logo{align-items:center;background:linear-gradient(135deg,var(--obs-primary),var(--obs-accent));border-radius:12px;box-shadow:0 10px 24px rgba(var(--obs-primary-rgb),.5);color:#fff;display:inline-flex;font-size:1.1rem;height:40px;justify-content:center;width:40px}.login-page .auth-brand .auth-title{color:#fff;font-size:1.4rem;font-weight:700;letter-spacing:-.02em}.login-page .input-group-text{background:#f8f9fc;border-bottom-left-radius:var(--obs-radius-sm);border-color:var(--obs-border);border-right:0;border-top-left-radius:var(--obs-radius-sm);color:#98a2b3}.login-page .input-group .form-control{border-bottom-right-radius:var(--obs-radius-sm);border-left:0;border-top-right-radius:var(--obs-radius-sm)}.login-page .input-group:focus-within .input-group-text{border-color:var(--obs-primary);color:var(--obs-primary)}.login-page .input-group:focus-within .form-control{border-color:var(--obs-primary);box-shadow:none}.chart-card{overflow:visible}.spark-bar,.spark-chart{position:relative}.spark-bar{cursor:pointer;transition:filter .1s ease,opacity .1s ease}.spark-bar:hover{filter:brightness(1.15) saturate(1.1);opacity:1!important}.spark-bar:after{background:#0f172a;border-radius:7px;bottom:calc(100% + 8px);box-shadow:var(--obs-shadow);color:#fff;content:attr(data-tip);font-size:.72rem;font-weight:500;line-height:1.2;padding:.3rem .5rem;pointer-events:none;transform:translate(-50%,3px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.spark-bar:after,.spark-bar:before{left:50%;opacity:0;position:absolute;z-index:40}.spark-bar:before{border:5px solid transparent;border-top-color:#0f172a;bottom:calc(100% + 3px);content:"";transform:translateX(-50%);transition:opacity .12s ease}.spark-bar:hover:after{opacity:1;transform:translate(-50%)}.spark-bar:hover:before{opacity:1}.spark-chart .spark-bar:first-child:after{left:0;transform:translateY(3px)}.spark-chart .spark-bar:first-child:hover:after{transform:translate(0)}.spark-chart .spark-bar:last-child:after{left:auto;right:0;transform:translateY(3px)}.spark-chart .spark-bar:last-child:hover:after{transform:translate(0)}.config-list{margin:0}.config-list>div{align-items:baseline;border-bottom:1px solid var(--obs-border);display:flex;gap:1rem;justify-content:space-between;padding:.4rem 0}.config-list>div:last-child{border-bottom:0}.config-list dt{color:var(--obs-muted);flex:0 0 auto;font-weight:500;margin:0}.config-list dd{margin:0;min-width:0;text-align:right;word-break:break-word}@media(prefers-reduced-motion:reduce){.card,.small-box,.small-box .small-box-icon,.stat-tile{transition-duration:.18s!important}.app-header .nav-link,.app-sidebar .sidebar-menu .nav-link,.btn,.form-control,.form-select,.nav-tabs .nav-link,.table tbody tr{transition-duration:.15s!important}}