web-mojo 2.1.1111 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin.cjs.js +1 -1
- package/dist/admin.cjs.js.map +1 -1
- package/dist/admin.es.js +7 -7
- package/dist/admin.es.js.map +1 -1
- package/dist/auth.cjs.js +1 -1
- package/dist/auth.es.js +1 -1
- package/dist/charts.cjs.js +1 -1
- package/dist/charts.css +61 -20
- package/dist/charts.es.js +2 -2
- package/dist/chunks/{ChatView-BsANcDiL.js → ChatView-CWNoGk-B.js} +4 -4
- package/dist/chunks/{ChatView-BsANcDiL.js.map → ChatView-CWNoGk-B.js.map} +1 -1
- package/dist/chunks/{Collection-vtImpCcS.js → Collection-C7rteLDn.js} +2 -2
- package/dist/chunks/{Collection-vtImpCcS.js.map → Collection-C7rteLDn.js.map} +1 -1
- package/dist/chunks/{ContextMenu-DfrWFc5y.js → ContextMenu-JJ51hS-a.js} +2 -2
- package/dist/chunks/{ContextMenu-DfrWFc5y.js.map → ContextMenu-JJ51hS-a.js.map} +1 -1
- package/dist/chunks/{ListView-BtZ7fylv.js → ListView-DWaowghQ.js} +2 -2
- package/dist/chunks/{ListView-BtZ7fylv.js.map → ListView-DWaowghQ.js.map} +1 -1
- package/dist/chunks/{MetricsMiniChartWidget-B_AUB4YG.js → MetricsMiniChartWidget-BHrvOb3y.js} +196 -251
- package/dist/chunks/{MetricsMiniChartWidget-B_AUB4YG.js.map → MetricsMiniChartWidget-BHrvOb3y.js.map} +1 -1
- package/dist/chunks/{MetricsMiniChartWidget-DTjYy6Mh.js → MetricsMiniChartWidget-CZ-cQgUg.js} +2 -2
- package/dist/chunks/MetricsMiniChartWidget-CZ-cQgUg.js.map +1 -0
- package/dist/chunks/{TokenManager-CKkIWgzy.js → TokenManager-CoHKTGNX.js} +3 -3
- package/dist/chunks/{TokenManager-CKkIWgzy.js.map → TokenManager-CoHKTGNX.js.map} +1 -1
- package/dist/chunks/version-C9Ldou9O.js +2 -0
- package/dist/chunks/version-C9Ldou9O.js.map +1 -0
- package/dist/chunks/{version-VfBIdNp3.js → version-DMWafX9X.js} +5 -5
- package/dist/chunks/version-DMWafX9X.js.map +1 -0
- package/dist/css/web-mojo.css +1 -1
- package/dist/docit.cjs.js +1 -1
- package/dist/docit.es.js +4 -4
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +8 -8
- package/dist/lightbox.cjs.js +1 -1
- package/dist/lightbox.es.js +1 -1
- package/dist/map.es.js +1 -1
- package/dist/timeline.es.js +2 -2
- package/package.json +1 -1
- package/dist/chunks/MetricsMiniChartWidget-DTjYy6Mh.js.map +0 -1
- package/dist/chunks/version-BZvxqd84.js +0 -2
- package/dist/chunks/version-BZvxqd84.js.map +0 -1
- package/dist/chunks/version-VfBIdNp3.js.map +0 -1
package/dist/css/web-mojo.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--chart-bg: #ffffff;--chart-content-bg: #ffffff;--chart-border: #dee2e6;--chart-text: #212529;--chart-text-muted: #6c757d;--chart-overlay-bg: rgba(255, 255, 255, .95);--chart-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--chart-hover-bg: rgba(0, 0, 0, .05);--chart-focus-ring: rgba(13, 110, 253, .25);--chart-grid-color: rgba(0, 0, 0, .1);--chart-loading-bg: rgba(248, 249, 250, .95)}[data-theme=dark]{--chart-bg: #212529;--chart-content-bg: #2b3035;--chart-border: #404449;--chart-text: #ffffff;--chart-text-muted: #adb5bd;--chart-overlay-bg: rgba(33, 37, 41, .95);--chart-shadow: 0 .125rem .25rem rgba(0, 0, 0, .3);--chart-hover-bg: rgba(255, 255, 255, .1);--chart-focus-ring: rgba(13, 110, 253, .4);--chart-grid-color: rgba(255, 255, 255, .1);--chart-loading-bg: rgba(43, 48, 53, .95)}.chart-component{background:var(--chart-bg);border:1px solid var(--chart-border);border-radius:.375rem;box-shadow:var(--chart-shadow);color:var(--chart-text);padding:1rem;transition:all .15s ease-in-out;min-height:300px;font-family:var(--bs-font-sans-serif, system-ui, sans-serif)}.chart-component:hover{border-color:var(--bs-primary, #0d6efd);box-shadow:0 .25rem .5rem #0000001a}.chart-container{width:100%;height:100%;display:flex;flex-direction:column}.chart-title-section{flex:0 0 auto}.chart-title{color:var(--chart-text);margin-bottom:.25rem;font-weight:600}.last-updated{color:var(--chart-text-muted);font-size:.75rem;display:flex;align-items:center}.last-updated .timestamp{font-weight:500;margin-left:.25rem}.chart-controls{flex:0 0 auto}.chart-controls .btn-toolbar{gap:.5rem;flex-wrap:wrap}.chart-controls .btn-group{box-shadow:0 .125rem .25rem #00000013}.chart-controls .btn{position:relative;border-color:var(--chart-border);transition:all .15s ease-in-out}.chart-controls .btn:hover{transform:translateY(-1px);box-shadow:0 .25rem .5rem #00000026}.chart-controls .btn:focus{box-shadow:0 0 0 .2rem var(--chart-focus-ring)}.chart-controls .btn:active{transform:translateY(0)}.chart-type-switcher .btn.active{background-color:var(--bs-primary, #0d6efd);border-color:var(--bs-primary, #0d6efd);color:#fff;box-shadow:inset 0 1px #ffffff26}.refresh-btn .bi-arrow-clockwise.spin{animation:spin 1s linear infinite}.theme-toggle{position:relative}.theme-toggle:hover{background:var(--chart-hover-bg)}.chart-controls .dropdown-menu{background:var(--chart-bg);border:1px solid var(--chart-border);box-shadow:0 .5rem 1rem #0000002d}.chart-controls .dropdown-item{color:var(--chart-text);transition:background-color .15s ease-in-out}.chart-controls .dropdown-item:hover,.chart-controls .dropdown-item:focus{background-color:var(--chart-hover-bg)}.chart-controls .dropdown-item i{width:1rem;margin-right:.5rem}.chart-content{flex:1 1 auto;position:relative;background:var(--chart-content-bg);border-radius:.25rem;overflow:hidden;min-height:250px;display:flex;align-items:center;justify-content:center}.chart-canvas{max-width:100%;max-height:100%;display:block;background:transparent}.chart-overlay{position:absolute;inset:0;background:var(--chart-overlay-bg);display:flex;align-items:center;justify-content:center;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:.25rem}.chart-overlay .spinner-border{width:2rem;height:2rem;color:var(--bs-primary, #0d6efd)}.chart-overlay .text-muted{color:var(--chart-text-muted);font-size:.875rem;margin-top:.5rem}.chart-overlay .alert-danger{background:var(--bs-danger-bg-subtle, #f8d7da);border-color:var(--bs-danger-border-subtle, #f1aeb5);color:var(--bs-danger-text, #842029);max-width:400px;margin:1rem}[data-theme=dark] .chart-overlay .alert-danger{background:#f8d7da1a;border-color:#f1aeb533;color:#f8d7da}.chart-overlay .display-4{font-size:3rem;color:var(--chart-text-muted)}.chart-overlay .opacity-50{opacity:.5}.websocket-status{font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .2s ease}.websocket-status.bg-success{background-color:#198754e6!important;animation:pulse-success 2s infinite}.websocket-status.bg-danger{background-color:#dc3545e6!important;animation:pulse-danger 1s infinite}.websocket-status.bg-secondary{background-color:#6c757de6!important}@keyframes pulse-success{0%,to{opacity:.9}50%{opacity:1}}@keyframes pulse-danger{0%,to{opacity:.9}50%{opacity:.6}}.chart-footer{flex:0 0 auto;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--chart-border);font-size:.75rem;color:var(--chart-text-muted)}.chart-footer .row>div{display:flex;align-items:center}.chart-footer i{margin-right:.25rem;opacity:.7}.refresh-status{font-weight:500;color:var(--bs-success, #198754)}@media (max-width: 575.98px){.chart-component{padding:.75rem;margin-bottom:1rem}.chart-controls .btn-toolbar{justify-content:center}.chart-controls .btn-group{margin-bottom:.5rem}.chart-controls .btn-sm{padding:.25rem .5rem;font-size:.75rem}.chart-title{font-size:1.1rem;text-align:center}.chart-footer .row{text-align:center}.chart-footer .col{margin-bottom:.25rem}.chart-type-switcher{flex-direction:column}.chart-type-switcher .btn{margin-bottom:.25rem}}@media (min-width: 576px) and (max-width: 767.98px){.chart-component{padding:.875rem}.chart-controls .btn-toolbar{justify-content:space-between}}@media (min-width: 768px){.chart-component{min-height:400px}.chart-content{min-height:320px}}@media (min-width: 992px){.chart-component{min-height:450px}.chart-content{min-height:360px}}@media (min-width: 1200px){.chart-component{min-height:500px}.chart-content{min-height:400px}}.chart-component{animation:chartFadeIn .5s ease-out}@keyframes chartFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chart-overlay{transition:opacity .3s ease-in-out}.chart-overlay.d-none{opacity:0;pointer-events:none}.chart-controls .btn{transition:all .15s ease-in-out}.chart-canvas{opacity:0;animation:canvasFadeIn .3s ease-in-out .2s forwards}@keyframes canvasFadeIn{to{opacity:1}}@media (prefers-contrast: high){.chart-component,.chart-controls .btn{border-width:2px}.chart-footer{border-top-width:2px}}@media (prefers-reduced-motion: reduce){.chart-component,.chart-canvas,.chart-overlay,.chart-controls .btn{animation:none!important;transition:none!important}.refresh-btn .bi-arrow-clockwise.spin{animation:none!important}}.chart-component:focus-within{outline:2px solid var(--bs-primary, #0d6efd);outline-offset:2px}.chart-controls .btn:focus-visible{outline:2px solid var(--bs-primary, #0d6efd);outline-offset:2px;z-index:1}.chart-component[data-chart-type=line] .chart-canvas,.chart-component[data-chart-type=bar] .chart-canvas{cursor:crosshair}.chart-component[data-chart-type=line] .chart-canvas:hover,.chart-component[data-chart-type=bar] .chart-canvas:hover,.chart-component[data-chart-type=pie] .chart-canvas{cursor:pointer}@media print{.chart-component{border:1px solid #000;box-shadow:none;background:#fff;color:#000;page-break-inside:avoid}.chart-controls,.websocket-status,.chart-overlay{display:none!important}.chart-canvas{max-width:100%!important;max-height:100%!important}.chart-footer{border-top:1px solid #000;color:#666}}.chart-sm{min-height:200px}.chart-sm .chart-content{min-height:150px}.chart-lg{min-height:600px}.chart-lg .chart-content{min-height:500px}.chart-xl{min-height:700px}.chart-xl .chart-content{min-height:600px}.chart-square{aspect-ratio:1 / 1}.chart-wide{aspect-ratio:16 / 9}.chart-tall{aspect-ratio:3 / 4}.chart-loading{pointer-events:none}.chart-loading .chart-canvas{opacity:.5;filter:blur(1px)}.chart-error .chart-canvas{opacity:.3;filter:grayscale(100%)}.chart-success{border-color:var(--bs-success, #198754)}.chart-success .chart-title{color:var(--bs-success, #198754)}.chart-warning{border-color:var(--bs-warning, #ffc107)}.chart-warning .chart-title{color:var(--bs-warning-text, #664d03)}.mojo-metrics-chart{display:flex;flex-direction:column;gap:1rem}.mojo-metrics-chart-container{width:100%;height:100%}.mojo-metrics-chart .chart-wrapper{flex:1;min-height:300px}.mojo-metrics-controls{background:var(--bs-light, #f8f9fa);border:1px solid var(--chart-border);border-radius:.375rem;padding:1rem;margin-bottom:1rem}[data-bs-theme=dark] .mojo-metrics-controls{background:var(--bs-dark, #212529);border-color:var(--chart-border)}.mojo-metrics-controls .form-label{font-size:.875rem;font-weight:600;color:var(--bs-body-color);margin-bottom:.25rem}.mojo-metrics-controls .btn-group .btn{font-size:.75rem;padding:.375rem .75rem;font-weight:500}.mojo-metrics-controls .quick-range-btn.active{background-color:var(--bs-primary);border-color:var(--bs-primary);color:#fff;font-weight:600}.mojo-metrics-controls .form-control,.mojo-metrics-controls .form-select{font-size:.875rem;border:1px solid var(--chart-border)}.mojo-metrics-controls .form-control:focus,.mojo-metrics-controls .form-select:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem #0d6efd40}.mojo-metrics-controls .dropdown-menu{background:var(--chart-bg);border:1px solid var(--chart-border);box-shadow:0 .5rem 1rem #00000026}.mojo-metrics-controls .form-check-input{margin-top:.125rem}.mojo-metrics-controls .form-check-label{font-size:.875rem;color:var(--bs-body-color)}.metrics-footer{border-top:1px solid var(--chart-border);padding-top:.5rem;font-size:.75rem;color:var(--chart-text-muted)}.metrics-footer .data-points{font-weight:600}.metrics-footer .last-updated{font-style:italic}.metrics-footer .timestamp{font-weight:500}@media (max-width: 767.98px){.mojo-metrics-controls .row{--bs-gutter-x: .75rem;--bs-gutter-y: 1rem}.mojo-metrics-controls .col-auto{flex:1 1 auto;min-width:0}.mojo-metrics-controls .btn-group{width:100%;justify-content:center}.mojo-metrics-controls .form-control,.mojo-metrics-controls .form-select{width:100%;max-width:none!important}.mojo-metrics-controls .input-group{flex-wrap:wrap}.mojo-metrics-controls .input-group .form-control{min-width:140px}}@media (max-width: 575.98px){.mojo-metrics-controls{padding:.75rem}.mojo-metrics-controls .row{--bs-gutter-x: .5rem;--bs-gutter-y: .75rem}.mojo-metrics-controls .form-label{margin-bottom:.125rem}.mojo-metrics-controls .btn-group .btn{padding:.25rem .5rem;font-size:.7rem}}.chart-header{flex:0 0 auto}.chart-toolbar-integrated{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--chart-border)}.mojo-toolbar-form{background:transparent;border:none;padding:0}.mojo-toolbar-form .row{--bs-gutter-x: 1rem;--bs-gutter-y: .5rem}.mojo-toolbar-form .form-label-sm{font-size:.75rem;font-weight:600;color:var(--chart-text-muted);margin-bottom:.25rem;display:block}.mojo-toolbar-form .btn-group-sm .btn{font-size:.75rem;padding:.25rem .5rem;font-weight:500}.mojo-toolbar-form .form-select,.mojo-toolbar-form .form-control{font-size:.875rem;padding:.375rem .5rem;border:1px solid var(--chart-border)}.mojo-toolbar-form .form-select:focus,.mojo-toolbar-form .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem #0d6efd40}.mojo-toolbar-form .dropdown-menu{background:var(--chart-bg);border:1px solid var(--chart-border);box-shadow:0 .5rem 1rem #00000026;font-size:.875rem}.mojo-toolbar-form .form-check-input{margin-top:.125rem}.mojo-toolbar-form .form-check-label{font-size:.875rem;color:var(--chart-text)}.mojo-toolbar-form .btn-group .btn.active{background-color:var(--bs-primary);border-color:var(--bs-primary);color:#fff;font-weight:600}@media (max-width: 767.98px){.chart-toolbar-integrated{margin-top:.5rem;padding-top:.5rem}.mojo-toolbar-form .row{--bs-gutter-x: .5rem;--bs-gutter-y: .75rem}.mojo-toolbar-form .col-auto{flex:1 1 auto;min-width:0}.mojo-toolbar-form .btn-group{width:100%;justify-content:center}.mojo-toolbar-form .form-control,.mojo-toolbar-form .form-select{width:100%;max-width:none}}@media (max-width: 575.98px){.chart-toolbar-integrated{margin-top:.25rem;padding-top:.5rem}.mojo-toolbar-form .form-label-sm{margin-bottom:.125rem;font-size:.7rem}.mojo-toolbar-form .btn-group .btn{padding:.25rem .375rem;font-size:.7rem}}[data-theme=dark] .mojo-toolbar-form .dropdown-menu{background:var(--chart-bg);border-color:var(--chart-border)}[data-bs-theme=dark] .mojo-toolbar-form .form-check-label{color:var(--chart-text)}.metrics-toolbar-compact{background:var(--bs-light, #f8f9fa);border-radius:.375rem;padding:.75rem;border:1px solid var(--chart-border)}[data-bs-theme=dark] .metrics-toolbar-compact{background:var(--bs-dark, #212529)}.metrics-toolbar-compact .row{--bs-gutter-x: .75rem;--bs-gutter-y: .5rem}.metrics-toolbar-compact .form-label-sm{font-size:.7rem;font-weight:600;color:var(--chart-text-muted);margin-bottom:.125rem}.metrics-toolbar-compact .btn-group .btn{font-size:.7rem;padding:.25rem .375rem;font-weight:500}.metrics-toolbar-compact .form-select,.metrics-toolbar-compact .form-control{font-size:.8rem;padding:.25rem .375rem;min-height:auto}.metrics-toolbar-compact .dropdown-toggle{font-size:.75rem;padding:.25rem .5rem}@media (max-width: 575.98px){.metrics-toolbar-compact{padding:.5rem}.metrics-toolbar-compact .row{--bs-gutter-x: .5rem;--bs-gutter-y: .25rem}.metrics-toolbar-compact .col-auto{flex:1 1 auto;min-width:0}}.mini-chart{display:block;width:100%}.mini-chart-wrapper{position:relative;display:block;width:100%}.mini-chart-svg{display:block;width:100%;height:100%}@keyframes mini-chart-draw{to{stroke-dashoffset:0}}@keyframes mini-chart-bar-grow{to{transform:scaleY(1)}}.metrics-mini-chart-container{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--chart-bg);border:1px solid var(--chart-border);border-radius:.5rem;transition:all .2s ease}.metrics-mini-chart-container:hover{box-shadow:var(--chart-shadow);border-color:var(--bs-primary)}.metrics-mini-chart-vertical{flex-direction:column;align-items:stretch;text-align:center}.metrics-mini-chart-vertical .metrics-chart{margin-top:.5rem}.metrics-mini-chart-horizontal{flex-direction:row;justify-content:space-between}.metrics-mini-chart-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;font-size:.9rem}.metrics-mini-chart-subtitle span.subtitle-label{font-size:.6rem;padding-right:10px}.metrics-mini-chart-trending-text{margin-top:3px;margin-bottom:0;font-size:.9rem}.metrics-info{flex:1;min-width:0}.metrics-label{font-size:.875rem;color:var(--chart-text-muted);font-weight:500;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metrics-value-row{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.metrics-value{font-size:1.5rem;font-weight:700;color:var(--chart-text);line-height:1.2}.metrics-trend{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.75rem;font-weight:600;border-radius:.25rem;line-height:1.5}.metrics-trend.trend-up{color:#198754;background-color:#1987541a}.metrics-trend.trend-down{color:#dc3545;background-color:#dc35451a}.metrics-trend i{font-size:.875rem}.metrics-chart{flex-shrink:0;display:flex;align-items:center}.metrics-mini-chart-sm .metrics-value{font-size:1.25rem}.metrics-mini-chart-sm .metrics-label{font-size:.75rem}.metrics-mini-chart-sm .metrics-chart{width:80px;height:30px}.metrics-mini-chart-md .metrics-chart{width:100px;height:40px}.metrics-mini-chart-lg .metrics-value{font-size:2rem}.metrics-mini-chart-lg .metrics-label{font-size:1rem}.metrics-mini-chart-lg .metrics-chart{width:120px;height:50px}.metrics-mini-chart-success{border-left:4px solid #198754}.metrics-mini-chart-success .metrics-value{color:#198754}.metrics-mini-chart-danger{border-left:4px solid #dc3545}.metrics-mini-chart-danger .metrics-value{color:#dc3545}.metrics-mini-chart-warning{border-left:4px solid #ffc107}.metrics-mini-chart-warning .metrics-value{color:#ffc107}.metrics-mini-chart-info{border-left:4px solid #0dcaf0}.metrics-mini-chart-info .metrics-value{color:#0dcaf0}[data-theme=dark] .metrics-trend.trend-up{color:#75b798;background-color:#75b79826}[data-theme=dark] .metrics-trend.trend-down{color:#ea868f;background-color:#ea868f26}@media (max-width: 575.98px){.metrics-mini-chart-container{flex-direction:column;align-items:flex-start}.metrics-mini-chart-horizontal .metrics-chart{align-self:stretch}.metrics-mini-chart-horizontal .mini-chart-svg{width:100%;height:40px}}@media (prefers-reduced-motion: reduce){.mini-chart-svg path,.mini-chart-svg rect{animation:none!important}.metrics-mini-chart-container{transition:none}}.mini-chart-tooltip{position:absolute;background:#000000d9;color:#fff;padding:.375rem .625rem;border-radius:.375rem;font-size:.75rem;line-height:1.4;pointer-events:none;white-space:nowrap;z-index:1000;box-shadow:0 2px 8px #00000026}.mini-chart-tooltip strong{font-weight:600}.mini-chart-tooltip-label{font-size:.6875rem;opacity:.8;margin-bottom:.125rem}[data-theme=dark] .mini-chart-tooltip{background:#ffffffe6;color:#212529}.circular-progress{display:inline-block;font-family:var(--bs-font-sans-serif, system-ui, sans-serif)}.circular-progress-container{position:relative;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease}.circular-progress-container:hover{transform:scale(1.02)}.circular-progress-svg{display:block;overflow:visible;margin:0 auto}.circular-progress-bar,.circular-progress-segment{transition:stroke-dashoffset .6s ease-out}.circular-progress-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:none}.circular-progress-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;max-width:70%}.circular-progress-value{font-size:1.25rem;font-weight:700;line-height:1;color:var(--chart-text, #212529);white-space:nowrap}.circular-progress-label{font-size:.625rem;font-weight:500;line-height:1.2;color:var(--chart-text-muted, #6c757d);text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}.circular-progress-content i{font-size:1.5rem;color:var(--chart-text, #212529);line-height:1}.circular-progress-container.circular-progress-xs .circular-progress-value{font-size:.625rem}.circular-progress-container.circular-progress-xs .circular-progress-label{font-size:.4rem}.circular-progress-container.circular-progress-xs .circular-progress-content i{font-size:.75rem}.circular-progress-container.circular-progress-sm .circular-progress-value{font-size:.875rem}.circular-progress-container.circular-progress-sm .circular-progress-label{font-size:.5rem}.circular-progress-container.circular-progress-sm .circular-progress-content i{font-size:1rem}.circular-progress-container.circular-progress-md .circular-progress-value{font-size:1.125rem}.circular-progress-container.circular-progress-md .circular-progress-label{font-size:.5625rem}.circular-progress-container.circular-progress-md .circular-progress-content i{font-size:1.25rem}.circular-progress-container.circular-progress-lg .circular-progress-value{font-size:1.5rem}.circular-progress-container.circular-progress-lg .circular-progress-label{font-size:.6875rem}.circular-progress-container.circular-progress-lg .circular-progress-content i{font-size:1.75rem}.circular-progress-container.circular-progress-xl .circular-progress-value{font-size:2.25rem}.circular-progress-container.circular-progress-xl .circular-progress-label{font-size:.8125rem}.circular-progress-container.circular-progress-xl .circular-progress-content i{font-size:2.5rem}.circular-progress-container.circular-progress-success .circular-progress-value,.circular-progress-container.circular-progress-success .circular-progress-content i{color:#198754}.circular-progress-container.circular-progress-danger .circular-progress-value,.circular-progress-container.circular-progress-danger .circular-progress-content i{color:#dc3545}.circular-progress-container.circular-progress-warning .circular-progress-value,.circular-progress-container.circular-progress-warning .circular-progress-content i{color:#ffc107}.circular-progress-container.circular-progress-info .circular-progress-value,.circular-progress-container.circular-progress-info .circular-progress-content i{color:#0dcaf0}.circular-progress-clickable .circular-progress-container{cursor:pointer;transition:transform .15s ease,filter .15s ease}.circular-progress-clickable .circular-progress-container:hover{transform:scale(1.05);filter:brightness(1.1)}.circular-progress-clickable .circular-progress-container:active{transform:scale(.98)}.circular-progress-shadow .circular-progress-container{filter:drop-shadow(0 .25rem .5rem rgba(0,0,0,.15))}.circular-progress-theme-shadowed .circular-progress-svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.circular-progress-theme-shadowed circle[class*=progress]{filter:drop-shadow(0 3px 6px rgba(0,0,0,.2)) drop-shadow(0 1px 3px rgba(0,0,0,.3))}.circular-progress-theme-shadowed .circular-progress-svg circle:not([class]){filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.circular-progress-theme-dark{background:#1f2937;border-radius:.5rem;padding:1rem}.circular-progress-theme-dark .circular-progress-value,.circular-progress-theme-dark .circular-progress-label{color:#e5e7eb}.circular-progress-theme-light{background:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 3px #0000001a}.circular-progress-theme-light .circular-progress-value,.circular-progress-theme-light .circular-progress-label{color:#111827}@keyframes circular-progress-pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}[data-theme=dark] .circular-progress-value{color:var(--chart-text, #ffffff)}[data-theme=dark] .circular-progress-label{color:var(--chart-text-muted, #adb5bd)}[data-theme=dark] .circular-progress-content i{color:var(--chart-text, #ffffff)}[data-theme=dark] .circular-progress-success .circular-progress-value,[data-theme=dark] .circular-progress-success .circular-progress-content i{color:#75b798}[data-theme=dark] .circular-progress-danger .circular-progress-value,[data-theme=dark] .circular-progress-danger .circular-progress-content i{color:#ea868f}[data-theme=dark] .circular-progress-warning .circular-progress-value,[data-theme=dark] .circular-progress-warning .circular-progress-content i{color:#ffda6a}[data-theme=dark] .circular-progress-info .circular-progress-value,[data-theme=dark] .circular-progress-info .circular-progress-content i{color:#6edff6}@media (prefers-reduced-motion: reduce){.circular-progress-bar,.circular-progress-segment,.circular-progress-container{transition:none!important;animation:none!important}}@media (prefers-contrast: high){.circular-progress-container{outline:2px solid currentColor;outline-offset:2px}}.circular-progress-clickable .circular-progress-container:focus{outline:2px solid var(--bs-primary, #0d6efd);outline-offset:2px}@media print{.circular-progress-container{break-inside:avoid}.circular-progress-clickable .circular-progress-container{cursor:default}}.metrics-chart-settings-popover{--bs-popover-max-width: 280px;--bs-popover-border-color: var(--chart-border);--bs-popover-header-bg: var(--bs-light, #f8f9fa);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: .75rem}[data-theme=dark] .metrics-chart-settings-popover{--bs-popover-bg: var(--chart-bg);--bs-popover-header-bg: var(--bs-dark, #2b3035);--bs-popover-border-color: var(--chart-border)}.metrics-chart-settings-content{padding:0}.metrics-chart-settings-content h6{font-weight:600;font-size:.875rem;color:var(--chart-text);margin-bottom:.5rem}.metrics-chart-settings-content .form-label{font-weight:600;color:var(--chart-text)}.metrics-chart-settings-content .form-select,.metrics-chart-settings-content .form-control{font-size:.875rem}.metrics-chart-settings-content .form-select:focus,.metrics-chart-settings-content .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem #0d6efd40}.metrics-mini-chart-widget .metrics-settings-btn{transition:all .2s ease;opacity:0;text-decoration:none;visibility:hidden}.metrics-mini-chart-widget:hover .metrics-settings-btn{opacity:.7;visibility:visible}.metrics-mini-chart-widget .metrics-settings-btn:hover{opacity:1!important;transform:scale(1.1)}.metrics-mini-chart-widget .metrics-settings-btn:focus{outline:none;box-shadow:0 0 0 .2rem #6c757d40;opacity:1;visibility:visible}.metrics-mini-chart-widget .card[style*=background]:hover .metrics-settings-btn{opacity:.8;visibility:visible}.metrics-mini-chart-widget .card[style*=background] .metrics-settings-btn:hover{opacity:1!important}.metrics-mini-chart-widget .card{transition:all .2s ease}.metrics-mini-chart-widget:hover .card{box-shadow:0 .5rem 1rem #00000026!important;transform:translateY(-2px)}@media (max-width: 575.98px){.metrics-chart-settings-popover{--bs-popover-max-width: 240px}.metrics-chart-settings-content h6{font-size:.8125rem}}:root{--auth-primary: #3b82f6;--auth-primary-hover: #2563eb;--auth-surface: #ffffff;--auth-text: #111827;--auth-muted: #6b7280;--auth-border: #e5e7eb;--auth-shadow: 0 10px 40px rgba(0, 0, 0, .1);--auth-shadow-hover: 0 15px 50px rgba(0, 0, 0, .15);--auth-gradient-start: #475569;--auth-gradient-end: #334155;--auth-radius: 12px;--auth-field-radius: 8px;--auth-spinner-size: 1rem;--auth-spinner-color: var(--auth-primary)}.auth-container{width:100%;max-width:420px;margin:3rem auto;animation:auth-fade-in .4s ease-in;color:var(--auth-text)}.auth-card{background:var(--auth-surface);border-radius:var(--auth-radius);box-shadow:var(--auth-shadow);padding:2rem;transition:box-shadow .25s ease,transform .2s ease}.auth-card:hover{box-shadow:var(--auth-shadow-hover);transform:translateY(-1px)}.auth-header{text-align:center;margin-bottom:1.5rem}.auth-title{font-size:1.75rem;font-weight:700;color:var(--auth-primary);margin:0 0 .25rem}.auth-subtitle{color:var(--auth-muted);font-size:.95rem;margin:0}.auth-container .alert{border-radius:8px;padding:.875rem 1rem;margin-bottom:1.25rem;font-size:.9rem;border:1px solid transparent;animation:auth-slide-down .3s ease}.auth-container .alert-success{background-color:#d1f4e0;border-color:#a3e3c4;color:#0f5132}.auth-container .alert-danger{background-color:#f8d7da;border-color:#f1aeb5;color:#842029}.auth-container .alert-info{background-color:#cfe2ff;border-color:#9ec5fe;color:#084298}.auth-container .form-label{display:block;font-weight:600;color:#374151;margin-bottom:.5rem;font-size:.92rem}.auth-container .form-control{width:100%;border-radius:var(--auth-field-radius);border:2px solid #e5e7eb;padding:.7rem .9rem;font-size:.95rem;line-height:1.25rem;transition:border-color .15s ease,box-shadow .15s ease;background:#fff;color:#111827;outline:none;box-sizing:border-box}.auth-container .form-control::placeholder{color:#9ca3af}.auth-container .form-control:focus{border-color:var(--auth-primary);box-shadow:0 0 0 .15rem #3b82f640}.auth-container .form-check{padding-left:1.75rem;margin-bottom:.75rem;position:relative}.auth-container .form-check-input{width:1.1rem;height:1.1rem;position:absolute;left:0;top:.15rem;margin:0;appearance:none;border:2px solid var(--auth-border);border-radius:4px;background:#fff;cursor:pointer}.auth-container .form-check-input:checked{background-color:var(--auth-primary);border-color:var(--auth-primary);box-shadow:inset 0 0 0 2px #fff}.auth-container .form-check-label{cursor:pointer;font-size:.95rem;color:#374151}.auth-container .btn{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:.7rem 1.1rem;font-weight:600;font-size:1rem;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease;text-decoration:none;background:#f9fafb;color:#111827}.auth-container .btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.auth-container .btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.auth-container .btn-primary{background:linear-gradient(135deg,var(--auth-gradient-start),var(--auth-gradient-end));color:#fff;border:none}.auth-container .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--auth-primary-hover),var(--auth-gradient-end));box-shadow:0 5px 15px #3b82f659}.auth-container .btn-outline-primary{background:transparent;color:var(--auth-primary);border-color:var(--auth-primary)}.auth-container .btn-outline-primary:hover:not(:disabled){background:#3b82f614;color:var(--auth-primary-hover)}.auth-container .btn-outline-secondary{background:transparent;color:#374151;border-color:#9ca3af}.auth-container .btn-outline-secondary:hover:not(:disabled){background:#f3f4f6;color:#111827}.auth-container .btn-link{background:transparent;border:none;color:var(--auth-primary);padding:0;font-weight:500}.auth-container .btn-link:hover{color:var(--auth-primary-hover);text-decoration:underline}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-container .spinner-border{display:inline-block;width:var(--auth-spinner-size);height:var(--auth-spinner-size);border:.15em solid rgba(0,0,0,.1);border-right-color:var(--auth-spinner-color);border-radius:50%;animation:auth-spin .75s linear infinite}.auth-container .w-100{width:100%}.auth-container .mb-2{margin-bottom:.5rem}.auth-container .mb-3{margin-bottom:.75rem}.auth-container .mb-4{margin-bottom:1rem}.auth-container .text-center{text-align:center}.auth-container .small{font-size:.875rem}.auth-container .px-3{padding-left:.75rem;padding-right:.75rem}.auth-container .d-grid{display:grid}.auth-container .gap-2{gap:.5rem}.auth-container .position-relative{position:relative}.auth-container .position-absolute{position:absolute}.auth-container .top-50{top:50%}.auth-container .start-50{left:50%}.auth-container .translate-middle{transform:translate(-50%,-50%)}.auth-container a{color:var(--auth-primary);text-decoration:none;transition:color .2s ease}.auth-container a:hover{color:var(--auth-primary-hover);text-decoration:underline}.auth-container .auth-view{animation:auth-fade-in .25s ease}@keyframes auth-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.auth-container *:focus-visible{outline:2px solid var(--auth-primary);outline-offset:2px}@media (max-width: 576px){.auth-card{padding:1.5rem}.auth-title{font-size:1.5rem}.auth-subtitle{font-size:.9rem}}.lightbox-component{position:relative;width:100%;height:100%;background:#000;overflow:hidden;font-family:var(--bs-font-sans-serif, system-ui, sans-serif)}.lightbox-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1}.lightbox-loading{text-align:center;color:#fff}.lightbox-loading .spinner-border{width:2rem;height:2rem;margin-bottom:1rem}.lightbox-component.loaded .lightbox-overlay{display:none}.image-viewer{position:relative;width:100%;height:100%;background:#000;overflow:hidden}.image-viewer-container{position:relative;width:100%;height:100%;min-height:400px}.image-viewer-content{position:relative;width:100%;height:100%;overflow:hidden;cursor:grab}.image-viewer-content:active,.image-viewer-content.dragging{cursor:grabbing}.image-viewer-image{position:absolute;top:50%;left:50%;transform-origin:center center;transition:transform .2s ease-out;max-width:none;max-height:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.image-viewer-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1}.image-viewer.loaded .image-viewer-overlay{display:none}.image-viewer-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:10;display:flex;gap:10px;align-items:center;background:#000c;padding:8px 12px;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-viewer-info{color:#fff;font-size:12px;white-space:nowrap;margin-left:10px}.image-viewer-controls .btn{--bs-btn-border-color: rgba(255, 255, 255, .2);border-color:#fff3}.image-viewer-controls .btn:hover{--bs-btn-border-color: rgba(255, 255, 255, .4);border-color:#fff6}.image-editor{display:flex;flex-direction:column;height:100%;background:#f8f9fa}.image-editor-toolbar{padding:8px 12px;background:#fff;border-bottom:1px solid #dee2e6;flex-shrink:0}.image-editor-filters{background:#fff;border-bottom:1px solid #dee2e6;flex-shrink:0}.image-editor-filters .card{border:none;border-radius:0}.image-editor-workspace{flex:1;display:flex;flex-direction:column;overflow:hidden}.image-editor-content{flex:1;position:relative;background:#000;overflow:hidden;cursor:grab}.image-editor-content:active{cursor:grabbing}.image-editor-content.crop-mode{cursor:crosshair}.image-editor-image,.image-editor-canvas{position:absolute;top:50%;left:50%;transform-origin:center center;transition:transform .2s ease-out;max-width:none;max-height:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.image-editor-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1}.image-editor.loaded .image-editor-overlay{display:none}.image-editor-status{padding:4px 12px;background:#fff;border-top:1px solid #dee2e6;flex-shrink:0}.crop-overlay{position:absolute;inset:0;z-index:10}.crop-box{position:absolute;border:2px solid #007bff;background:#007bff1a;cursor:move}.crop-box:before{content:"";position:absolute;inset:0;border:1px dashed rgba(255,255,255,.5)}.crop-handle{position:absolute;width:8px;height:8px;background:#007bff;border:1px solid white;border-radius:1px}.crop-handle-nw{top:-4px;left:-4px;cursor:nw-resize}.crop-handle-ne{top:-4px;right:-4px;cursor:ne-resize}.crop-handle-sw{bottom:-4px;left:-4px;cursor:sw-resize}.crop-handle-se{bottom:-4px;right:-4px;cursor:se-resize}.crop-handle-n{top:-4px;left:50%;transform:translate(-50%);cursor:n-resize}.crop-handle-s{bottom:-4px;left:50%;transform:translate(-50%);cursor:s-resize}.crop-handle-w{left:-4px;top:50%;transform:translateY(-50%);cursor:w-resize}.crop-handle-e{right:-4px;top:50%;transform:translateY(-50%);cursor:e-resize}.form-range::-webkit-slider-thumb{background:#007bff}.form-range::-moz-range-thumb{background:#007bff}.btn.active{background-color:#007bff;border-color:#007bff;color:#fff}.pdf-viewer{display:flex;flex-direction:column;height:100%;background:#f8f9fa}.pdf-viewer-toolbar{padding:8px 12px;background:#fff;border-bottom:1px solid #dee2e6;flex-shrink:0}.pdf-viewer-toolbar .page-input{width:60px}.pdf-viewer-toolbar .page-total{background:transparent;border-left:none;font-size:.8em}.pdf-viewer-content{flex:1;position:relative;background:#525659;overflow:auto;display:flex;align-items:center;justify-content:center}.pdf-canvas-container{position:relative;background:#fff;box-shadow:0 4px 12px #0000004d;margin:20px}.pdf-canvas{display:block;max-width:100%;max-height:100%}.pdf-viewer-overlay{position:absolute;inset:0;background:#0000001a;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;color:#6c757d}.pdf-viewer.loaded .pdf-viewer-overlay{display:none}.pdf-viewer-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;min-width:300px}.pdf-viewer-status{padding:4px 12px;background:#fff;border-top:1px solid #dee2e6;flex-shrink:0}.pdf-viewer-loading{text-align:center}.pdf-viewer-loading .spinner-border{width:2rem;height:2rem}.lightbox-toolbar .btn:disabled{opacity:.4}.lightbox-toolbar .btn-group{margin-right:.5rem}.lightbox-controls .btn{border-color:#fff3}.lightbox-controls .btn:hover:not(:disabled){border-color:#fff6;background-color:#ffffff1a}.lightbox-controls .btn:focus{box-shadow:0 0 0 .2rem #ffffff40}@media (max-width: 768px){.image-editor-toolbar .btn-group,.pdf-viewer-toolbar .btn-group{margin-bottom:4px}.image-editor-toolbar .btn-toolbar,.pdf-viewer-toolbar .btn-toolbar{flex-wrap:wrap}.image-viewer-controls{bottom:10px;left:10px;right:10px;transform:none;flex-wrap:wrap;justify-content:center}.image-editor-filters .row{margin:0}.image-editor-filters .col-md-6{margin-bottom:1rem}}@media (max-width: 576px){.lightbox-toolbar{padding:4px 8px}.lightbox-toolbar .btn-sm{padding:.125rem .25rem;font-size:.75rem}.image-viewer-controls{padding:6px 8px}.image-viewer-info{font-size:11px}}.lightbox-component:focus-within{outline:2px solid #007bff;outline-offset:2px}.crop-handle:focus{outline:2px solid #fff;outline-offset:1px}.lightbox-toolbar .btn:focus,.lightbox-controls .btn:focus{z-index:3}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media print{.lightbox-toolbar,.lightbox-controls,.lightbox-overlay,.crop-overlay{display:none!important}.pdf-canvas,.image-viewer-image{position:static!important;transform:none!important;max-width:100%!important;max-height:none!important}.lightbox-component{background:#fff!important;overflow:visible!important}}.lightbox-component *{transition:opacity .2s ease-out,transform .2s ease-out}.crop-box{transition:all .1s ease-out}.lightbox-overlay{transition:opacity .3s ease-out}.btn{transition:all .15s ease-in-out}.pdf-viewer-content{scroll-behavior:smooth}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.pdf-canvas{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.crop-handle{width:10px;height:10px}}:root{--docit-primary: #2563eb;--docit-primary-hover: #1d4ed8;--docit-primary-light: #dbeafe;--docit-bg-primary: #ffffff;--docit-bg-secondary: #f8fafc;--docit-bg-tertiary: #f1f5f9;--docit-text-primary: #1e293b;--docit-text-secondary: #64748b;--docit-text-muted: #94a3b8;--docit-border: #e2e8f0;--docit-sidebar-width: 280px;--docit-sidebar-collapsed-width: 0px;--docit-header-height: 56px;--docit-content-max-width: 900px;--docit-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;--docit-font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", monospace}.docit-app-layout{display:flex;flex-direction:column;height:100vh}#topnav-container .navbar{height:var(--docit-header-height)}.docit-body-layout{display:flex;flex-grow:1;overflow:hidden}.docit-sidebar{width:var(--docit-sidebar-width);background:var(--docit-bg-secondary);border-right:1px solid var(--docit-border);overflow-y:auto;transition:width .3s ease,transform .3s ease;height:calc(100vh - var(--docit-header-height));position:sticky;top:var(--docit-header-height)}.docit-main{flex-grow:1;overflow-y:auto;height:calc(100vh - var(--docit-header-height))}.docit-content{width:100%;max-width:var(--docit-content-max-width);margin:0 auto;padding:2rem}.sidebar-collapsed .docit-sidebar{width:var(--docit-sidebar-collapsed-width);transform:translate(calc(-1 * var(--docit-sidebar-width)))}.sidebar-collapsed .toggle-chevron{transform:rotate(0)}.topnav-sidebar-toggle{background:none;border:none;color:#fff;padding:0 .5rem}.toggle-chevron{transition:transform .3s ease;transform:rotate(180deg)}.docit-sidebar-nav{height:100%;display:flex;flex-direction:column}.docit-nav-header{padding:1.5rem 1.25rem 1rem;border-bottom:1px solid var(--docit-border);background:var(--docit-bg-primary);position:sticky;top:0;z-index:10;display:flex;align-items:center}.docit-nav-title{font-size:1.125rem;font-weight:600;margin:0}.docit-nav-body{flex:1;overflow-y:auto;padding:1rem 0}.docit-page-toolbar{margin-top:-20px}.docit-nav-footer{padding:.75rem;border-top:1px solid var(--docit-border)}.docit-book-item,.docit-page-link{display:flex;align-items:center;padding:.625rem 1.25rem;margin:0 .75rem .25rem;border-radius:.375rem;cursor:pointer;transition:background-color .15s ease,color .15s ease;color:var(--docit-text-secondary);text-decoration:none}.docit-book-item:hover,.docit-page-link:hover{background:var(--docit-bg-tertiary);color:var(--docit-text-primary)}.docit-book-item.active,.docit-page-link.active{font-weight:700;color:var(--docit-text-primary)}.docit-book-item .book-title{flex:1;font-weight:500}.docit-page-container{animation:fadeIn .3s ease}.docit-page-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--docit-border)}.docit-page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.docit-page-title{font-size:2.25rem;font-weight:700;margin:0}.docit-page-meta{margin-top:.75rem;font-size:.875rem;color:var(--docit-text-muted)}.docit-page-meta span{margin-right:1rem}.docit-content h1,.docit-content h2,.docit-content h3,.docit-content h4{margin-bottom:1rem;font-weight:600}.docit-content p{margin-bottom:1.25rem}.docit-content a{color:var(--docit-primary);text-decoration:none}.docit-content a:hover{text-decoration:underline}.docit-content code{background:var(--docit-bg-tertiary);padding:.125rem .375rem;border-radius:.25rem;font-family:var(--docit-font-mono)}.docit-content pre{background:var(--docit-bg-secondary);border:1px solid var(--docit-border);border-radius:.5rem;padding:1rem;overflow-x:auto}.docit-edit-container{display:flex;flex-direction:column}.docit-edit-header{background:var(--docit-bg-secondary);border-bottom:1px solid var(--docit-border);padding:1rem 1.5rem}.docit-edit-title-row{display:flex;align-items:center;justify-content:space-between}.docit-edit-body{flex-grow:1}.docit-loading,.docit-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--docit-text-muted)}.docit-empty-state i{font-size:3rem;opacity:.5;margin-bottom:1rem}.docit-empty-state h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--docit-text-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid #ff0000}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .ch,.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .cpf,.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:green}.highlight .nc{color:#00f;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#d2413a;font-weight:700}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00f;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177c}.highlight .ow{color:#a2f;font-weight:700}.highlight .w{color:#bbb}.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .sa,.highlight .sb,.highlight .sc,.highlight .dl{color:#ba2121}.highlight .sd{color:#ba2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#b62;font-weight:700}.highlight .sh{color:#ba2121}.highlight .si{color:#b68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:green}.highlight .fm{color:#00f}.highlight .vc,.highlight .vg,.highlight .vi,.highlight .vm{color:#19177c}.highlight .il{color:#666}:root{--bs-primary: #1a73e8;--bs-secondary: #5f6368;--bs-success: #34a853;--bs-info: #4285f4;--bs-warning: #fbbc05;--bs-danger: #ea4335;--bs-light: #f1f3f4;--bs-dark: #202124;--bs-primary-bg-subtle: #e8f0fe;--bs-secondary-bg-subtle: #f1f3f4;--bs-success-bg-subtle: #e6f4ea;--bs-info-bg-subtle: #e8f0fe;--bs-warning-bg-subtle: #fef7e0;--bs-danger-bg-subtle: #fce8e6;--bs-primary-border-subtle: #aecbfa;--bs-secondary-border-subtle: #dadce0;--bs-success-border-subtle: #81c995;--bs-info-border-subtle: #aecbfa;--bs-warning-border-subtle: #fad2cf;--bs-danger-border-subtle: #f28b82;--bs-primary-text-emphasis: #174ea6;--bs-secondary-text-emphasis: #3c4043;--bs-success-text-emphasis: #0d652d;--bs-info-text-emphasis: #174ea6;--bs-warning-text-emphasis: #b06000;--bs-danger-text-emphasis: #a50e0e;--bs-btn-hover-bg: #e8f0fe}:root[data-bs-theme=ocean]{--bs-primary: #0077b6;--bs-secondary: #90e0ef;--bs-success: #00b4d8;--bs-info: #48cae4;--bs-warning: #ffd166;--bs-danger: #ef476f;--bs-light: #f1faff;--bs-dark: #03045e;--bs-primary-bg-subtle: #caf0f8;--bs-secondary-bg-subtle: #e0fbfc;--bs-success-bg-subtle: #ade8f4;--bs-info-bg-subtle: #caf0f8;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #fde2e4;--bs-primary-text-emphasis: #023e8a;--bs-success-text-emphasis: #0077b6;--bs-danger-text-emphasis: #9d0208}:root[data-bs-theme=sunrise]{--bs-primary: #ff6f00;--bs-secondary: #ffb703;--bs-success: #fb8500;--bs-info: #ffb4a2;--bs-warning: #ffd166;--bs-danger: #e63946;--bs-light: #fff3e6;--bs-dark: #432818;--bs-primary-bg-subtle: #fff4e1;--bs-secondary-bg-subtle: #fff8dc;--bs-success-bg-subtle: #ffe5b4;--bs-info-bg-subtle: #ffe0d9;--bs-warning-bg-subtle: #fff7d6;--bs-danger-bg-subtle: #fddede;--bs-primary-text-emphasis: #9d4b00;--bs-success-text-emphasis: #a85d00;--bs-danger-text-emphasis: #8d0000}:root[data-bs-theme=forest]{--bs-primary: #2b9348;--bs-secondary: #95d5b2;--bs-success: #55a630;--bs-info: #76c893;--bs-warning: #ffba08;--bs-danger: #d62828;--bs-light: #f0fdf4;--bs-dark: #081c15;--bs-primary-bg-subtle: #d8f3dc;--bs-secondary-bg-subtle: #e9f5eb;--bs-success-bg-subtle: #c7f9cc;--bs-info-bg-subtle: #e9fbee;--bs-warning-bg-subtle: #fff8e1;--bs-danger-bg-subtle: #ffe5e5;--bs-primary-text-emphasis: #1a472a;--bs-success-text-emphasis: #2f5233;--bs-danger-text-emphasis: #7a1a1a}:root[data-bs-theme=midnight]{--bs-primary: #5a189a;--bs-secondary: #7b2cbf;--bs-success: #06d6a0;--bs-info: #118ab2;--bs-warning: #ffd166;--bs-danger: #ef476f;--bs-light: #f8f9fa;--bs-dark: #03071e;--bs-primary-bg-subtle: #e0d4f7;--bs-secondary-bg-subtle: #f1e4ff;--bs-success-bg-subtle: #d0fdf2;--bs-info-bg-subtle: #d0ebff;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #fbdde2;--bs-primary-text-emphasis: #240046;--bs-success-text-emphasis: #056b53;--bs-danger-text-emphasis: #9d001f}:root[data-bs-theme=corporate]{--bs-primary: #2a5d9f;--bs-secondary: #6c757d;--bs-success: #4caf50;--bs-info: #17a2b8;--bs-warning: #f0ad4e;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-bg-subtle: #e7f0fa;--bs-secondary-bg-subtle: #f1f3f5;--bs-success-bg-subtle: #eaf6ec;--bs-info-bg-subtle: #e6f7fa;--bs-warning-bg-subtle: #fff4e0;--bs-danger-bg-subtle: #fcebec;--bs-primary-border-subtle: #c2d7ed;--bs-secondary-border-subtle: #dee2e6;--bs-success-border-subtle: #c8e6c9;--bs-info-border-subtle: #bde3ea;--bs-warning-border-subtle: #ffe0b2;--bs-danger-border-subtle: #f5c2c7;--bs-primary-text-emphasis: #1d3f6e;--bs-secondary-text-emphasis: #495057;--bs-success-text-emphasis: #2e7d32;--bs-info-text-emphasis: #0d6673;--bs-warning-text-emphasis: #a46900;--bs-danger-text-emphasis: #8a1c24}:root{--mojo-primary: var(--bs-primary);--mojo-primary-rgb: var(--bs-primary-rgb);--mojo-secondary: var(--bs-secondary);--mojo-secondary-rgb: var(--bs-secondary-rgb);--mojo-success: var(--bs-success);--mojo-success-rgb: var(--bs-success-rgb);--mojo-info: var(--bs-info);--mojo-info-rgb: var(--bs-info-rgb);--mojo-warning: var(--bs-warning);--mojo-warning-rgb: var(--bs-warning-rgb);--mojo-danger: var(--bs-danger);--mojo-danger-rgb: var(--bs-danger-rgb);--mojo-light: var(--bs-light);--mojo-light-rgb: var(--bs-light-rgb);--mojo-dark: var(--bs-dark);--mojo-dark-rgb: var(--bs-dark-rgb);--mojo-body-bg: var(--bs-body-bg);--mojo-body-color: var(--bs-body-color);--mojo-emphasis-color: var(--bs-emphasis-color);--mojo-secondary-color: var(--bs-secondary-color);--mojo-tertiary-color: var(--bs-tertiary-color);--mojo-bg-primary: var(--bs-body-bg);--mojo-bg-secondary: var(--bs-secondary-bg);--mojo-bg-tertiary: var(--bs-tertiary-bg);--mojo-border-color: var(--bs-border-color);--mojo-border-color-translucent: var(--bs-border-color-translucent);--mojo-hover-bg: var(--bs-secondary-bg);--mojo-active-bg: var(--bs-primary);--mojo-focus-color: var(--bs-primary);--mojo-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .25);--mojo-transition-fast: .15s ease-in-out;--mojo-transition-base: .2s ease-in-out;--mojo-transition-slow: .3s ease-in-out;--mojo-border-radius-sm: var(--bs-border-radius-sm);--mojo-border-radius: var(--bs-border-radius);--mojo-border-radius-lg: var(--bs-border-radius-lg);--mojo-border-radius-xl: var(--bs-border-radius-xl);--mojo-spacer-xs: calc(var(--bs-spacer) * .25);--mojo-spacer-sm: calc(var(--bs-spacer) * .5);--mojo-spacer: var(--bs-spacer);--mojo-spacer-lg: calc(var(--bs-spacer) * 1.5);--mojo-spacer-xl: calc(var(--bs-spacer) * 3);--mojo-font-sans-serif: var(--bs-font-sans-serif);--mojo-font-monospace: var(--bs-font-monospace);--mojo-box-shadow-sm: var(--bs-box-shadow-sm);--mojo-box-shadow: var(--bs-box-shadow);--mojo-box-shadow-lg: var(--bs-box-shadow-lg);--mojo-zindex-dropdown: var(--bs-zindex-dropdown, 1000);--mojo-zindex-sticky: var(--bs-zindex-sticky, 1020);--mojo-zindex-fixed: var(--bs-zindex-fixed, 1030);--mojo-zindex-modal-backdrop: var(--bs-zindex-modal-backdrop, 1040);--mojo-zindex-offcanvas: var(--bs-zindex-offcanvas, 1045);--mojo-zindex-modal: var(--bs-zindex-modal, 1050);--mojo-zindex-popover: var(--bs-zindex-popover, 1070);--mojo-zindex-tooltip: var(--bs-zindex-tooltip, 1080)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: var(--bs-primary);--bs-btn-border-color: var(--bs-primary);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-primary) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-primary) 82%, #000 18%);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-primary) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-primary) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb, 13, 110, 253)}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: var(--bs-success);--bs-btn-border-color: var(--bs-success);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-success) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-success) 82%, #000 18%);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-success) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-success) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-success-rgb, 25, 135, 84)}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: var(--bs-danger);--bs-btn-border-color: var(--bs-danger);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-danger) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-danger) 82%, #000 18%);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-danger) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-danger) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-danger-rgb, 220, 53, 69)}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: var(--bs-warning);--bs-btn-border-color: var(--bs-warning);--bs-btn-hover-color: #000;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-warning) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-warning) 82%, #000 18%);--bs-btn-active-color: #000;--bs-btn-active-bg: color-mix(in srgb, var(--bs-warning) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-warning) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-warning-rgb, 255, 193, 7)}.btn-info{--bs-btn-color: #000;--bs-btn-bg: var(--bs-info);--bs-btn-border-color: var(--bs-info);--bs-btn-hover-color: #000;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-info) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-info) 82%, #000 18%);--bs-btn-active-color: #000;--bs-btn-active-bg: color-mix(in srgb, var(--bs-info) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-info) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-info-rgb, 13, 202, 240)}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: var(--bs-secondary);--bs-btn-border-color: var(--bs-secondary);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-secondary) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-secondary) 82%, #000 18%);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-secondary) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-secondary) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb, 108, 117, 125)}.btn-outline-primary{--bs-btn-color: var(--bs-primary);--bs-btn-border-color: var(--bs-primary);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: var(--bs-primary);--bs-btn-hover-border-color: var(--bs-primary);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-primary) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-primary) 75%, #000 25%);--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb, 13, 110, 253)}.pagination{--bs-pagination-color: var(--bs-primary);--bs-pagination-hover-color: color-mix(in srgb, var(--bs-primary) 85%, #000 15%);--bs-pagination-focus-color: var(--bs-primary);--bs-pagination-focus-box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--bs-primary) 25%, transparent);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: var(--bs-primary);--bs-pagination-active-border-color: var(--bs-primary);--bs-pagination-disabled-color: var(--bs-secondary, #6c757d)}.btn-link{text-decoration:none}.btn-link:hover{text-decoration:underline;background-color:transparent;border-color:none}.badge.bg-primary{--bs-badge-color: #fff;--bs-badge-bg: var(--bs-primary)}.nav-pills{--bs-nav-pills-link-active-bg: var(--bs-primary);--bs-nav-pills-link-active-color: #fff}.nav-tabs{--bs-nav-tabs-link-hover-border-color: color-mix(in srgb, var(--bs-primary) 35%, transparent);--bs-nav-tabs-link-active-color: var(--bs-primary);--bs-nav-tabs-link-active-border-color: var(--bs-primary)}.nav-tabs .nav-link{color:var(--bs-secondary)}.nav-tabs .nav-link.active{border-top-color:#1a73e8;border-right-color:#1a73e8;border-bottom-color:transparent;border-left-color:#1a73e8}.tab-view-select-style{display:inline-flex;align-items:center;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border-top:1px solid var(--bs-border-color);border-right:1px solid var(--bs-border-color);border-left:1px solid var(--bs-border-color);border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}.tab-view-select-style:after{display:none}.tab-view-select-style:hover{border-color:var(--bs-secondary-border-subtle)}.tab-view-select-style:focus{border-color:var(--bs-primary);outline:0;box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.25)}.tab-view-select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-primary{--bs-alert-color: var( --bs-primary-text-emphasis, color-mix(in srgb, var(--bs-primary) 35%, #000) );--bs-alert-bg: var(--bs-primary-bg-subtle, color-mix(in srgb, var(--bs-primary) 10%, #fff));--bs-alert-border-color: var( --bs-primary-border-subtle, color-mix(in srgb, var(--bs-primary) 25%, #fff) )}:root{--bs-link-color: var(--bs-primary);--bs-link-hover-color: color-mix(in srgb, var(--bs-primary) 85%, #000 15%)}.form-check{margin-top:.9rem}@keyframes mojo-fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes mojo-slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.mojo-fade-in{animation:mojo-fadeIn var(--mojo-transition-slow) ease-in-out}.mojo-slide-up{animation:mojo-slideUp .4s ease-out}.mojo-spin{animation:mojo-spin 1s linear infinite;display:inline-block}.mojo-pulse{animation:mojo-pulse 2s ease-in-out infinite}.mojo-bounce{animation:mojo-bounce .5s ease-in-out}.bi-spin{animation:mojo-spin 1s linear infinite;display:inline-block}.mojo-text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.mojo-text-truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.mojo-transition-fast{transition:all var(--mojo-transition-fast)}.mojo-transition{transition:all var(--mojo-transition-base)}.mojo-transition-slow{transition:all var(--mojo-transition-slow)}.mojo-transform-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mojo-transform-center-x{position:absolute;left:50%;transform:translate(-50%)}.mojo-transform-center-y{position:absolute;top:50%;transform:translateY(-50%)}.mojo-hover-lift:hover{transform:translateY(-2px);transition:transform var(--mojo-transition-fast)}.mojo-hover-shadow:hover{box-shadow:0 .5rem 1rem #00000026;transition:box-shadow var(--mojo-transition-fast)}.mojo-glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid rgba(255,255,255,.2)}[data-bs-theme=dark] .mojo-glass{background:#0003;border:1px solid rgba(255,255,255,.1)}.mojo-loading{pointer-events:none;opacity:.6;position:relative}.mojo-loading:after{content:"";position:absolute;top:50%;left:50%;width:1rem;height:1rem;margin:-.5rem 0 0 -.5rem;border:2px solid transparent;border-top:2px solid var(--mojo-primary);border-radius:50%;animation:mojo-spin 1s linear infinite;z-index:1}.mojo-focus-ring:focus{outline:none;box-shadow:var(--mojo-focus-shadow)}.mojo-focus-ring:focus-visible{outline:2px solid var(--mojo-focus-color);outline-offset:2px}.fs-7{font-size:.75rem!important}.fs-8{font-size:.6875rem!important}.fs-9{font-size:.625rem!important}.fs-10{font-size:.5625rem!important}@media print{.mojo-print-hide{display:none!important}.mojo-print-show{display:block!important}.mojo-no-print-shadow{box-shadow:none!important}.mojo-no-print-bg{background:#fff!important;color:#000!important}}.mojo-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.mojo-skip-link{position:absolute;top:-40px;left:6px;background:var(--mojo-emphasis-color);color:var(--mojo-body-bg);padding:8px;text-decoration:none;z-index:var(--mojo-zindex-tooltip);border-radius:var(--mojo-border-radius)}.mojo-skip-link:focus{top:6px}@media (prefers-reduced-motion: reduce){.mojo-fade-in,.mojo-slide-up,.mojo-spin,.mojo-pulse,.mojo-bounce,.bi-spin,.mojo-loading:after{animation-duration:.01ms!important;animation-iteration-count:1!important}.mojo-transition-fast,.mojo-transition,.mojo-transition-slow,.mojo-hover-lift:hover,.mojo-hover-shadow:hover{transition:none!important}}@media (prefers-contrast: high){.mojo-glass{background:var(--mojo-body-bg);border:2px solid var(--mojo-border-color);-webkit-backdrop-filter:none;backdrop-filter:none}.mojo-focus-ring:focus,.mojo-focus-ring:focus-visible{outline:3px solid var(--mojo-focus-color);outline-offset:2px;box-shadow:0 0 0 .5rem rgba(var(--mojo-primary-rgb),.5)}}.mojo-app{min-height:100vh;font-family:var(--mojo-font-sans-serif);background-color:var(--mojo-body-bg);color:var(--mojo-body-color)}.mojo-app.mojo-loading{opacity:0}.mojo-app.mojo-ready{opacity:1;transition:opacity var(--mojo-transition-slow)}.mojo-component{position:relative}.mojo-component.mojo-disabled{pointer-events:none;opacity:.6}.mojo-debug *{outline:1px solid red!important}.mojo-debug *:hover{background:#ff00001a!important}.drag-over{border-color:var(--bs-primary)!important;background-color:var(--bs-primary-bg-subtle)!important;transition:all .2s ease}.drag-active{border-style:dashed!important;border-width:2px!important;box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.25)!important}.drag-over.drag-active{transform:scale(1.02);box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.25),0 .5rem 1rem #00000026!important}[data-bs-theme=dark] .drag-over{background-color:rgba(var(--bs-primary-rgb),.15)!important}@media (prefers-reduced-motion: reduce){.drag-over,.drag-active{transition:none!important;transform:none!important}}@media (min-width: 1px){.mojo-debug{display:none}}.mojo-debug-enabled .mojo-debug{display:block!important}.image-field-container{position:relative;display:inline-block;border-radius:.375rem;overflow:hidden}.image-drop-zone{position:relative;border-radius:.375rem;transition:all .2s ease;overflow:hidden}.image-drop-zone.droppable{border:2px dashed var(--bs-border-color)}.image-drop-zone.droppable:hover{border-color:var(--bs-primary);background-color:var(--bs-primary-bg-subtle)}.image-drop-zone.drag-over{border-color:var(--bs-primary)!important;background-color:var(--bs-primary-bg-subtle)!important;transform:scale(1.02)}.image-drop-zone.drag-active{border-color:var(--bs-success)!important;background-color:var(--bs-success-bg-subtle)!important;box-shadow:0 0 0 3px rgba(var(--bs-success-rgb),.25)}.image-field-xs{width:48px;height:48px}.image-field-sm{width:96px;height:96px}.image-field-md{width:150px;height:150px}.image-field-lg{width:200px;height:200px}.image-field-xl{width:300px;height:300px}.image-field-container img{transition:transform .2s ease}.image-field-container:hover img{transform:scale(1.05)}.image-field-container .btn{transition:opacity .2s ease}.image-field-container:not(:hover) .btn{opacity:.6}[data-bs-theme=dark] .image-drop-zone.droppable{border-color:var(--bs-border-color-translucent)}[data-bs-theme=dark] .image-drop-zone.droppable:hover{border-color:var(--bs-primary);background-color:rgba(var(--bs-primary-rgb),.1)}@media (max-width: 576px){.image-field-xl{width:250px;height:250px}.image-field-lg{width:180px;height:180px}}.image-drop-zone:focus{outline:2px solid var(--bs-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){.image-drop-zone,.image-field-container img,.image-field-container .btn{transition:none}.image-drop-zone.drag-over,.image-field-container:hover img{transform:none}}.mojo-form-group{margin-bottom:1rem}.mojo-form-group .h6{color:var(--bs-secondary);font-weight:600;margin-bottom:.75rem;padding-bottom:.25rem;border-bottom:1px solid var(--bs-border-color)}@media (max-width: 767.98px){.mojo-form-group{padding:.75rem;margin-bottom:.75rem}}.mojo-form-control{margin-bottom:1rem;position:relative}.mojo-form-control .form-label{font-weight:500;margin-bottom:.5rem;color:var(--bs-body-color)}.mojo-form-control .form-text{margin-top:.25rem;font-size:.875rem;color:var(--bs-secondary)}.mojo-form-control .invalid-feedback{margin-top:.25rem}.mojo-form-control .form-check{margin-bottom:0}.mojo-form-control .form-check .form-check-label{font-weight:400}.mojo-form-control .image-field-container{margin-top:.5rem}.mojo-form-control input[type=range]{margin-top:.5rem;margin-bottom:.5rem}@media (max-width: 767.98px){.mojo-form-control{margin-bottom:.75rem}.mojo-form-control .form-label{margin-bottom:.375rem}}.mojo-modal-context-menu-btn{color:inherit!important;border:none;background:transparent;opacity:.7;transition:opacity .15s ease-in-out}.mojo-modal-context-menu-btn:hover,.mojo-modal-context-menu-btn:focus{color:inherit!important;background:rgba(var(--bs-emphasis-color-rgb),.1);opacity:1}.mojo-modal-context-menu-btn:active{background:rgba(var(--bs-emphasis-color-rgb),.2)}.modal.modal-info .mojo-modal-context-menu-btn,.modal.modal-success .mojo-modal-context-menu-btn{color:#fff!important}.modal.modal-warning .mojo-modal-context-menu-btn{color:#000!important}.modal.modal-error .mojo-modal-context-menu-btn,.modal.modal-dark .mojo-modal-context-menu-btn,[data-bs-theme=dark] .mojo-modal-context-menu-btn{color:#fff!important}.modal-header .mojo-modal-context-menu-btn{margin-left:auto;margin-right:0}.field-status{display:inline-block;margin-left:8px}.field-status-label-inline{display:inline-block;margin-left:8px;font-size:.875rem;vertical-align:middle}.field-status-overlay{position:absolute;top:50%;right:8px;transform:translateY(-50%);z-index:10;pointer-events:none}.field-status-full-overlay{position:absolute;inset:0;background-color:rgba(var(--bs-body-bg-rgb),.9);display:flex;align-items:center;justify-content:center;z-index:20;border-radius:var(--bs-border-radius)}.field-status-full-overlay .saving-indicator,.field-status-full-overlay .success-indicator,.field-status-full-overlay .error-indicator{display:flex;align-items:center;padding:8px 12px;background-color:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);box-shadow:0 2px 4px #0000001a}.field-status [data-status]{display:none;font-size:1rem;transition:opacity .3s ease,transform .3s ease}.field-status .spinner-border{width:1rem;height:1rem;vertical-align:middle}.field-status [data-status=saved]{color:var(--bs-success)}.field-status [data-status=error]{color:var(--bs-danger);cursor:help}@keyframes mojo-status-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes mojo-status-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@media (max-width: 576px){.field-status{margin-left:4px}.field-status [data-status]{font-size:.875rem}}@media (prefers-contrast: high){.field-status [data-status=saving]{color:#06c}.field-status [data-status=saved]{color:#060}.field-status [data-status=error]{color:#c00}}@media (prefers-reduced-motion: reduce){.field-status [data-status]{transition:none}.field-status [data-status].show,.field-status [data-status].hide{animation:none}@keyframes mojo-status-fade-in{0%,to{opacity:1;transform:scale(1)}}@keyframes mojo-status-fade-out{0%,to{opacity:0;transform:scale(1)}}}.collection-multiselect-view{width:100%}.collection-multiselect-actions{font-size:.8125rem;font-weight:500;letter-spacing:.025em}.collection-multiselect-actions .btn-link{color:var(--bs-primary);transition:all .2s ease}.collection-multiselect-actions .btn-link:hover:not(:disabled){color:var(--bs-primary);transform:translateY(-1px)}.collection-multiselect-actions .btn-link:active:not(:disabled){transform:translateY(0)}.collection-multiselect-actions .btn-link:disabled{opacity:.5;cursor:not-allowed}.collection-multiselect-list{background:var(--bs-body-bg)}.collection-multiselect-item{-webkit-user-select:none;user-select:none;transition:background-color .15s ease-in-out;border-bottom:1px solid transparent}.collection-multiselect-item:not(:last-child){border-bottom-color:var(--bs-border-color)}.collection-multiselect-item.clickable{cursor:pointer}.collection-multiselect-item.clickable:hover{background-color:rgba(var(--bs-primary-rgb),.06)}.collection-multiselect-item.clickable:active{background-color:rgba(var(--bs-primary-rgb),.1)}.collection-multiselect-item i{flex-shrink:0;transition:transform .15s ease}.collection-multiselect-item.clickable:hover i{transform:scale(1.1)}[data-bs-theme=dark] .collection-multiselect-item.clickable:hover{background-color:rgba(var(--bs-primary-rgb),.12)}[data-bs-theme=dark] .collection-multiselect-item.clickable:active{background-color:rgba(var(--bs-primary-rgb),.18)}.collection-multiselect-empty{background:var(--bs-light);border-style:dashed!important}[data-bs-theme=dark] .collection-multiselect-empty{background:var(--bs-gray-900)}.collection-multiselect-list::-webkit-scrollbar{width:6px}.collection-multiselect-list::-webkit-scrollbar-track{background:transparent}.collection-multiselect-list::-webkit-scrollbar-thumb{background:var(--bs-gray-400);border-radius:3px}.collection-multiselect-list::-webkit-scrollbar-thumb:hover{background:var(--bs-gray-500)}[data-bs-theme=dark] .collection-multiselect-list::-webkit-scrollbar-thumb{background:var(--bs-gray-600)}[data-bs-theme=dark] .collection-multiselect-list::-webkit-scrollbar-thumb:hover{background:var(--bs-gray-500)}@keyframes multiselect-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.collection-multiselect-item{animation:multiselect-fade-in .2s ease}@media (prefers-reduced-motion: reduce){.collection-multiselect-item,.collection-multiselect-item i,.collection-multiselect-actions .btn-link{transition:none;animation:none}.collection-multiselect-actions .btn-link:hover:not(:disabled){transform:none}}.tooltip{--mojo-tooltip-bg: var(--bs-dark);--mojo-tooltip-color: #fff;--mojo-tooltip-opacity: .95;--mojo-tooltip-border-radius: .375rem;--mojo-tooltip-font-size: .875rem;--mojo-tooltip-padding-y: .5rem;--mojo-tooltip-padding-x: .75rem;--mojo-tooltip-max-width: 200px;--mojo-tooltip-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);font-size:var(--mojo-tooltip-font-size)}.tooltip .tooltip-inner{max-width:var(--mojo-tooltip-max-width);padding:var(--mojo-tooltip-padding-y) var(--mojo-tooltip-padding-x);background-color:var(--mojo-tooltip-bg);color:var(--mojo-tooltip-color);border-radius:var(--mojo-tooltip-border-radius);opacity:var(--mojo-tooltip-opacity);box-shadow:var(--mojo-tooltip-box-shadow);text-align:left;font-weight:500}[data-bs-theme=dark] .tooltip{--mojo-tooltip-bg: rgba(255, 255, 255, .95);--mojo-tooltip-color: var(--bs-dark);--mojo-tooltip-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .3)}.tooltip .tooltip-arrow:before{border-color:transparent}.tooltip.bs-tooltip-top .tooltip-arrow:before,.tooltip.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--mojo-tooltip-bg)}.tooltip.bs-tooltip-bottom .tooltip-arrow:before,.tooltip.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--mojo-tooltip-bg)}.tooltip.bs-tooltip-start .tooltip-arrow:before,.tooltip.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--mojo-tooltip-bg)}.tooltip.bs-tooltip-end .tooltip-arrow:before,.tooltip.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--mojo-tooltip-bg)}.tooltip-primary .tooltip-inner{--mojo-tooltip-bg: var(--bs-primary);--mojo-tooltip-color: #fff}.tooltip-primary.bs-tooltip-top .tooltip-arrow:before,.tooltip-primary.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-primary)}.tooltip-primary.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-primary.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-primary)}.tooltip-primary.bs-tooltip-start .tooltip-arrow:before,.tooltip-primary.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-primary)}.tooltip-primary.bs-tooltip-end .tooltip-arrow:before,.tooltip-primary.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-primary)}.tooltip-success .tooltip-inner{--mojo-tooltip-bg: var(--bs-success);--mojo-tooltip-color: #fff}.tooltip-success.bs-tooltip-top .tooltip-arrow:before,.tooltip-success.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-success)}.tooltip-success.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-success.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-success)}.tooltip-success.bs-tooltip-start .tooltip-arrow:before,.tooltip-success.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-success)}.tooltip-success.bs-tooltip-end .tooltip-arrow:before,.tooltip-success.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-success)}.tooltip-warning .tooltip-inner{--mojo-tooltip-bg: var(--bs-warning);--mojo-tooltip-color: var(--bs-dark)}.tooltip-warning.bs-tooltip-top .tooltip-arrow:before,.tooltip-warning.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-warning)}.tooltip-warning.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-warning.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-warning)}.tooltip-warning.bs-tooltip-start .tooltip-arrow:before,.tooltip-warning.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-warning)}.tooltip-warning.bs-tooltip-end .tooltip-arrow:before,.tooltip-warning.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-warning)}.tooltip-danger .tooltip-inner{--mojo-tooltip-bg: var(--bs-danger);--mojo-tooltip-color: #fff}.tooltip-danger.bs-tooltip-top .tooltip-arrow:before,.tooltip-danger.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-danger)}.tooltip-danger.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-danger.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-danger)}.tooltip-danger.bs-tooltip-start .tooltip-arrow:before,.tooltip-danger.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-danger)}.tooltip-danger.bs-tooltip-end .tooltip-arrow:before,.tooltip-danger.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-danger)}.tooltip-info .tooltip-inner{--mojo-tooltip-bg: var(--bs-info);--mojo-tooltip-color: #fff}.tooltip-info.bs-tooltip-top .tooltip-arrow:before,.tooltip-info.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-info)}.tooltip-info.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-info.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-info)}.tooltip-info.bs-tooltip-start .tooltip-arrow:before,.tooltip-info.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-info)}.tooltip-info.bs-tooltip-end .tooltip-arrow:before,.tooltip-info.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-info)}.tooltip-light .tooltip-inner{--mojo-tooltip-bg: var(--bs-light);--mojo-tooltip-color: var(--bs-dark);--mojo-tooltip-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15), 0 0 0 1px rgba(0, 0, 0, .05)}.tooltip-light.bs-tooltip-top .tooltip-arrow:before,.tooltip-light.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-light)}.tooltip-light.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-light.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-light)}.tooltip-light.bs-tooltip-start .tooltip-arrow:before,.tooltip-light.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-light)}.tooltip-light.bs-tooltip-end .tooltip-arrow:before,.tooltip-light.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-light)}.tooltip-sm .tooltip-inner{--mojo-tooltip-font-size: .75rem;--mojo-tooltip-padding-y: .25rem;--mojo-tooltip-padding-x: .5rem;--mojo-tooltip-max-width: 150px}.tooltip-lg .tooltip-inner{--mojo-tooltip-font-size: 1rem;--mojo-tooltip-padding-y: .75rem;--mojo-tooltip-padding-x: 1rem;--mojo-tooltip-max-width: 300px}@media (prefers-contrast: high){.tooltip .tooltip-inner{--mojo-tooltip-opacity: 1;border:2px solid currentColor}[data-bs-theme=dark] .tooltip .tooltip-inner{border-color:var(--mojo-tooltip-color)}}@media (prefers-reduced-motion: reduce){.tooltip{transition:none}}.group-search-view .bi-chevron-right{display:none!important}.group-search-view .tree-item-wrapper{display:flex;align-items:center;position:relative}.group-search-view .tree-lines{display:flex;flex-shrink:0;align-self:stretch}.group-search-view .tree-seg{width:24px;position:relative;align-self:stretch}.group-search-view .tree-seg-vert:before{content:"";position:absolute;left:12px;top:0;bottom:0;width:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-vert-end:before{content:"";position:absolute;left:12px;top:0;height:50%;width:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-mid:before{content:"";position:absolute;left:12px;top:0;bottom:0;width:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-mid:after{content:"";position:absolute;left:12px;top:50%;width:12px;height:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-last:before{content:"";position:absolute;left:12px;top:0;height:50%;width:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-last:after{content:"";position:absolute;left:12px;top:50%;width:12px;height:2px;background:var(--bs-border-color)}.group-search-view .tree-item-wrapper.has-children .tree-item-name{font-weight:600}.group-search-view .simple-search-item:hover .tree-item-name{color:var(--bs-primary)}.group-search-view .simple-search-item:hover .tree-item-kind{background:var(--bs-primary);color:#fff}.group-search-view .tree-item-body{min-width:0}.group-search-view .tree-item-content{display:flex;align-items:center;gap:.5rem;padding:.75rem}.group-search-view .tree-item-name{font-weight:500;color:var(--bs-body-color);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-search-view .tree-item-kind{font-size:.75rem;color:var(--bs-secondary);background:var(--bs-secondary-bg);padding:.125rem .5rem;border-radius:.25rem;text-transform:uppercase;font-weight:600;letter-spacing:.025em;flex-shrink:0}.group-search-view .simple-search-item{cursor:pointer;transition:background-color .15s ease}.group-search-view .simple-search-item:hover{background-color:var(--bs-light)}:root{--mojo-sidebar-width: 250px;--mojo-sidebar-collapsed-width: 40px;--mojo-portal-gap: 0;--mojo-portal-bg: var(--bs-body-bg);--mojo-topnav-bg: var(--bs-primary, #121620);--mojo-topnav-color: var(#fff);--mojo-portal-muted: var(--bs-secondary-color);--mojo-portal-border: var(--bs-border-color);--mojo-portal-text: var(--bs-body-color);--mojo-sidebar-dark-color: #fff;--mojo-sidebar-dark-color-hover: #5388d6;--mojo-sidebar-dark-bg: #343a40}.portal-layout{display:flex;min-height:100vh;height:100vh;background:var(--mojo-portal-bg)}#portal-sidebar{flex:0 0 var(--mojo-sidebar-width);max-width:var(--mojo-sidebar-width);inline-size:var(--mojo-sidebar-width);height:100%;overflow-y:hidden;z-index:1;transition:inline-size .3s cubic-bezier(.4,0,.2,1),max-width .3s cubic-bezier(.4,0,.2,1),flex-basis .3s cubic-bezier(.4,0,.2,1),margin-left .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);will-change:inline-size,max-width,flex-basis,transform}.portal-container.collapse-sidebar #portal-sidebar{inline-size:var(--mojo-sidebar-collapsed-width);max-width:var(--mojo-sidebar-collapsed-width);flex-basis:var(--mojo-sidebar-collapsed-width)}.portal-container.hide-sidebar #portal-sidebar{margin-left:calc(-1 * var(--mojo-sidebar-width));border-inline-end:0}#portal-sidebar{box-shadow:4px 0 15px -4px #0003}#portal-sidebar.sidebar-shadow{box-shadow:0 14px 28px #00000040,0 10px 10px #00000038!important}.portal-body{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}#portal-topnav{flex:0 0 auto;border-block-end:1px solid var(--mojo-portal-border)}nav.topnav-light{background-color:var(--bs-light);border-bottom:1px solid var(--bs-border-color);--bs-navbar-color: var(--bs-body-color);--bs-navbar-hover-color: var(--bs-primary)}nav.topnav-light .topnav-sidebar-toggle,nav.topnav-light .nav-link,nav.topnav-light .btn-link{color:var(--bs-navbar-color)}nav.topnav-light .topnav-sidebar-toggle:hover,nav.topnav-light .nav-link:hover,nav.topnav-light .btn-link:hover{color:var(--bs-navbar-hover-color)}nav.topnav-dark{background-color:var(--mojo-sidebar-dark-bg, var(--bs-dark));border-bottom:1px solid var(--bs-border-color-translucent);--bs-navbar-color: rgba(255, 255, 255, .75);--bs-navbar-hover-color: #fff;--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff}nav.topnav-dark .topnav-sidebar-toggle,nav.topnav-dark .nav-link,nav.topnav-dark .btn-link{color:var(--bs-navbar-color)}nav.topnav-dark .topnav-sidebar-toggle:hover,nav.topnav-dark .nav-link:hover,nav.topnav-dark .btn-link:hover{color:var(--bs-navbar-hover-color)}nav.topnav-dark .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}nav.topnav-clean{background-color:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);box-shadow:var(--bs-box-shadow-sm);--bs-navbar-color: var(--bs-body-color);--bs-navbar-hover-color: var(--bs-primary)}nav.topnav-clean .topnav-sidebar-toggle,nav.topnav-clean .nav-link,nav.topnav-clean .btn-link{color:var(--bs-navbar-color)}nav.topnav-clean .topnav-sidebar-toggle:hover,nav.topnav-clean .nav-link:hover,nav.topnav-clean .btn-link:hover{color:var(--bs-navbar-hover-color)}nav.topnav-gradient{background:linear-gradient(90deg,#2c3e50,#34495e);border-bottom:1px solid var(--bs-border-color-translucent);--bs-navbar-color: rgba(255, 255, 255, .75);--bs-navbar-hover-color: #fff;--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff}nav.topnav-gradient .topnav-sidebar-toggle,nav.topnav-gradient .nav-link,nav.topnav-gradient .btn-link{color:var(--bs-navbar-color)}nav.topnav-gradient .topnav-sidebar-toggle:hover,nav.topnav-gradient .nav-link:hover,nav.topnav-gradient .btn-link:hover{color:var(--bs-navbar-hover-color)}nav.topnav-gradient .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}nav.topnav-shadow-light{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}nav.topnav-shadow-dark{box-shadow:0 4px 6px -1px #0006,0 2px 4px -2px #0000004d}.portal-content{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px;height:100%}.portal-content .muted{color:var(--mojo-portal-muted)}@media (prefers-reduced-motion: reduce){#portal-sidebar{transition:none}}.page-header{background-color:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);padding:16px}.portal-content:has([data-container=page-header]){padding:0}[data-container=page-content]{padding:16px}.page-header-content{max-width:100%}.page-header-main{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.page-header-info{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.page-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--bs-primary-bg-subtle);color:var(--bs-primary);border-radius:8px}.page-title-group{flex:1;min-width:0}.page-header .page-title{font-weight:600;margin:0;line-height:1.2;color:var(--bs-heading-color)}.page-header .page-description{margin:.5rem 0 0;line-height:1.5}.page-header-sm .page-icon{width:32px;height:32px;font-size:1rem}.page-header-sm .page-title-group .page-title{font-size:1.25rem}.page-header-sm .page-title-group .page-description{font-size:.875rem}.page-header-md .page-icon{width:40px;height:40px;font-size:1.25rem}.page-header-md .page-title-group .page-title{font-size:1.5rem}.page-header-md .page-title-group .page-description{font-size:.95rem}.page-header-lg .page-icon{width:48px;height:48px;font-size:1.5rem}.page-header-lg .page-title-group .page-title{font-size:1.75rem}.page-header-lg .page-title-group .page-description{font-size:1rem}.page-header-xl .page-icon{width:56px;height:56px;font-size:1.75rem}.page-header-xl .page-title-group .page-title{font-size:2rem}.page-header-xl .page-title-group .page-description{font-size:1.1rem}.page-actions{display:flex;gap:.5rem;flex-shrink:0}.page-header-minimal{padding:.75rem 0}.page-header-minimal .page-title-group .page-title{font-size:1.5rem;font-weight:500}.page-header-breadcrumb .breadcrumb{margin-bottom:.5rem;background-color:transparent;padding:0}@media (max-width: 768px){.page-header-main{flex-direction:column;gap:1rem}.page-actions{width:100%;justify-content:flex-start}.page-header-xl .page-title-group .page-title{font-size:1.75rem}.page-header-lg .page-title-group .page-title{font-size:1.5rem}.page-header-md .page-title-group .page-title{font-size:1.25rem}.page-header-sm .page-title-group .page-title{font-size:1.1rem}}[data-bs-theme=dark] .page-header{border-bottom-color:#ffffff1a}.sidebar{display:flex;flex-direction:column;height:100%;width:100%;min-height:0;transition:all .3s cubic-bezier(.4,0,.2,1)}#portal-sidebar .sidebar{position:static;top:auto;left:auto;height:100%;width:100%;z-index:auto;transform:none}.sidebar-dark{background-color:var(--mojo-sidebar-dark-bg, --bs-dark);color:var(--bs-light);border-inline-end:1px solid var(--bs-border-color-translucent)}.sidebar-light{background-color:var(--bs-light);color:var(--bs-body-color);border-right:1px solid var(--bs-border-color)}.sidebar-clean{background-color:var(--bs-body-bg);color:var(--bs-body-color);border-right:1px solid var(--bs-border-color);box-shadow:var(--bs-box-shadow)}.sidebar-admin{border-left:3px solid #b14545}.sidebar-admin .sidebar-header{color:#b14545}.sidebar-light.sidebar-admin .sidebar-nav .nav-link.active{background-color:#b14545}.sidebar-light.sidebar-admin .nav-link.active.has-children{color:#b14545;background-color:var(--bs-secondary-bg);animation:none}.sidebar-global{border-left:3px solid #457bb1}.sidebar-global .sidebar-header{color:#457bb1}.sidebar-light.sidebar-global .sidebar-nav .nav-link.active{background-color:#457bb1}.sidebar-light.sidebar-global .nav-link.active.has-children{color:#457bb1;background-color:var(--bs-secondary-bg);animation:none}.sidebar-gradient{background:linear-gradient(180deg,#2c3e50,#34495e);color:var(--bs-light);border-inline-end:1px solid var(--bs-border-color-translucent)}.sidebar-clean{--mojo-sidebar-width: 220px}.sidebar-container{display:flex;flex-direction:column;height:100%;min-height:0;flex:1}.sidebar-body{flex:1;overflow-y:auto;min-height:0}.sidebar-brand{height:56px;text-align:center;padding-top:14px}.sidebar-dark .sidebar-brand{border-bottom:1px solid var(--bs-border-color-translucent)}.sidebar-light .sidebar-brand{border-bottom:1px solid var(--bs-border-color)}.sidebar-clean .sidebar-brand{border-bottom:1px solid var(--bs-border-color);background-color:var(--bs-secondary-bg)}.sidebar-gradient .sidebar-brand{border-bottom:1px solid var(--bs-border-color-translucent)}.sidebar-brand.clickable{cursor:pointer;transition:background-color .2s ease}.sidebar-brand.clickable:hover{background-color:#ffffff1a}.sidebar-toggle{position:absolute;width:30px;height:30px;font-size:.875rem;background:none;top:.75rem;right:5px;border:none;border-radius:var(--bs-border-radius);color:var(--bs-body-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1),transform .15s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10}.sidebar-toggle:hover{background:var(--bs-secondary-bg);transform:scale(1.1);box-shadow:0 4px 12px #00000026}.sidebar-toggle:active{transform:scale(.95);transition-duration:.1s}.sidebar-toggle .toggle-icon{transition:all .3s cubic-bezier(.4,0,.2,1)}.sidebar-toggle .bi-chevron-left{display:block}.sidebar-toggle .bi-chevron-right,.portal-container.collapse-sidebar .sidebar-toggle .bi-chevron-left{display:none}.portal-container.collapse-sidebar .sidebar-toggle .bi-chevron-right{display:block}.portal-container.hide-sidebar .sidebar-toggle{opacity:0;visibility:hidden;pointer-events:none}.sidebar-dark .sidebar-toggle,.sidebar-gradient .sidebar-toggle{background:var(--bs-border-color-translucent);color:var(--bs-secondary-color);border-color:var(--bs-border-color-translucent)}.sidebar-dark .sidebar-toggle:hover,.sidebar-gradient .sidebar-toggle:hover{background:var(--bs-secondary-bg);color:var(--bs-light)}.sidebar-light .sidebar-toggle{background:var(--bs-secondary-bg);color:var(--bs-body-color);border-color:var(--bs-border-color)}.sidebar-light .sidebar-toggle:hover{background:var(--bs-tertiary-bg);color:var(--bs-emphasis-color)}.sidebar-clean .sidebar-toggle{background:var(--bs-light);color:var(--bs-primary);border-color:var(--bs-primary-border-subtle);box-shadow:var(--bs-box-shadow-sm)}.sidebar-clean .sidebar-toggle:hover{background:var(--bs-primary);color:#fff;box-shadow:0 4px 12px rgba(var(--bs-primary-rgb),.3)}.sidebar-toggle .toggle-icon{transform:rotate(0)}.topnav-sidebar-toggle{background:none!important;border:none!important;color:#ffffffe6;padding:.5rem;border-radius:.375rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.topnav-sidebar-toggle:hover{background:none!important;color:var(--bs-light);transform:scale(1.1)}.topnav-sidebar-toggle:focus{outline:none;box-shadow:none}.topnav-sidebar-toggle .toggle-chevron{font-size:1.1rem;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:rotate(180deg)}.portal-container.collapse-sidebar .topnav-sidebar-toggle .toggle-chevron,.portal-container.hide-sidebar .topnav-sidebar-toggle .toggle-chevron{transform:rotate(0)}.navbar-dark .topnav-sidebar-toggle{color:#ccc}.navbar-dark .topnav-sidebar-toggle:hover{color:#fff;background:none!important}.navbar-light .topnav-sidebar-toggle{color:var(--bs-navbar-light-color)}.navbar-light .topnav-sidebar-toggle:hover{color:var(--bs-navbar-light-hover-color);background:var(--bs-secondary-bg)!important}@keyframes sidebar-toggle-pulse{0%{box-shadow:0 0 rgba(var(--bs-primary-rgb),.4)}70%{box-shadow:0 0 0 8px rgba(var(--bs-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--bs-primary-rgb),0)}}.sidebar-toggle.pulse{animation:sidebar-toggle-pulse 2s infinite}.sidebar-toggle:focus{outline:none;box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.25)}.sidebar-toggle:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}[data-bs-theme=dark] .sidebar-toggle{background:#ffffff1a;color:var(--bs-light);border-color:#ffffff26}[data-bs-theme=dark] .sidebar-toggle:hover{background:#fff3;color:var(--bs-white);box-shadow:0 4px 12px #ffffff1a}[data-bs-theme=dark] .sidebar-clean .sidebar-toggle{background:var(--bs-primary);color:#fff;border-color:var(--bs-primary)}[data-bs-theme=dark] .sidebar-clean .sidebar-toggle:hover{background:var(--bs-primary);filter:brightness(1.1)}.brand-content{display:flex;flex-direction:column;align-items:center}.brand-logo{max-height:32px;width:auto;margin-bottom:.5rem}.brand-subtext{font-size:.75rem}.sidebar-group-header{cursor:pointer;border-bottom:1px solid rgba(0,0,0,.1)}.sidebar-dark .sidebar-group-header{background-color:var(--bs-dark)}.sidebar-light .sidebar-group-header{background-color:#dfe5ea}.sidebar-group-header:hover{cursor:pointer;color:var(--mojo-primary);background-color:#1414641a}.sidebar-nav{display:flex;flex-direction:column;padding:.5rem 0;min-height:100%}.sidebar-nav .nav-link{display:flex;align-items:center;position:relative;padding:.75rem 1rem;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1),transform .15s ease-out;cursor:pointer;transform:translate(0);border-radius:8px 0 0 8px;margin-left:.2rem}.sidebar-nav .nav-link:hover{margin-left:.4rem!important}.sidebar-nav .nav-link i{width:20px;text-align:center;transition:transform .2s ease-out,color .2s ease-out}.sidebar-nav .nav-link:hover i{transform:scale(1.1)}.portal-container.collapse-sidebar .sidebar-nav .nav-link:hover i{transform:scale(1.2)}.sidebar-nav .collapse .nav-link{padding:.5rem 1rem;font-size:.9rem}.sidebar-nav .bi-chevron-down{transition:transform .3s}.sidebar-nav .nav-link[aria-expanded=true] .bi-chevron-down{transform:rotate(180deg)}.sidebar-dark .sidebar-nav .nav-link{color:var(--mojo-sidebar-dark-color, #fff)}.sidebar-dark .sidebar-nav .nav-link:hover{color:var(--mojo-sidebar-dark-color-hover, #5388d6);background-color:var(--bs-secondary-bg)}.sidebar-dark .sidebar-nav .nav-link.active{color:var(--bs-light);background-color:var(--bs-primary)}.sidebar-light .sidebar-nav .nav-link{color:var(--bs-body-color)}.sidebar-light .sidebar-nav .nav-link:hover{color:var(--bs-emphasis-color);background-color:var(--bs-secondary-bg)}.sidebar-light .sidebar-nav .nav-link.active{color:var(--bs-light);background-color:var(--bs-primary)}.sidebar-clean .sidebar-nav .nav-link{color:var(--bs-secondary-color)}.sidebar-clean .sidebar-nav .nav-link:hover{color:var(--bs-body-color);background-color:var(--bs-secondary-bg)}.sidebar-clean .sidebar-nav .nav-link.active{color:var(--bs-primary);background-color:var(--bs-primary-bg-subtle);font-weight:500}.sidebar-gradient .sidebar-nav .nav-link{color:var(--bs-light)}.sidebar-gradient .sidebar-nav .nav-link:hover{color:var(--bs-white);background-color:#ffffff1a}.sidebar-gradient .sidebar-nav .nav-link.active{color:var(--bs-white);background-color:var(--bs-primary)}.sidebar-nav .nav-link.has-children{border-top-left-radius:0;border-bottom-left-radius:0}.sidebar-nav .nav-link.has-children:hover{transform:none}.sidebar-nav .nav-link.has-children.collapsed{border-left:none}.sidebar-light .nav-link.active.has-children,.sidebar-clean .nav-link.active.has-children{color:var(--bs-body-color);background-color:var(--bs-secondary-bg);animation:none}.sidebar-dark .nav-link.active.has-children,.sidebar-gradient .nav-link.active.has-children{color:var(--bs-light);background-color:#0003;animation:none}.nav-text{flex:1;white-space:nowrap;transition:opacity .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1)}.nav-arrow{transition:transform .2s ease,opacity .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1);margin-left:auto}.nav-link[aria-expanded=true] .nav-arrow{transform:rotate(180deg)}.portal-container.collapse-sidebar .nav-text,.portal-container.collapse-sidebar .sidebar-collapse-hide{opacity:0;width:0;margin-right:0;overflow:hidden}.portal-container.collapse-sidebar .collapsed-hidden{opacity:0;width:0;overflow:hidden;display:none}.portal-container.collapse-sidebar .sidebar-nav .nav-link{justify-content:center;padding-left:.5rem;padding-right:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.portal-container.collapse-sidebar .sidebar-nav .nav-link i{margin-right:0!important}.portal-container.collapse-sidebar .nav-submenu{display:none!important}.portal-container.collapse-sidebar .sidebar-header{text-align:center;overflow:hidden}.portal-container.collapse-sidebar .nav-arrow{opacity:0;margin-left:0}.portal-container.collapse-sidebar .sidebar .nav-link{position:relative;overflow:visible;width:var(--mojo-sidebar-collapsed-width, 48px)}@keyframes tooltip-slide-in{0%{opacity:0;visibility:hidden;transform:translateY(-50%) translate(-10px) scale(.9)}to{opacity:1;visibility:visible;transform:translateY(-50%) translate(0) scale(1)}}@keyframes tooltip-arrow-slide-in{0%{opacity:0;transform:translateY(-50%) translate(-3px)}to{opacity:1;transform:translateY(-50%) translate(0)}}[data-bs-theme=dark] .portal-container.collapse-sidebar .sidebar .nav-link:hover:after{background:var(--bs-light);color:var(--bs-dark)}[data-bs-theme=dark] .portal-container.collapse-sidebar .sidebar .nav-link:hover:before{border-right-color:var(--bs-light)}.portal-container.mobile-layout .nav-link:hover:after,.portal-container.mobile-layout .nav-link:hover:before{display:none!important}.portal-container.collapse-sidebar .sidebar .nav-link:hover{background-color:rgba(var(--bs-primary-rgb),.1);border-radius:var(--mojo-border-radius);transform:translate(0) scale(1.05);box-shadow:0 2px 8px #0000001a}.portal-container.collapse-sidebar .sidebar-light .nav-link:hover{background-color:rgba(var(--bs-primary-rgb),.08);box-shadow:0 2px 8px rgba(var(--bs-primary-rgb),.2)}.portal-container.collapse-sidebar .sidebar-dark .nav-link:hover{background-color:#ffffff1a;box-shadow:0 2px 8px #ffffff1a}.portal-container.collapse-sidebar .sidebar-clean .nav-link:hover{background-color:var(--bs-light);box-shadow:0 2px 8px rgba(var(--bs-primary-rgb),.15)}.nav-submenu .nav-link{padding-left:2.5rem;font-size:.9rem}.nav-submenu{margin-left:1.8rem}.sidebar-dark .nav-submenu,.sidebar-gradient .nav-submenu{border-left:4px solid rgba(255,255,255,.2)}.sidebar-light .nav-submenu{border-left:4px solid #cdcdcd}.sidebar-clean .nav-submenu{border-left:4px solid var(--bs-border-color)}.nav-divider{margin:.75rem 0;padding:0 1rem}.nav-divider-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.25rem 0;display:block}.sidebar-dark .nav-divider-label,.sidebar-gradient .nav-divider-label{color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color-translucent)}.sidebar-light .nav-divider-label{color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color)}.sidebar-clean .nav-divider-label{color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color);margin:0 .5rem}.nav-divider-item{margin:.25rem 0;padding:0;list-style:none}.nav-divider-line{margin:0 1rem;border:0;border-top:1px solid;opacity:.25}.sidebar-dark .nav-divider-line,.sidebar-gradient .nav-divider-line,.sidebar-light .nav-divider-line{border-color:var(--bs-secondary-color)}.sidebar-clean .nav-divider-line{border-color:var(--bs-border-color);margin:0 1.5rem}.nav-spacer-item{flex:1;list-style:none}.nav-section{margin-bottom:.5rem}.nav-section-header{padding:.5rem 1rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.nav-section-header.collapsible{cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:color .2s ease}.sidebar-dark .nav-section-header,.sidebar-gradient .nav-section-header{color:var(--bs-secondary-color)}.sidebar-dark .nav-section-header.collapsible:hover,.sidebar-gradient .nav-section-header.collapsible:hover{color:var(--bs-light)}.sidebar-light .nav-section-header{color:var(--bs-secondary-color)}.sidebar-light .nav-section-header.collapsible:hover{color:var(--bs-body-color)}.sidebar-clean .nav-section-header{color:var(--bs-secondary-color);margin:0 .5rem}.sidebar-clean .nav-section-header.collapsible:hover{color:var(--bs-body-color)}.nav-section-items{padding-left:0}.sidebar-nav .badge{font-size:.7rem;padding:.25rem .5rem}.sidebar-footer{flex-shrink:0;margin-top:auto}.footer-content{padding:1rem;font-size:.85rem}.sidebar-dark .sidebar-footer,.sidebar-gradient .sidebar-footer{border-top:1px solid var(--bs-border-color-translucent)}.sidebar-dark .footer-content,.sidebar-gradient .footer-content{color:var(--bs-secondary-color)}.sidebar-light .sidebar-footer{border-top:1px solid var(--bs-border-color)}.sidebar-light .footer-content{color:var(--bs-secondary-color)}.sidebar-clean .sidebar-footer{border-top:1px solid var(--bs-border-color);background-color:var(--bs-secondary-bg)}.sidebar-clean .footer-content{color:var(--bs-secondary-color)}.config-switcher{position:absolute;top:8px;right:8px}.config-menu{position:absolute;inset:0;background-color:rgba(var(--bs-dark-rgb),.95);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1050;padding:1rem}.config-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--bs-border-color-translucent)}.config-menu-body{display:flex;flex-direction:column;gap:.5rem}.config-option{padding:.75rem;border:1px solid var(--bs-border-color-translucent);border-radius:var(--bs-border-radius);background-color:var(--bs-secondary-bg);cursor:pointer;transition:all .2s ease}.config-option:hover{background-color:var(--bs-tertiary-bg);border-color:var(--bs-border-color)}.config-option.active{background-color:var(--bs-primary-bg-subtle);border-color:var(--bs-primary)}.config-name{font-weight:500;color:var(--bs-body-color)}.group-selector-container{padding:.75rem}.group-selector-wrapper{position:relative;width:100%}.group-selector{position:relative}.group-selector.disabled{opacity:.6;pointer-events:none}.group-selector .input-group-text{background-color:var(--bs-secondary-bg);border-color:var(--bs-border-color);color:var(--bs-secondary-color)}.group-selector .form-control{background-color:var(--bs-tertiary-bg);border-color:var(--bs-border-color);color:var(--bs-body-color)}.group-selector .form-control:focus{background-color:var(--bs-tertiary-bg);border-color:var(--bs-primary);color:var(--bs-body-color);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.25)}.group-selector .form-control::placeholder{color:var(--bs-secondary-color)}.group-selector .dropdown-toggle{background-color:var(--bs-secondary-bg);border-color:var(--bs-border-color);color:var(--bs-secondary-color)}.group-selector .dropdown-toggle:hover,.group-selector .dropdown-toggle:focus{background-color:var(--bs-tertiary-bg);border-color:var(--bs-border-color);color:var(--bs-body-color)}.dropdown-arrow{transition:transform .2s ease}.group-selector .dropdown-toggle[aria-expanded=true] .dropdown-arrow{transform:rotate(180deg)}.group-dropdown{position:absolute;top:100%;left:0;right:0;background-color:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-top:none;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius);max-height:400px;overflow-y:auto;z-index:1050;box-shadow:var(--bs-box-shadow-lg);opacity:0;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease;display:none}.group-dropdown.show{display:block;opacity:1;transform:translateY(0)}.group-dropdown .dropdown-header{padding:.75rem 1rem;background-color:var(--bs-secondary-bg);border-bottom:1px solid var(--bs-border-color);color:var(--bs-secondary-color);font-size:.875rem}.group-results{max-height:300px;overflow-y:auto}.group-item{padding:0;border-bottom:1px solid var(--bs-border-color-translucent);cursor:pointer;transition:background-color .2s ease}.group-item:hover,.group-item.focused{background-color:var(--bs-secondary-bg)}.group-item.selected{background-color:var(--bs-primary-bg-subtle);border-left:3px solid var(--bs-primary)}.group-item.selected:hover{background-color:var(--bs-primary-bg-subtle)}.group-content{padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.group-main{flex:1;min-width:0}.group-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.group-name{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;margin-bottom:.25rem}.group-hierarchy{color:var(--bs-secondary-color);font-size:.85rem;font-weight:400}.group-name-text{color:var(--bs-body-color);font-weight:500}.group-type{font-size:.7rem;padding:.25rem .5rem}.group-description{color:var(--bs-secondary-color);font-size:.85rem;line-height:1.3;margin-top:.25rem}.group-item mark{background-color:var(--bs-warning-bg-subtle);color:var(--bs-body-color);padding:0;border-radius:var(--bs-border-radius-sm)}.group-member-count{display:flex;align-items:center;color:var(--bs-secondary-color);font-size:.8rem}.group-status{display:flex;align-items:center}.status-indicator{width:8px;height:8px;border-radius:50%;display:inline-block}.status-indicator.status-active{background-color:var(--bs-success)}.status-indicator.status-inactive{background-color:var(--bs-secondary)}.status-indicator.status-archived{background-color:var(--bs-danger)}.status-indicator.status-pending{background-color:var(--bs-warning)}.group-dropdown .dropdown-item-text{color:var(--bs-secondary-color);padding:1rem}.group-dropdown .dropdown-divider{border-top:1px solid var(--bs-border-color);margin:.5rem 0}.selected-group-display{animation:fadeInUp .3s ease}.selected-group-card{background-color:var(--bs-primary-bg-subtle);border:1px solid var(--bs-primary-border-subtle);border-radius:var(--bs-border-radius);padding:.75rem}.selected-group-icon{flex-shrink:0}.selected-group-info{min-width:0}.selected-group-name{color:var(--bs-body-color);margin-bottom:.25rem}.selected-group-desc{color:var(--bs-secondary-color);line-height:1.3}.selected-group-actions{flex-shrink:0}.group-dropdown::-webkit-scrollbar,.group-results::-webkit-scrollbar{width:6px}.group-dropdown::-webkit-scrollbar-track,.group-results::-webkit-scrollbar-track{background:var(--bs-secondary-bg)}.group-dropdown::-webkit-scrollbar-thumb,.group-results::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:var(--bs-border-radius-sm)}.group-dropdown::-webkit-scrollbar-thumb:hover,.group-results::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}.context-menu-view.header-menu{margin-top:-.6rem}.context-menu-view.header-menu-absolute{top:1rem;right:1rem}.portal-container.mobile-layout #portal-sidebar{position:fixed!important;inset:0;width:100vw;height:100vh;z-index:var(--mojo-zindex-modal);transform:translate(0);transition:transform .35s cubic-bezier(.4,0,.2,1);box-shadow:0 0 20px #0000004d}.portal-container.mobile-layout #portal-sidebar .sidebar{height:100vh;width:100%}.portal-container.mobile-layout #portal-sidebar .sidebar-container{height:100%}.portal-container.mobile-layout.hide-sidebar #portal-sidebar{transform:translate(-100%);box-shadow:0 0 20px #0000}.portal-container.mobile-layout #portal-sidebar,.portal-container.mobile-layout.collapse-sidebar #portal-sidebar{inline-size:100vw!important;max-width:100vw!important;flex-basis:100vw!important}.portal-container.mobile-layout .nav-text,.portal-container.mobile-layout.collapse-sidebar .nav-text{opacity:1!important;width:auto!important;overflow:visible!important}.portal-container.mobile-layout .nav-arrow,.portal-container.mobile-layout.collapse-sidebar .nav-arrow{opacity:1!important}.portal-container.mobile-layout .sidebar-nav .nav-link,.portal-container.mobile-layout.collapse-sidebar .sidebar-nav .nav-link{justify-content:flex-start!important;padding:1rem!important;font-size:1rem}.portal-container.mobile-layout .nav-submenu,.portal-container.mobile-layout.collapse-sidebar .nav-submenu{display:block!important}.portal-container.mobile-layout .sidebar-toggle{display:none}.portal-container.mobile-layout .group-selector-container,.portal-container.mobile-layout .config-menu{padding:.5rem}.portal-container.mobile-layout .selected-group-card{padding:1rem}.portal-container.mobile-layout .group-dropdown{max-height:300px;left:-5px;right:-5px;border-radius:.5rem;border:1px solid #495057;box-shadow:0 1rem 3rem #0000004d}.portal-container.mobile-layout .group-content{padding:1rem .75rem;flex-direction:column;align-items:stretch;gap:.5rem}.portal-container.mobile-layout .group-meta{flex-direction:row;justify-content:space-between;align-items:center}.portal-sidebar-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:calc(var(--mojo-zindex-modal) - 1);opacity:0;visibility:hidden;transition:opacity .35s cubic-bezier(.4,0,.2,1),visibility .35s cubic-bezier(.4,0,.2,1),backdrop-filter .35s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}.portal-container.mobile-layout:not(.hide-sidebar) .portal-sidebar-backdrop{opacity:1;visibility:visible;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.portal-container #portal-sidebar,.sidebar-nav .nav-link,.nav-text,.nav-arrow,.sidebar-header,.sidebar-footer,.sidebar-header .fs-5{transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sidebar-nav .nav-item:nth-child(1) .nav-link{transition-delay:0ms}.sidebar-nav .nav-item:nth-child(2) .nav-link{transition-delay:20ms}.sidebar-nav .nav-item:nth-child(3) .nav-link{transition-delay:40ms}.sidebar-nav .nav-item:nth-child(4) .nav-link{transition-delay:60ms}.sidebar-nav .nav-item:nth-child(5) .nav-link{transition-delay:80ms}.sidebar-nav .nav-item:nth-child(6) .nav-link{transition-delay:.1s}.sidebar-nav .nav-item:nth-child(7) .nav-link{transition-delay:.12s}.sidebar-nav .nav-item:nth-child(8) .nav-link{transition-delay:.14s}[data-bs-theme=dark] .group-dropdown{background-color:var(--bs-body-bg);border-color:var(--bs-border-color)}[data-bs-theme=dark] .config-menu{background-color:rgba(var(--bs-dark-rgb),.95)}[data-bs-theme=dark] .config-option{background-color:var(--bs-secondary-bg);border-color:var(--bs-border-color)}[data-bs-theme=dark] .group-selector .form-control{background-color:var(--bs-tertiary-bg);border-color:var(--bs-border-color);color:var(--bs-body-color)}[data-bs-theme=dark] .group-selector .input-group-text{background-color:var(--bs-secondary-bg);border-color:var(--bs-border-color);color:var(--bs-secondary-color)}[data-bs-theme=dark] .group-item:hover,[data-bs-theme=dark] .group-item.focused{background-color:var(--bs-secondary-bg)}[data-bs-theme=dark] .selected-group-card{background-color:var(--bs-primary-bg-subtle);border-color:var(--bs-primary-border-subtle)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.group-item:focus{outline:2px solid #0d6efd;outline-offset:-2px}@media (prefers-contrast: high){.group-dropdown{border-width:2px;border-color:#fff}.group-item.selected{border-left-width:4px}.status-indicator{border:1px solid #fff}}@media (prefers-reduced-motion: reduce){.group-dropdown,.dropdown-arrow{transition:none}.selected-group-display{animation:none}.portal-container #portal-sidebar,.sidebar-nav .nav-link,.nav-text,.nav-arrow,.sidebar-header,.sidebar-footer,.sidebar-header .fs-5{transition:none!important;animation:none!important}.sidebar-nav .nav-link i{transition:none!important}.sidebar-nav .nav-link:hover,.portal-container.collapse-sidebar .sidebar .nav-link:hover{transform:none!important;box-shadow:none!important}.portal-sidebar-backdrop{transition:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.sidebar-nav .nav-item:nth-child(n) .nav-link{transition-delay:0ms!important}.portal-container:not(.collapse-sidebar) #portal-sidebar{animation:none!important}.sidebar-nav .nav-link.active{animation:none!important}.nav-link[data-bs-toggle=collapse] .bi-chevron-down{transition:none!important}.nav-link[aria-expanded=true] .bi-chevron-down{transform:rotate(180deg)!important}.portal-container.collapse-sidebar .sidebar .nav-link:hover:after,[data-bs-theme=dark] .portal-container.collapse-sidebar .sidebar .nav-link:hover:after,.portal-container.collapse-sidebar .sidebar .nav-link:hover:before{animation:none!important;transition:none!important;opacity:1!important;visibility:visible!important;transform:translateY(-50%) translate(0)!important}.sidebar-toggle,.sidebar-toggle .toggle-icon{transition:none!important;animation:none!important}.sidebar-toggle:hover{transform:none!important}}.mojo-sidebar-force-open .portal-container{--mojo-sidebar-width: 250px !important}.mojo-sidebar-force-open #portal-sidebar{inline-size:var(--mojo-sidebar-width)!important;max-width:var(--mojo-sidebar-width)!important;flex-basis:var(--mojo-sidebar-width)!important}.mojo-sidebar-force-collapsed .portal-container{--mojo-sidebar-width: var(--mojo-sidebar-collapsed-width) !important}.mojo-sidebar-force-collapsed #portal-sidebar{inline-size:var(--mojo-sidebar-collapsed-width)!important;max-width:var(--mojo-sidebar-collapsed-width)!important;flex-basis:var(--mojo-sidebar-collapsed-width)!important}.mojo-sidebar-force-hidden #portal-sidebar{inline-size:0!important;max-width:0!important;flex-basis:0!important;overflow:hidden!important}.mojo-sidebar-no-transition #portal-sidebar,.mojo-sidebar-no-transition .sidebar-nav .nav-link,.mojo-sidebar-no-transition .nav-text,.mojo-sidebar-no-transition .nav-arrow{transition:none!important}.portal-container.sidebar-opening #portal-sidebar{transition-duration:.35s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.portal-container.sidebar-closing #portal-sidebar{transition-duration:.25s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.portal-container:not(.collapse-sidebar) #portal-sidebar{animation:sidebar-expand .4s cubic-bezier(.34,1.56,.64,1)}@keyframes sidebar-expand{0%{transform:scale(.98) translate(-2px);opacity:.9}60%{transform:scale(1.01) translate(1px)}to{transform:scale(1) translate(0);opacity:1}}@keyframes nav-pulse{0%{box-shadow:0 0 rgba(var(--bs-primary-rgb),.4)}70%{box-shadow:0 0 0 6px rgba(var(--bs-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--bs-primary-rgb),0)}}.sidebar-nav .nav-link.active{animation:nav-pulse 2s infinite}.nav-link[data-bs-toggle=collapse] .bi-chevron-down{transition:transform .25s cubic-bezier(.4,0,.2,1)}.nav-link[aria-expanded=true] .bi-chevron-down{transform:rotate(180deg) scale(1.1)}.mojo-sidebar-theme-auto .sidebar{background-color:var(--bs-body-bg);color:var(--bs-body-color);border-right:1px solid var(--bs-border-color)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link{color:var(--bs-body-color)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link:hover{background-color:var(--bs-secondary-bg)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link.active{background-color:var(--bs-primary);color:var(--bs-white)}.mojo-sidebar-collapsed .nav-text,.mojo-sidebar-collapsed .nav-arrow{opacity:0;width:0;overflow:hidden}.mojo-sidebar-collapsed .sidebar-nav .nav-link{justify-content:center;padding-left:.5rem;padding-right:.5rem}.mojo-sidebar-collapsed .nav-submenu{display:none!important}.mojo-portal-fixed .portal-layout{position:fixed;inset:0;z-index:var(--mojo-zindex-fixed)}.mojo-portal-sticky-sidebar #portal-sidebar{position:sticky;top:0;height:100vh}.mojo-portal-content-padded .portal-content{padding:var(--mojo-spacer-lg)}.mojo-portal-content-flush .portal-content,.mobile-layout .portal-content{padding:0}.mojo-sidebar-slide #portal-sidebar{transition:transform var(--mojo-transition-base) ease-in-out}.mojo-sidebar-fade #portal-sidebar{transition:opacity var(--mojo-transition-base) ease-in-out}.mojo-sidebar-scale #portal-sidebar{transition:transform var(--mojo-transition-base) cubic-bezier(.34,1.56,.64,1)}.js-sidebar-transitioning *{pointer-events:none}.js-sidebar-ready{transition:all var(--mojo-transition-base)}@media (prefers-color-scheme: dark){.mojo-sidebar-theme-auto .sidebar{background-color:var(--bs-dark);color:var(--bs-light);border-right:1px solid var(--bs-gray-800)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link{color:var(--bs-gray-300)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link:hover{background-color:#ffffff1a;color:var(--bs-white)}}.mojo-sidebar-collapsed .nav-link:focus-visible{outline:2px solid var(--bs-primary);outline-offset:-2px;z-index:1}.mojo-skip-to-content{position:absolute;top:-40px;left:6px;background:var(--bs-primary);color:#fff;padding:8px;text-decoration:none;z-index:var(--mojo-zindex-tooltip);border-radius:var(--mojo-border-radius);font-size:.875rem}.mojo-skip-to-content:focus{top:6px}.portal-container.mobile-layout:not(.hide-sidebar){overflow:hidden}.portal-container.mobile-layout:not(.hide-sidebar) .portal-body{pointer-events:none}.group-selection-sidebar{background:#fff;border-right:1px solid var(--bs-border-color)}.group-selection-sidebar .form-control-sm{font-size:.875rem}.group-item{cursor:pointer;transition:all .2s ease;border-bottom:1px solid rgba(0,0,0,.05);position:relative}.group-item:last-child{border-bottom:none}.group-item:hover{background-color:#f8f9fa!important;border-left:3px solid var(--bs-primary)}.group-item:active{background-color:#e9ecef!important;transform:translate(1px)}.group-item .bi-chevron-right{opacity:0;transition:opacity .2s ease}.group-item:hover .bi-chevron-right{opacity:1}.group-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(0,0,0,.1)}.group-header .cursor-pointer{cursor:pointer;padding:.5rem;border-radius:.375rem;transition:all .2s ease}.group-header .cursor-pointer:hover{background-color:#f8f9fa!important}.group-header .bi-chevron-down{transition:transform .2s ease}.group-header .cursor-pointer:hover .bi-chevron-down{transform:rotate(180deg)}.sidebar-dark .group-selection-sidebar{background:#2c3e50;border-right-color:#34495e}.sidebar-dark .group-item{border-bottom-color:#ffffff0d}.sidebar-dark .group-item:hover{background-color:#34495e!important}.sidebar-dark .group-item:active{background-color:#3d566e!important}.sidebar-dark .group-header{border-bottom-color:#ffffff1a}.sidebar-dark .group-header .cursor-pointer:hover{background-color:#34495e!important}.sidebar-dark .text-muted{color:#a9d0f6bf!important}.group-selection-sidebar .spinner-border-sm{width:1rem;height:1rem}.group-selection-sidebar .text-center{color:var(--bs-secondary)}.group-selection-sidebar .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.25)}.group-selection-sidebar .bi-inbox,.group-selection-sidebar .bi-search{color:var(--bs-secondary)}.group-selection-sidebar .bg-light{background-color:#00000005!important}.sidebar-dark .group-selection-sidebar .bg-light{background-color:#ffffff05!important}.group-selection-sidebar .text-decoration-none:hover{color:var(--bs-primary)!important}.sidebar-parent-bar{padding:8px 20px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease}.parent-info{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:500}.parent-label{text-transform:uppercase;letter-spacing:.5px;font-size:9px;opacity:.5}.parent-name{font-weight:600}.parent-expand{font-size:10px}.sidebar-selected-group-row{padding:14px 20px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between;gap:10px}.selected-group-info{flex:1;min-width:0}.selected-group-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.selected-group-meta{display:flex;align-items:center;gap:8px;margin-top:2px}.selected-group-kind{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.selected-group-chevron{font-size:14px;transition:all .2s ease;padding:4px}.sidebar-dark .sidebar-parent-bar{background:#00000040;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-dark .sidebar-parent-bar:hover{background:#0000004d}.sidebar-dark .parent-info{color:#fff9}.sidebar-dark .sidebar-parent-bar:hover .parent-info{color:#fffc}.sidebar-dark .parent-expand{color:#fff6}.sidebar-dark .sidebar-selected-group-row{border-bottom:2px solid rgba(52,177,176,.3)}.sidebar-dark .sidebar-selected-group-row:hover{background:#ffffff0d}.sidebar-dark .selected-group-name{color:#fff}.sidebar-dark .selected-group-kind{background:#34b1b040;color:#5dd4d3}.sidebar-dark .selected-group-chevron{color:#ffffff80}.sidebar-dark .sidebar-selected-group-row:hover .selected-group-chevron{color:#ffffffe6;transform:scale(1.1)}.sidebar-light .sidebar-parent-bar{background:#0000000a;border-bottom:1px solid rgba(0,0,0,.08)}.sidebar-light .sidebar-parent-bar:hover{background:#0000000f}.sidebar-light .parent-info{color:#0009}.sidebar-light .sidebar-parent-bar:hover .parent-info{color:#000c}.sidebar-light .parent-expand{color:#0006}.sidebar-light .sidebar-selected-group-row{border-bottom:2px solid rgba(13,110,253,.3)}.sidebar-light .sidebar-selected-group-row:hover{background:#00000008}.sidebar-light .selected-group-name{color:#212529}.sidebar-light .selected-group-kind{background:#0d6efd26;color:#0a58ca}.sidebar-light .selected-group-chevron{color:#00000080}.sidebar-light .sidebar-selected-group-row:hover .selected-group-chevron{color:#000c;transform:scale(1.1)}.sidebar-clean .sidebar-parent-bar{background:#00000005;border-bottom:1px solid rgba(0,0,0,.06)}.sidebar-clean .sidebar-parent-bar:hover{background:#0000000a}.sidebar-clean .parent-info{color:#0000008c}.sidebar-clean .sidebar-parent-bar:hover .parent-info{color:#000000bf}.sidebar-clean .parent-expand{color:#00000059}.sidebar-clean .sidebar-selected-group-row{border-bottom:1px solid rgba(0,0,0,.1)}.sidebar-clean .sidebar-selected-group-row:hover{background:#00000005}.sidebar-clean .selected-group-name{color:#212529}.sidebar-clean .selected-group-kind{background:#6c757d26;color:#495057}.sidebar-clean .selected-group-chevron{color:#0006}.sidebar-clean .sidebar-selected-group-row:hover .selected-group-chevron{color:#000000b3;transform:scale(1.1)}.sidebar-gradient .sidebar-parent-bar{background:#0003;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-gradient .sidebar-parent-bar:hover{background:#00000040}.sidebar-gradient .parent-info{color:#ffffffb3}.sidebar-gradient .sidebar-parent-bar:hover .parent-info{color:#ffffffe6}.sidebar-gradient .parent-expand{color:#ffffff80}.sidebar-gradient .sidebar-selected-group-row{border-bottom:2px solid rgba(255,255,255,.2)}.sidebar-gradient .sidebar-selected-group-row:hover{background:#ffffff14}.sidebar-gradient .selected-group-name{color:#fff}.sidebar-gradient .selected-group-kind{background:#fff3;color:#fffffff2}.sidebar-gradient .selected-group-chevron{color:#fff9}.sidebar-gradient .sidebar-selected-group-row:hover .selected-group-chevron{color:#fffffff2;transform:scale(1.1)}.simple-search-view{background-color:var(--bs-body-bg);color:var(--bs-body-color);border-right:1px solid var(--bs-border-color);box-shadow:var(--bs-box-shadow)}.modal-body .simple-search-view>div:first-child{position:sticky;top:0;z-index:10;background-color:var(--bs-body-bg)}[data-bs-theme=dark] .modal-body .simple-search-view>div:first-child{background-color:var(--bs-body-bg)}.collapse-sidebar .simple-search-view{background-color:var(--mojo-topnav-bg)!important}.collapse-sidebar .simple-search-view>*{display:none!important}.simple-search-item{cursor:pointer;transition:background-color .15s ease-in-out,transform .15s ease-in-out;border-radius:.25rem}.simple-search-item:hover{background-color:#0000320d;transform:translateY(-1px)}[data-bs-theme=dark] .simple-search-item:hover{background-color:#ffffff1a}.simple-search-exit-btn{width:20px;height:20px;margin-top:-5px}.simple-search-clear-btn{width:24px;height:24px;border-radius:50%}.navbar-nav .nav-item button[data-action=show-selector]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px;display:inline-flex;align-items:center}.navbar-nav .nav-item button[data-action=show-selector] .group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.navbar-nav .nav-item button[data-action=show-selector]{max-width:150px}}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:.75rem;top:0;bottom:0;width:2px;background-color:#dee2e6}.timeline-item{position:relative;margin-bottom:1.5rem}.timeline-marker{position:absolute;left:-2rem;top:.125rem;width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#fff;border:2px solid white;box-shadow:0 2px 4px #0000001a}.timeline-marker-info{background-color:#0dcaf0}.timeline-marker-primary{background-color:#0d6efd}.timeline-marker-success{background-color:#198754}.timeline-marker-danger{background-color:#dc3545}.timeline-marker-warning{background-color:#ffc107;color:#000}.timeline-marker-secondary{background-color:#6c757d}.timeline-content{background-color:#f8f9fa;padding:1rem;border-radius:.375rem;border:1px solid #dee2e6}.job-status-indicator{display:inline-flex;align-items:center;gap:.5rem}.job-health-indicator{width:12px;height:12px;border-radius:50%;display:inline-block}.health-healthy{background-color:#198754}.health-warning{background-color:#ffc107}.health-critical{background-color:#dc3545}.health-unknown{background-color:#6c757d}.job-stats-header .card{transition:transform .2s ease,box-shadow .2s ease}.job-stats-header .card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026!important}.job-health-header .health-indicator{animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.logs-container{background-color:#1e1e1e!important;color:#d4d4d4!important}.logs-container .text-info{color:#9cdcfe!important}.logs-container .text-warning{color:#dcdcaa!important}.logs-container .text-danger{color:#f14c4c!important}.logs-container .text-success{color:#4ec9b0!important}.job-details-view pre code{font-size:.875rem;line-height:1.4}@media (max-width: 768px){.timeline{padding-left:1.5rem}.timeline-marker{left:-1.75rem;width:1.25rem;height:1.25rem;font-size:.625rem}.timeline-content{padding:.75rem}}.channel-status-badge{font-size:.75rem;padding:.25rem .5rem}.runner-utilization{height:4px;background-color:#e9ecef;border-radius:2px;overflow:hidden}.runner-utilization-fill{height:100%;transition:width .3s ease}.runner-utilization-low{background-color:#198754}.runner-utilization-medium{background-color:#ffc107}.runner-utilization-high{background-color:#fd7e14}.runner-utilization-critical{background-color:#dc3545}.mojo-select-cell,.mojo-select-all-cell{background-color:transparent;cursor:pointer;transition:background-color .2s ease;text-align:center;vertical-align:middle;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.mojo-select-cell.selected,.mojo-select-all-cell.selected{background-color:transparent}.mojo-checkbox{height:20px;width:20px;border-radius:6px;border:2px solid var(--bs-border-color);background-color:var(--bs-body-bg);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.mojo-checkbok:focused,.mojo-checkbok:hover{box-shadow:0 0 0 .25rem #3874ff40}.mojo-select-cell:hover .mojo-checkbox{box-shadow:0 0 0 .25rem #3874ff40}.mojo-select-cell.selected .mojo-checkbox,.mojo-select-all-cell.selected .mojo-checkbox{color:#fff;background-color:var(--bs-primary);border-color:var(--bs-primary)}.mojo-checkbox i{font-size:1rem;opacity:0;transition:opacity .2s ease}.mojo-select-cell.selected .mojo-checkbox i,.mojo-select-all-cell.selected .mojo-checkbox i{opacity:1}.mojo-select-all-cell.indeterminate .mojo-checkbox{border-color:var(--bs-primary);background-color:var(--bs-primary)}.mojo-select-all-cell.indeterminate .mojo-checkbox i{opacity:1;color:#fff}.table-page-container{position:relative}.mojo-table-wrapper{padding:1rem}.mojo-table-loading{position:absolute;top:0;left:0;right:0;background-color:var(--bs-body-bg);opacity:.8;height:100%}.table-page-header{border-bottom:1px solid var(--bs-border-color);padding-bottom:1rem;margin-bottom:1.5rem}.table-container{position:relative;transition:opacity .3s ease}.table-container.is-loading{opacity:.7;pointer-events:none}.table-status-bar.table-status-top{border-top:none;border-bottom:1px solid var(--bs-border-color);padding-top:0;padding-bottom:.75rem;margin-bottom:1rem}.status-info{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.table-loading-overlay{position:absolute;inset:0;background:var(--bs-body-bg);opacity:.9;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-content{padding:2rem;text-align:center}.loading-message{margin-top:1rem;color:var(--bs-secondary-color);font-size:.95rem}.loading-indicator{display:inline-flex;align-items:center;gap:.5rem}.error-indicator{animation:mojo-pulse 2s ease-in-out infinite;display:inline-flex;align-items:center;gap:.25rem}.table-actions-bottom{border-bottom:none;border-top:1px solid var(--bs-border-color);padding-top:1rem;padding-bottom:0;margin-top:1rem;margin-bottom:0}.batch-actions-panel{position:sticky;bottom:10px;box-shadow:0 1rem 3rem #0006;background-color:var(--bs-body-bg);height:60px;z-index:20;margin:0 8px}div.batch-select-count{font-size:1.5rem!important;background-color:var(--bs-primary);color:var(--bs-white);min-width:50px;text-align:center;height:60px;line-height:60px}div.batch-select-title{font-size:1.5rem!important;line-height:60px;height:60px}div.batch-select-action{cursor:pointer;color:var(--bs-primary-text-emphasis);transition:color .2s ease}div.batch-select-action:hover{color:var(--bs-primary)}div.batch-select-end{border-radius:0 4px 4px 0;background-color:var(--bs-primary);height:60px;width:10px}.batch-actions-panel-top{border-left:4px solid var(--bs-primary);border-color:var(--bs-info-border-subtle);margin:0!important;padding:.4rem;animation:slideDown .3s ease-out}.batch-actions-panel-top .batch-select-count{font-weight:700;color:var(--bs-primary);font-size:1.1rem}.batch-actions-panel-top button{transition:transform .2s ease,box-shadow .2s ease}.batch-actions-panel-top button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.btn-refresh:not(:disabled):hover .bi-arrow-clockwise{animation:mojo-spin .5s ease-in-out}.btn-add:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 .25rem .5rem #0000001a}.btn-export:not(:disabled):hover .bi-download,.btn-import:not(:disabled):hover .bi-upload{animation:mojo-bounce .5s ease-in-out}.collection-select-view{position:relative}.collection-select-view .form-control.is-invalid{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath d='m5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.collection-select-view .dropdown-item:has(.spinner-border){justify-content:center;align-items:center;min-height:3rem}.collection-select-view .dropdown-item:focus-visible{outline:2px solid var(--bs-primary);outline-offset:-2px}.collection-select-view .dropdown-menu::-webkit-scrollbar{width:6px}.collection-select-view .dropdown-menu::-webkit-scrollbar-track{background:var(--bs-secondary-bg);border-radius:var(--bs-border-radius-sm)}.collection-select-view .dropdown-menu::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:var(--bs-border-radius-sm)}.collection-select-view .dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary)}.collection-select-view .btn[data-action=clear-selection]{width:1.5rem;height:1.5rem;padding:0;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--bs-secondary);transition:color .15s ease-in-out}.collection-select-view .btn[data-action=clear-selection]:hover{color:var(--bs-danger)}.collection-select-view .btn[data-action=clear-selection]:focus{box-shadow:none;outline:2px solid var(--bs-primary);outline-offset:2px}.collection-select-view .btn[data-action=clear-selection] i{font-size:1rem}.collection-select-view .form-control.pe-5{padding-right:2.5rem!important}.text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.data-view-item .data-view-label{font-size:.6rem}.table-container::-webkit-scrollbar{height:8px;width:8px}.table-container::-webkit-scrollbar-track{background:var(--bs-secondary-bg);border-radius:var(--bs-border-radius-sm)}.table-container::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:var(--bs-border-radius-sm)}.table-container::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}@keyframes mojo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes mojo-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes mojo-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (max-width: 768px){.table-page-header{padding-bottom:.75rem;margin-bottom:1rem}.batch-actions-panel-top{padding:.75rem!important}.batch-actions-panel-top .d-flex{flex-direction:column;gap:.75rem}.batch-actions-panel-top .batch-select-count{font-size:1rem}.page-title{font-size:1.5rem}.page-description{font-size:.9rem}.table-status-bar{padding:.5rem .75rem}.status-info{flex-direction:column;align-items:flex-start;gap:.5rem}.collection-select-view .dropdown-menu{max-height:200px}.collection-select-view .dropdown-item{padding:.75rem 1rem;font-size:1rem}}@media (max-width: 576px){.table-container{overflow-x:auto}.page-title{font-size:1.25rem}.loading-content{padding:1rem}.batch-actions-panel-top button{font-size:.875rem;padding:.25rem .5rem}.batch-actions-panel-top .btn-group{flex-wrap:wrap}}[data-bs-theme=dark] .table-loading-overlay{background:var(--bs-dark);opacity:.9}[data-bs-theme=dark] .batch-actions-panel{background-color:var(--bs-dark)}[data-bs-theme=dark] .batch-actions-panel-top{background-color:#0d6efd1a;border-color:#0d6efd4d}[data-bs-theme=dark] .collection-select-view .dropdown-menu::-webkit-scrollbar-track{background:var(--bs-secondary-bg)}[data-bs-theme=dark] .collection-select-view .dropdown-menu::-webkit-scrollbar-thumb{background:var(--bs-border-color)}[data-bs-theme=dark] .collection-select-view .dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}[data-bs-theme=dark] .collection-select-view .btn[data-action=clear-selection]{color:var(--bs-secondary)}[data-bs-theme=dark] .collection-select-view .btn[data-action=clear-selection]:hover{color:var(--bs-danger)}[data-bs-theme=dark] .collection-select-view .btn[data-action=clear-selection]:focus{outline-color:var(--bs-primary)}[data-bs-theme=dark] .table-container::-webkit-scrollbar-track{background:var(--bs-secondary-bg)}[data-bs-theme=dark] .table-container::-webkit-scrollbar-thumb{background:var(--bs-border-color)}[data-bs-theme=dark] .table-container::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}.table-fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;z-index:9999!important;background:var(--bs-body-bg)!important;padding:1rem!important;overflow:auto!important}.table-fullscreen .mojo-table-wrapper{height:100%;display:flex;flex-direction:column;padding:0}.table-fullscreen .table-container{flex:1;overflow:auto;margin-bottom:1rem}.table-fullscreen .table{margin-bottom:0}.table-fullscreen .table-status-bar{flex-shrink:0;margin-top:auto;border-top:1px solid var(--bs-border-color);padding-top:1rem;background:var(--bs-body-bg)}.btn-fullscreen{transition:transform .2s ease,box-shadow .2s ease}.btn-fullscreen:hover{transform:scale(1.05)}.table-fullscreen .btn-fullscreen{background-color:var(--bs-primary);color:var(--bs-white);border-color:var(--bs-primary)}.table-fullscreen .btn-fullscreen:hover{background-color:var(--bs-primary);border-color:var(--bs-primary);opacity:.9}.table-fullscreen .table-container::-webkit-scrollbar{width:12px;height:12px}.table-fullscreen .table-container::-webkit-scrollbar-track{background:var(--bs-secondary-bg)}.table-fullscreen .table-container::-webkit-scrollbar-thumb{background:var(--bs-secondary);border-radius:6px}.table-fullscreen .table-container::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}[data-bs-theme=dark] .table-fullscreen{background:var(--bs-dark)!important}[data-bs-theme=dark] .table-fullscreen .table-status-bar{background:var(--bs-dark)}.table-totals-row{background-color:var(--bs-light);border-top:2px solid var(--bs-primary);font-weight:500}.table-footer-label{color:var(--bs-emphasis-color);font-weight:600}.table-footer-total{color:var(--bs-primary);font-weight:600;text-align:right}[data-bs-theme=dark] .table-totals-row{background-color:var(--bs-dark);border-top-color:var(--bs-primary)}[data-bs-theme=dark] .table-footer-label{color:var(--bs-light)}[data-bs-theme=dark] .table-footer-total{color:var(--bs-primary)}.editable-cell{cursor:pointer;position:relative}.editable-cell:hover{background-color:#0d6efd0d}.editable-cell.editing{background-color:#0d6efd1a}.cell-editor{width:100%;max-width:100%}.cell-editor .form-control,.cell-editor .form-select{flex:1;min-width:0}.cell-editor .btn{white-space:nowrap;flex-shrink:0;min-width:auto;width:2rem;height:2rem;padding:0;display:flex;align-items:center;justify-content:center}.cell-editor .form-check{margin-bottom:0}.cell-editor .form-control:focus,.cell-editor .form-select:focus{border-color:#0d6efd;box-shadow:0 0 0 .25rem #0d6efd40}.cell-editor .d-flex.gap-1>*{flex-shrink:0}.cell-editor .form-switch .form-check-input{margin-left:0}.editable-cell .cell-content{padding:2px 4px;border-radius:3px;transition:background-color .15s ease-in-out}.editable-cell:hover .cell-content{background-color:#0d6efd1a}.editable-cell:after{content:"";position:absolute;top:4px;right:4px;width:0;height:0;border-left:4px solid transparent;border-top:4px solid rgba(108,117,125,.3);opacity:0;transition:opacity .15s ease-in-out}.editable-cell:hover:after{opacity:1}.cell-editor.saving{opacity:.7;pointer-events:none}.cell-editor.saving .btn{disabled:true}.cell-editor.saving-error{border-left:3px solid var(--bs-danger);background-color:#dc35451a}.cell-editor.saving-error .form-control,.cell-editor.saving-error .form-select{border-color:var(--bs-danger)}[data-bs-theme=dark] .editable-cell:hover{background-color:#0d6efd1a}[data-bs-theme=dark] .editable-cell.editing,[data-bs-theme=dark] .editable-cell:hover .cell-content{background-color:#0d6efd26}[data-bs-theme=dark] .editable-cell:after{border-top-color:#ffffff4d}@media (prefers-contrast: high){.collection-select-view .dropdown-item.active{background-color:var(--bs-emphasis-color);color:var(--bs-body-bg)}.mojo-checkbox{border-width:2px}}@media (prefers-reduced-motion: reduce){.table-container,.mojo-checkbox,.batch-select-action,.batch-actions-panel-top,.batch-actions-panel-top button{transition:none}@keyframes slideDown{0%,to{opacity:1;transform:none}}.btn-refresh:not(:disabled):hover .bi-arrow-clockwise,.btn-export:not(:disabled):hover .bi-download,.btn-import:not(:disabled):hover .bi-upload{animation:none}}.toast-service-success{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(25, 135, 84, .3);color:var(--bs-body-color);border-left:4px solid rgba(25,135,84,.8)}.toast-service-error{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(220, 53, 69, .3);color:var(--bs-body-color);border-left:4px solid rgba(220,53,69,.8)}.toast-service-warning{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(255, 193, 7, .3);color:var(--bs-body-color);border-left:4px solid rgba(255,193,7,.9)}.toast-service-info{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(13, 110, 253, .3);color:var(--bs-body-color);border-left:4px solid rgba(13,110,253,.8)}.toast-service-plain{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(0, 0, 0, .08);color:var(--bs-body-color)}.toast-service-icon{width:20px;height:20px;flex-shrink:0}.toast-service-success .toast-service-icon{color:#198754e6}.toast-service-error .toast-service-icon{color:#dc3545e6}.toast-service-warning .toast-service-icon{color:#ffc107}.toast-service-info .toast-service-icon{color:#0d6efde6}.toast-service-plain .toast-service-icon{color:#6c757dcc}.toast-service-close{filter:none;opacity:.6}.toast-service-close:hover{opacity:1}.toast-container{max-width:400px}.toast{transition:all .3s ease-in-out}.toast.showing{opacity:0;transform:translate(100%)}.toast.show{opacity:1;transform:translate(0)}.toast.hide{opacity:0;transform:translate(100%)}@media (max-width: 576px){.toast-container{max-width:calc(100vw - 20px);left:10px!important;right:10px!important;transform:none!important}.toast-container.position-fixed.top-0.start-50.translate-middle-x,.toast-container.position-fixed.bottom-0.start-50.translate-middle-x{left:10px!important;right:10px!important;transform:none!important;width:calc(100% - 20px)}}.toast-header{padding:.5rem .75rem;border-bottom:1px solid rgba(0,0,0,.1)}.toast-service-success .toast-header,.toast-service-error .toast-header,.toast-service-info .toast-header,.toast-service-warning .toast-header{border-bottom-color:#0000000f}.toast-body{padding:.75rem;word-wrap:break-word}.toast-body .toast-message{line-height:1.4}.toast-container .toast+.toast{margin-top:.5rem}@media (prefers-color-scheme: dark){.toast-service-plain{--bs-toast-bg: rgba(33, 37, 41, .95);--bs-toast-border-color: rgba(255, 255, 255, .1);color:var(--bs-body-color)}}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background-color:#ffffff4d;border-radius:0 0 .375rem .375rem;transition:width linear}.toast-actions{padding:.25rem .75rem .75rem;display:flex;gap:.5rem}.toast-actions .btn{font-size:.875rem;padding:.25rem .75rem}.chat-view{display:flex;flex-direction:column;height:100%}.chat-container{display:flex;flex-direction:column;height:100%;width:100%;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;background:#fff}.chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px;background:#fff}.chat-input-wrapper{flex-shrink:0}.chat-theme-compact .message-item{display:flex;padding:12px;border-bottom:1px solid #f1f3f5;transition:background-color .15s ease}.chat-theme-compact .message-item:hover{background:#f8f9fa}.chat-theme-compact .message-item:last-child{border-bottom:none}.chat-theme-compact .message-avatar{width:36px;height:36px;border-radius:50%;background:#6c757d;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;margin-right:12px;flex-shrink:0;overflow:hidden}.chat-theme-compact .message-content{flex:1;min-width:0}.chat-theme-compact .message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;gap:8px}.chat-theme-compact .message-author{font-weight:600;font-size:.9rem;color:#212529}.chat-theme-compact .message-time{font-size:.75rem;color:#6c757d;white-space:nowrap}.chat-theme-compact .message-text{font-size:.9rem;color:#212529;line-height:1.5;word-wrap:break-word;white-space:pre-wrap}.chat-theme-compact .chat-message-system{background:#f8f9fa;border-left:3px solid #0d6efd;margin:8px 0;padding:8px 12px}.chat-theme-bubbles .chat-message{margin-bottom:12px}.chat-theme-bubbles .message-bubble-wrapper{display:flex;flex-direction:column;max-width:70%}.chat-theme-bubbles .message-left .message-bubble-wrapper{align-items:flex-start}.chat-theme-bubbles .message-right .message-bubble-wrapper{align-items:flex-end;margin-left:auto}.chat-theme-bubbles .message-meta{font-size:.75rem;color:#6c757d;margin-bottom:4px;padding:0 4px}.chat-theme-bubbles .message-right .message-meta{text-align:right}.chat-theme-bubbles .message-bubble{padding:10px 14px;border-radius:18px;word-wrap:break-word;max-width:100%}.chat-theme-bubbles .message-left .message-bubble{background:#e9ecef;color:#212529}.chat-theme-bubbles .message-right .message-bubble{background:#0d6efd;color:#fff}.chat-theme-bubbles .message-text{font-size:.9rem;line-height:1.5;white-space:pre-wrap}.chat-theme-bubbles .chat-message-system{max-width:100%;margin:16px auto}.chat-input-view{border-top:1px solid #dee2e6;background:#f8f9fa;width:100%}.chat-input-container{padding:15px;position:relative;width:100%}.chat-input-container.drag-over{background:#e7f3ff;border-color:#0d6efd}.chat-input-container.drag-active:before{content:"Drop files here";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.2rem;color:#0d6efd;font-weight:600;pointer-events:none;z-index:10}.chat-input-wrapper{position:relative;display:flex;align-items:flex-end;gap:8px}.chat-input{flex:1;resize:none;max-height:150px;font-size:.9rem}.chat-send-btn{flex-shrink:0;min-width:80px}.chat-send-btn i,.chat-send-btn .spinner-border{font-size:1rem}.chat-input-footer{margin-top:8px;font-size:.85rem}.chat-input-attachments{margin-bottom:10px}.attachment-preview{display:inline-flex;align-items:center;gap:8px;background:#e9ecef;padding:8px 12px;border-radius:8px;margin-right:8px;margin-bottom:8px;font-size:.85rem}.attachment-preview.upload-complete{background:#d1e7dd}.attachment-preview.upload-error{background:#f8d7da}.attachment-info{display:flex;align-items:center;gap:6px}.attachment-name{font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-size{color:#6c757d;font-size:.75rem}.attachment-progress{min-width:100px}.attachment-remove{padding:0;margin:0;line-height:1}.message-text .file-attachment,[data-container=attachments] .file-attachment{display:inline-block;margin-top:8px;padding:8px 12px;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:8px;font-size:.85rem;transition:background-color .15s ease}.message-text .file-attachment:hover,[data-container=attachments] .file-attachment:hover{background:#0000001a}.message-text .file-attachment i,[data-container=attachments] .file-attachment i{margin-right:6px}.chat-theme-bubbles .message-right .file-attachment{background:#fff3;border-color:#ffffff4d;color:#fff}.chat-message-system{text-align:center;padding:8px 12px;margin:12px 0}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:#f1f3f5}.chat-messages::-webkit-scrollbar-thumb{background:#adb5bd;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#6c757d}@media (max-width: 768px){.chat-theme-bubbles .message-bubble-wrapper{max-width:85%}.chat-theme-compact .message-avatar{width:32px;height:32px;font-size:.75rem}.attachment-name{max-width:150px}}.badge-sm{font-size:.7rem;padding:2px 6px}.mojo-task-management-page{padding:0}.mojo-task-management-container{max-width:100%;margin:0}.mojo-task-stats-header .card{transition:all .2s ease-in-out;border:1px solid var(--bs-border-color)}.mojo-task-stats-header .card:hover{transform:translateY(-2px);box-shadow:0 .25rem .75rem #0000001a!important}.mojo-task-stats-header .card-body{padding:1.5rem}.mojo-task-stats-header h3{font-size:2rem;font-weight:700;color:var(--bs-dark)}.mojo-task-stats-header .badge{font-size:.75rem;padding:.375rem .5rem;border-radius:.375rem}.mojo-task-stats-header .fs-2{opacity:.6;font-size:2.5rem!important}.task-runners-section .mojo-task-runner-list{max-height:400px;overflow-y:auto}.task-runners-section .mojo-task-runner-item{border:1px solid var(--bs-gray-200);transition:all .2s ease-in-out}.task-runners-section .mojo-task-runner-item:hover{border-color:var(--bs-primary);background-color:var(--bs-gray-50)!important}.task-runners-section .mojo-task-runner-info{min-width:0;flex:1}.task-runners-section .mojo-task-runner-name{font-size:.95rem;margin-bottom:.25rem}.task-runners-section .mojo-task-runner-channels{word-break:break-all;line-height:1.3}.task-runners-section .mojo-task-runner-list::-webkit-scrollbar{width:6px}.task-runners-section .mojo-task-runner-list::-webkit-scrollbar-track{background:var(--bs-gray-100);border-radius:3px}.task-runners-section .mojo-task-runner-list::-webkit-scrollbar-thumb{background:var(--bs-gray-400);border-radius:3px}.task-runners-section .mojo-task-runner-list::-webkit-scrollbar-thumb:hover{background:var(--bs-gray-500)}.task-runners-section .mojo-task-runner-status .badge{font-size:.8rem;padding:.5rem .75rem;border-radius:.5rem;font-weight:500}.task-runners-section .mojo-task-runner-actions{display:flex;align-items:center;gap:.5rem}.task-runners-section .dropdown-toggle{border:1px solid var(--bs-border-color);background:#fff;transition:all .2s ease}.task-runners-section .dropdown-toggle:hover{background:var(--bs-gray-50);border-color:var(--bs-primary)}.task-runners-section .dropdown-menu{box-shadow:0 .5rem 1rem #00000026;border:1px solid var(--bs-border-color);border-radius:.5rem;min-width:160px}.task-runners-section .dropdown-item{padding:.5rem 1rem;transition:all .2s ease}.task-runners-section .dropdown-item:hover{background-color:var(--bs-gray-100)}.task-runners-section .dropdown-item i{width:1rem;text-align:center}.mojo-task-charts-section .card{border:1px solid var(--bs-border-color);transition:all .2s ease-in-out}.mojo-task-charts-section .card:hover{box-shadow:0 .25rem .75rem #00000014!important}.mojo-task-charts-section .card-body{padding:1.5rem}.mojo-task-management-page .tab-view .nav-tabs{border-bottom:2px solid var(--bs-gray-200);margin-bottom:1.5rem}.mojo-task-management-page .tab-view .nav-link{color:var(--bs-gray-600);border:none;padding:.75rem 1.5rem;margin-right:.5rem;border-radius:.5rem .5rem 0 0;transition:all .2s ease;font-weight:500}.mojo-task-management-page .tab-view .nav-link:hover{color:var(--bs-primary);background-color:var(--bs-gray-50)}.mojo-task-management-page .tab-view .nav-link.active{color:var(--bs-primary);background-color:#fff;border-bottom:2px solid var(--bs-primary);transform:translateY(1px)}.mojo-task-management-page .tab-content{min-height:400px}.mojo-task-management-page .table-container{background:#fff;border-radius:.5rem}.badge.mojo-task-status-pending{background-color:var(--bs-primary)!important;color:#fff}.badge.mojo-task-status-running{background-color:var(--bs-success)!important;color:#fff}.badge.mojo-task-status-completed{background-color:var(--bs-info)!important;color:#fff}.badge.mojo-task-status-error{background-color:var(--bs-danger)!important;color:#fff}.mojo-task-management-page .btn-group .btn{transition:all .2s ease}.mojo-task-management-page .btn-group .btn:hover{transform:translateY(-1px)}.mojo-task-management-page .btn-sm{padding:.375rem .75rem;font-size:.875rem;border-radius:.375rem}.mojo-task-management-page .bi-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}@media (max-width: 768px){.mojo-task-stats-header .card-body{padding:1rem}.mojo-task-stats-header h3{font-size:1.5rem}.task-runners-section .mojo-task-runner-item .row{margin:0}.task-runners-section .mojo-task-runner-item .col-md-8,.task-runners-section .mojo-task-runner-item .col-md-4{padding-left:0;padding-right:0}.task-runners-section .mojo-task-runner-channels small{font-size:.75rem}.mojo-task-management-page .btn-group{flex-direction:column;width:100%}.mojo-task-management-page .btn-group .btn{margin-bottom:.25rem}}@media (max-width: 576px){.mojo-task-management-container{padding:.5rem}.mojo-task-stats-header .col-12{margin-bottom:.5rem!important}.mojo-task-charts-section .col-xl-6{margin-bottom:1rem!important}.mojo-task-management-page .tab-view .nav-link{padding:.5rem 1rem;margin-right:.25rem;font-size:.875rem}.task-runners-section .mojo-task-runner-item{padding:1rem!important}.task-runners-section .mojo-task-runner-name{font-size:.9rem}.task-runners-section .mojo-task-runner-channels small{font-size:.7rem;display:block;margin-top:.25rem}}.admin-dashboard-page,.admin-page{background-color:var(--bs-gray-50);min-height:100vh}.admin-page .card{border:1px solid var(--bs-border-color);box-shadow:0 .125rem .25rem #00000013;transition:all .2s ease-in-out}.admin-page .card:hover{box-shadow:0 .25rem .5rem #0000001a}.admin-page .card-header{background-color:#fff;border-bottom:1px solid var(--bs-border-color);padding:1rem 1.5rem}.admin-page .card-body{padding:1.5rem}.admin-page h1,.admin-page .h3{color:var(--bs-dark);font-weight:600}.admin-page .text-muted{color:var(--bs-gray-600)!important}.admin-page .alert{border:none;border-radius:.5rem;padding:1rem 1.5rem}.admin-page .alert-success{background-color:#1987541a;color:var(--bs-success-text-emphasis)}.admin-page .alert-info{background-color:#0dcaf01a;color:var(--bs-info-text-emphasis)}.admin-page .alert-warning{background-color:#ffc1071a;color:var(--bs-warning-text-emphasis)}.admin-page .alert-danger{background-color:#dc35451a;color:var(--bs-danger-text-emphasis)}.admin-page .text-truncate{max-width:200px}.admin-page .small-text{font-size:.875rem}.admin-page .micro-text{font-size:.75rem}.admin-page .breadcrumb{background-color:transparent;padding:0;margin-bottom:1rem}.admin-page .breadcrumb-item+.breadcrumb-item:before{color:var(--bs-gray-500)}.admin-page .breadcrumb-item a{color:var(--bs-primary);text-decoration:none}.admin-page .breadcrumb-item a:hover{text-decoration:underline}.mojo-task-details-modal .modal-dialog{max-width:800px}.mojo-task-details-modal .fw-mono{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem}.mojo-task-details-modal .log-entry{border-left:3px solid var(--bs-gray-300);transition:all .2s ease}.mojo-task-details-modal .log-entry:hover{border-left-color:var(--bs-primary);background-color:var(--bs-gray-50)!important}.mojo-task-details-modal pre code{font-size:.85rem;line-height:1.4}.mojo-task-details-modal .badge{font-weight:500}.mojo-runner-details-modal .modal-dialog{max-width:1200px}.mojo-runner-details-modal .performance-metric{transition:all .3s ease}.mojo-runner-details-modal .performance-metric:hover{transform:translateY(-2px);box-shadow:0 .25rem .5rem #0000001a}.runner-detailsPrint Styles */ .mojo-task-details-view,.mojo-runner-details-view{max-height:70vh;overflow-y:auto}.mojo-task-details-view .card,.mojo-runner-details-view .card{border:1px solid var(--bs-border-color)}.mojo-task-details-view .card-header,.mojo-runner-details-view .card-header{background-color:var(--bs-gray-50);font-weight:500}.mojo-task-details-view .log-entry,.mojo-runner-details-view .log-entry{transition:background-color .2s ease}.mojo-task-details-view .log-entry:hover,.mojo-runner-details-view .log-entry:hover{background-color:var(--bs-gray-50)!important}.mojo-task-details-view .progress,.mojo-runner-details-view .progress{border-radius:10px;overflow:hidden}.mojo-task-details-view .progress-bar,.mojo-runner-details-view .progress-bar{transition:width .3s ease}.mojo-task-details-view .badge,.mojo-runner-details-view .badge{font-weight:500}.mojo-task-details-view pre{font-size:.875rem;line-height:1.4;border:1px solid var(--bs-border-color)}.mojo-task-details-view pre code,.mojo-runner-details-view pre code{color:var(--bs-gray-800)}.mojo-runner-details-view .progress{background-color:var(--bs-gray-200)}.mojo-runner-details-view .progress-bar{font-size:.875rem;font-weight:500}.mojo-task-details-view .table,.mojo-runner-details-view .table{font-size:.875rem}.mojo-task-details-view .table th,.mojo-runner-details-view .table th{font-weight:600;color:var(--bs-gray-700);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.mojo-task-details-view .table td,.mojo-runner-details-view .table td{vertical-align:middle}.mojo-task-details-view .btn-group-sm .btn,.mojo-runner-details-view .btn-group-sm .btn{padding:.25rem .5rem;font-size:.8rem}.mojo-runner-details-view .btn-group .btn.active{background-color:var(--bs-primary);border-color:var(--bs-primary);color:#fff}.mojo-task-logs-container,.mojo-runner-logs-container{border:1px solid var(--bs-border-color);border-radius:.375rem}.mojo-task-logs-container::-webkit-scrollbar,.mojo-runner-logs-container::-webkit-scrollbar{width:6px}.mojo-task-logs-container::-webkit-scrollbar-track,.mojo-runner-logs-container::-webkit-scrollbar-track{background:var(--bs-gray-100);border-radius:3px}.mojo-task-logs-container::-webkit-scrollbar-thumb,.mojo-runner-logs-container::-webkit-scrollbar-thumb{background:var(--bs-gray-400);border-radius:3px}.mojo-task-logs-container::-webkit-scrollbar-thumb:hover,.mojo-runner-logs-container::-webkit-scrollbar-thumb:hover{background:var(--bs-gray-500)}@media print{.admin-page .btn,.admin-page .dropdown,.admin-page .card-header .btn-group{display:none!important}.admin-page .card{border:1px solid #000!important;box-shadow:none!important}.admin-page{background-color:#fff!important}.mojo-task-details-view,.mojo-runner-details-view{max-height:none;overflow:visible}}
|
|
1
|
+
:root{--chart-bg: #ffffff;--chart-content-bg: #ffffff;--chart-border: #dee2e6;--chart-text: #212529;--chart-text-muted: #6c757d;--chart-overlay-bg: rgba(255, 255, 255, .95);--chart-shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--chart-hover-bg: rgba(0, 0, 0, .05);--chart-focus-ring: rgba(13, 110, 253, .25);--chart-grid-color: rgba(0, 0, 0, .1);--chart-loading-bg: rgba(248, 249, 250, .95)}[data-theme=dark]{--chart-bg: #212529;--chart-content-bg: #2b3035;--chart-border: #404449;--chart-text: #ffffff;--chart-text-muted: #adb5bd;--chart-overlay-bg: rgba(33, 37, 41, .95);--chart-shadow: 0 .125rem .25rem rgba(0, 0, 0, .3);--chart-hover-bg: rgba(255, 255, 255, .1);--chart-focus-ring: rgba(13, 110, 253, .4);--chart-grid-color: rgba(255, 255, 255, .1);--chart-loading-bg: rgba(43, 48, 53, .95)}.chart-component{background:var(--chart-bg);border:1px solid var(--chart-border);border-radius:.375rem;box-shadow:var(--chart-shadow);color:var(--chart-text);padding:1rem;transition:all .15s ease-in-out;min-height:300px;font-family:var(--bs-font-sans-serif, system-ui, sans-serif)}.chart-component:hover{border-color:var(--bs-primary, #0d6efd);box-shadow:0 .25rem .5rem #0000001a}.chart-container{width:100%;height:100%;display:flex;flex-direction:column}.chart-title-section{flex:0 0 auto}.chart-title{color:var(--chart-text);margin-bottom:.25rem;font-weight:600}.last-updated{color:var(--chart-text-muted);font-size:.75rem;display:flex;align-items:center}.last-updated .timestamp{font-weight:500;margin-left:.25rem}.chart-controls{flex:0 0 auto}.chart-controls .btn-toolbar{gap:.5rem;flex-wrap:wrap}.chart-controls .btn-group{box-shadow:0 .125rem .25rem #00000013}.chart-controls .btn{position:relative;border-color:var(--chart-border);transition:all .15s ease-in-out}.chart-controls .btn:hover{transform:translateY(-1px);box-shadow:0 .25rem .5rem #00000026}.chart-controls .btn:focus{box-shadow:0 0 0 .2rem var(--chart-focus-ring)}.chart-controls .btn:active{transform:translateY(0)}.chart-type-switcher .btn.active{background-color:var(--bs-primary, #0d6efd);border-color:var(--bs-primary, #0d6efd);color:#fff;box-shadow:inset 0 1px #ffffff26}.refresh-btn .bi-arrow-clockwise.spin{animation:spin 1s linear infinite}.theme-toggle{position:relative}.theme-toggle:hover{background:var(--chart-hover-bg)}.chart-controls .dropdown-menu{background:var(--chart-bg);border:1px solid var(--chart-border);box-shadow:0 .5rem 1rem #0000002d}.chart-controls .dropdown-item{color:var(--chart-text);transition:background-color .15s ease-in-out}.chart-controls .dropdown-item:hover,.chart-controls .dropdown-item:focus{background-color:var(--chart-hover-bg)}.chart-controls .dropdown-item i{width:1rem;margin-right:.5rem}.chart-content{flex:1 1 auto;position:relative;background:var(--chart-content-bg);border-radius:.25rem;overflow:hidden;min-height:250px;display:flex;align-items:center;justify-content:center}.chart-canvas{max-width:100%;max-height:100%;display:block;background:transparent}.chart-overlay{position:absolute;inset:0;background:var(--chart-overlay-bg);display:flex;align-items:center;justify-content:center;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:.25rem}.chart-overlay .spinner-border{width:2rem;height:2rem;color:var(--bs-primary, #0d6efd)}.chart-overlay .text-muted{color:var(--chart-text-muted);font-size:.875rem;margin-top:.5rem}.chart-overlay .alert-danger{background:var(--bs-danger-bg-subtle, #f8d7da);border-color:var(--bs-danger-border-subtle, #f1aeb5);color:var(--bs-danger-text, #842029);max-width:400px;margin:1rem}[data-theme=dark] .chart-overlay .alert-danger{background:#f8d7da1a;border-color:#f1aeb533;color:#f8d7da}.chart-overlay .display-4{font-size:3rem;color:var(--chart-text-muted)}.chart-overlay .opacity-50{opacity:.5}.websocket-status{font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:all .2s ease}.websocket-status.bg-success{background-color:#198754e6!important;animation:pulse-success 2s infinite}.websocket-status.bg-danger{background-color:#dc3545e6!important;animation:pulse-danger 1s infinite}.websocket-status.bg-secondary{background-color:#6c757de6!important}@keyframes pulse-success{0%,to{opacity:.9}50%{opacity:1}}@keyframes pulse-danger{0%,to{opacity:.9}50%{opacity:.6}}.chart-footer{flex:0 0 auto;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--chart-border);font-size:.75rem;color:var(--chart-text-muted)}.chart-footer .row>div{display:flex;align-items:center}.chart-footer i{margin-right:.25rem;opacity:.7}.refresh-status{font-weight:500;color:var(--bs-success, #198754)}@media (max-width: 575.98px){.chart-component{padding:.75rem;margin-bottom:1rem}.chart-controls .btn-toolbar{justify-content:center}.chart-controls .btn-group{margin-bottom:.5rem}.chart-controls .btn-sm{padding:.25rem .5rem;font-size:.75rem}.chart-title{font-size:1.1rem;text-align:center}.chart-footer .row{text-align:center}.chart-footer .col{margin-bottom:.25rem}.chart-type-switcher{flex-direction:column}.chart-type-switcher .btn{margin-bottom:.25rem}}@media (min-width: 576px) and (max-width: 767.98px){.chart-component{padding:.875rem}.chart-controls .btn-toolbar{justify-content:space-between}}@media (min-width: 768px){.chart-component{min-height:400px}.chart-content{min-height:320px}}@media (min-width: 992px){.chart-component{min-height:450px}.chart-content{min-height:360px}}@media (min-width: 1200px){.chart-component{min-height:500px}.chart-content{min-height:400px}}.chart-component{animation:chartFadeIn .5s ease-out}@keyframes chartFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chart-overlay{transition:opacity .3s ease-in-out}.chart-overlay.d-none{opacity:0;pointer-events:none}.chart-controls .btn{transition:all .15s ease-in-out}.chart-canvas{opacity:0;animation:canvasFadeIn .3s ease-in-out .2s forwards}@keyframes canvasFadeIn{to{opacity:1}}@media (prefers-contrast: high){.chart-component,.chart-controls .btn{border-width:2px}.chart-footer{border-top-width:2px}}@media (prefers-reduced-motion: reduce){.chart-component,.chart-canvas,.chart-overlay,.chart-controls .btn{animation:none!important;transition:none!important}.refresh-btn .bi-arrow-clockwise.spin{animation:none!important}}.chart-component:focus-within{outline:2px solid var(--bs-primary, #0d6efd);outline-offset:2px}.chart-controls .btn:focus-visible{outline:2px solid var(--bs-primary, #0d6efd);outline-offset:2px;z-index:1}.chart-component[data-chart-type=line] .chart-canvas,.chart-component[data-chart-type=bar] .chart-canvas{cursor:crosshair}.chart-component[data-chart-type=line] .chart-canvas:hover,.chart-component[data-chart-type=bar] .chart-canvas:hover,.chart-component[data-chart-type=pie] .chart-canvas{cursor:pointer}@media print{.chart-component{border:1px solid #000;box-shadow:none;background:#fff;color:#000;page-break-inside:avoid}.chart-controls,.websocket-status,.chart-overlay{display:none!important}.chart-canvas{max-width:100%!important;max-height:100%!important}.chart-footer{border-top:1px solid #000;color:#666}}.chart-sm{min-height:200px}.chart-sm .chart-content{min-height:150px}.chart-lg{min-height:600px}.chart-lg .chart-content{min-height:500px}.chart-xl{min-height:700px}.chart-xl .chart-content{min-height:600px}.chart-square{aspect-ratio:1 / 1}.chart-wide{aspect-ratio:16 / 9}.chart-tall{aspect-ratio:3 / 4}.chart-loading{pointer-events:none}.chart-loading .chart-canvas{opacity:.5;filter:blur(1px)}.chart-error .chart-canvas{opacity:.3;filter:grayscale(100%)}.chart-success{border-color:var(--bs-success, #198754)}.chart-success .chart-title{color:var(--bs-success, #198754)}.chart-warning{border-color:var(--bs-warning, #ffc107)}.chart-warning .chart-title{color:var(--bs-warning-text, #664d03)}.mojo-metrics-chart{display:flex;flex-direction:column;gap:1rem}.mojo-metrics-chart-container{width:100%;height:100%}.mojo-metrics-chart .chart-wrapper{flex:1;min-height:300px}.mojo-metrics-controls{background:var(--bs-light, #f8f9fa);border:1px solid var(--chart-border);border-radius:.375rem;padding:1rem;margin-bottom:1rem}[data-bs-theme=dark] .mojo-metrics-controls{background:var(--bs-dark, #212529);border-color:var(--chart-border)}.mojo-metrics-controls .form-label{font-size:.875rem;font-weight:600;color:var(--bs-body-color);margin-bottom:.25rem}.mojo-metrics-controls .btn-group .btn{font-size:.75rem;padding:.375rem .75rem;font-weight:500}.mojo-metrics-controls .quick-range-btn.active{background-color:var(--bs-primary);border-color:var(--bs-primary);color:#fff;font-weight:600}.mojo-metrics-controls .form-control,.mojo-metrics-controls .form-select{font-size:.875rem;border:1px solid var(--chart-border)}.mojo-metrics-controls .form-control:focus,.mojo-metrics-controls .form-select:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem #0d6efd40}.mojo-metrics-controls .dropdown-menu{background:var(--chart-bg);border:1px solid var(--chart-border);box-shadow:0 .5rem 1rem #00000026}.mojo-metrics-controls .form-check-input{margin-top:.125rem}.mojo-metrics-controls .form-check-label{font-size:.875rem;color:var(--bs-body-color)}.metrics-footer{border-top:1px solid var(--chart-border);padding-top:.5rem;font-size:.75rem;color:var(--chart-text-muted)}.metrics-footer .data-points{font-weight:600}.metrics-footer .last-updated{font-style:italic}.metrics-footer .timestamp{font-weight:500}@media (max-width: 767.98px){.mojo-metrics-controls .row{--bs-gutter-x: .75rem;--bs-gutter-y: 1rem}.mojo-metrics-controls .col-auto{flex:1 1 auto;min-width:0}.mojo-metrics-controls .btn-group{width:100%;justify-content:center}.mojo-metrics-controls .form-control,.mojo-metrics-controls .form-select{width:100%;max-width:none!important}.mojo-metrics-controls .input-group{flex-wrap:wrap}.mojo-metrics-controls .input-group .form-control{min-width:140px}}@media (max-width: 575.98px){.mojo-metrics-controls{padding:.75rem}.mojo-metrics-controls .row{--bs-gutter-x: .5rem;--bs-gutter-y: .75rem}.mojo-metrics-controls .form-label{margin-bottom:.125rem}.mojo-metrics-controls .btn-group .btn{padding:.25rem .5rem;font-size:.7rem}}.chart-header{flex:0 0 auto}.chart-toolbar-integrated{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--chart-border)}.mojo-toolbar-form{background:transparent;border:none;padding:0}.mojo-toolbar-form .row{--bs-gutter-x: 1rem;--bs-gutter-y: .5rem}.mojo-toolbar-form .form-label-sm{font-size:.75rem;font-weight:600;color:var(--chart-text-muted);margin-bottom:.25rem;display:block}.mojo-toolbar-form .btn-group-sm .btn{font-size:.75rem;padding:.25rem .5rem;font-weight:500}.mojo-toolbar-form .form-select,.mojo-toolbar-form .form-control{font-size:.875rem;padding:.375rem .5rem;border:1px solid var(--chart-border)}.mojo-toolbar-form .form-select:focus,.mojo-toolbar-form .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem #0d6efd40}.mojo-toolbar-form .dropdown-menu{background:var(--chart-bg);border:1px solid var(--chart-border);box-shadow:0 .5rem 1rem #00000026;font-size:.875rem}.mojo-toolbar-form .form-check-input{margin-top:.125rem}.mojo-toolbar-form .form-check-label{font-size:.875rem;color:var(--chart-text)}.mojo-toolbar-form .btn-group .btn.active{background-color:var(--bs-primary);border-color:var(--bs-primary);color:#fff;font-weight:600}@media (max-width: 767.98px){.chart-toolbar-integrated{margin-top:.5rem;padding-top:.5rem}.mojo-toolbar-form .row{--bs-gutter-x: .5rem;--bs-gutter-y: .75rem}.mojo-toolbar-form .col-auto{flex:1 1 auto;min-width:0}.mojo-toolbar-form .btn-group{width:100%;justify-content:center}.mojo-toolbar-form .form-control,.mojo-toolbar-form .form-select{width:100%;max-width:none}}@media (max-width: 575.98px){.chart-toolbar-integrated{margin-top:.25rem;padding-top:.5rem}.mojo-toolbar-form .form-label-sm{margin-bottom:.125rem;font-size:.7rem}.mojo-toolbar-form .btn-group .btn{padding:.25rem .375rem;font-size:.7rem}}[data-theme=dark] .mojo-toolbar-form .dropdown-menu{background:var(--chart-bg);border-color:var(--chart-border)}[data-bs-theme=dark] .mojo-toolbar-form .form-check-label{color:var(--chart-text)}.metrics-toolbar-compact{background:var(--bs-light, #f8f9fa);border-radius:.375rem;padding:.75rem;border:1px solid var(--chart-border)}[data-bs-theme=dark] .metrics-toolbar-compact{background:var(--bs-dark, #212529)}.metrics-toolbar-compact .row{--bs-gutter-x: .75rem;--bs-gutter-y: .5rem}.metrics-toolbar-compact .form-label-sm{font-size:.7rem;font-weight:600;color:var(--chart-text-muted);margin-bottom:.125rem}.metrics-toolbar-compact .btn-group .btn{font-size:.7rem;padding:.25rem .375rem;font-weight:500}.metrics-toolbar-compact .form-select,.metrics-toolbar-compact .form-control{font-size:.8rem;padding:.25rem .375rem;min-height:auto}.metrics-toolbar-compact .dropdown-toggle{font-size:.75rem;padding:.25rem .5rem}@media (max-width: 575.98px){.metrics-toolbar-compact{padding:.5rem}.metrics-toolbar-compact .row{--bs-gutter-x: .5rem;--bs-gutter-y: .25rem}.metrics-toolbar-compact .col-auto{flex:1 1 auto;min-width:0}}.mini-chart{display:block;width:100%}.mini-chart-wrapper{position:relative;display:block;width:100%}.mini-chart-svg{display:block;width:100%;height:100%}@keyframes mini-chart-draw{to{stroke-dashoffset:0}}@keyframes mini-chart-bar-grow{to{transform:scaleY(1)}}.metrics-mini-chart-container{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--chart-bg);border:1px solid var(--chart-border);border-radius:.5rem;transition:all .2s ease}.metrics-mini-chart-container:hover{box-shadow:var(--chart-shadow);border-color:var(--bs-primary)}.metrics-mini-chart-vertical{flex-direction:column;align-items:stretch;text-align:center}.metrics-mini-chart-vertical .metrics-chart{margin-top:.5rem}.metrics-mini-chart-horizontal{flex-direction:row;justify-content:space-between}.metrics-mini-chart-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;font-size:.9rem}.metrics-mini-chart-subtitle span.subtitle-label{font-size:.6rem;padding-right:10px}.metrics-mini-chart-trending-text{margin-top:3px;margin-bottom:0;font-size:.9rem}.metrics-info{flex:1;min-width:0}.metrics-label{font-size:.875rem;color:var(--chart-text-muted);font-weight:500;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metrics-value-row{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.metrics-value{font-size:1.5rem;font-weight:700;color:var(--chart-text);line-height:1.2}.metrics-trend{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.75rem;font-weight:600;border-radius:.25rem;line-height:1.5}.metrics-trend.trend-up{color:#198754;background-color:#1987541a}.metrics-trend.trend-down{color:#dc3545;background-color:#dc35451a}.metrics-trend i{font-size:.875rem}.metrics-chart{flex-shrink:0;display:flex;align-items:center}.metrics-mini-chart-sm .metrics-value{font-size:1.25rem}.metrics-mini-chart-sm .metrics-label{font-size:.75rem}.metrics-mini-chart-sm .metrics-chart{width:80px;height:30px}.metrics-mini-chart-md .metrics-chart{width:100px;height:40px}.metrics-mini-chart-lg .metrics-value{font-size:2rem}.metrics-mini-chart-lg .metrics-label{font-size:1rem}.metrics-mini-chart-lg .metrics-chart{width:120px;height:50px}.metrics-mini-chart-success{border-left:4px solid #198754}.metrics-mini-chart-success .metrics-value{color:#198754}.metrics-mini-chart-danger{border-left:4px solid #dc3545}.metrics-mini-chart-danger .metrics-value{color:#dc3545}.metrics-mini-chart-warning{border-left:4px solid #ffc107}.metrics-mini-chart-warning .metrics-value{color:#ffc107}.metrics-mini-chart-info{border-left:4px solid #0dcaf0}.metrics-mini-chart-info .metrics-value{color:#0dcaf0}[data-theme=dark] .metrics-trend.trend-up{color:#75b798;background-color:#75b79826}[data-theme=dark] .metrics-trend.trend-down{color:#ea868f;background-color:#ea868f26}@media (max-width: 575.98px){.metrics-mini-chart-container{flex-direction:column;align-items:flex-start}.metrics-mini-chart-horizontal .metrics-chart{align-self:stretch}.metrics-mini-chart-horizontal .mini-chart-svg{width:100%;height:40px}}@media (prefers-reduced-motion: reduce){.mini-chart-svg path,.mini-chart-svg rect{animation:none!important}.metrics-mini-chart-container{transition:none}}.mini-chart-tooltip{position:absolute;background:#000000d9;color:#fff;padding:.375rem .625rem;border-radius:.375rem;font-size:.75rem;line-height:1.4;pointer-events:none;white-space:nowrap;z-index:1000;box-shadow:0 2px 8px #00000026}.mini-chart-tooltip strong{font-weight:600}.mini-chart-tooltip-label{font-size:.6875rem;opacity:.8;margin-bottom:.125rem}[data-theme=dark] .mini-chart-tooltip{background:#ffffffe6;color:#212529}.circular-progress{display:inline-block;font-family:var(--bs-font-sans-serif, system-ui, sans-serif)}.circular-progress-container{position:relative;display:inline-flex;align-items:center;justify-content:center;transition:transform .15s ease}.circular-progress-container:hover{transform:scale(1.02)}.circular-progress-svg{display:block;overflow:visible;margin:0 auto}.circular-progress-bar,.circular-progress-segment{transition:stroke-dashoffset .6s ease-out}.circular-progress-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:none}.circular-progress-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.125rem;max-width:70%}.circular-progress-value{font-size:1.25rem;font-weight:700;line-height:1;color:var(--chart-text, #212529);white-space:nowrap}.circular-progress-label{font-size:.625rem;font-weight:500;line-height:1.2;color:var(--chart-text-muted, #6c757d);text-transform:uppercase;letter-spacing:.025em;white-space:nowrap}.circular-progress-content i{font-size:1.5rem;color:var(--chart-text, #212529);line-height:1}.circular-progress-container.circular-progress-xs .circular-progress-value{font-size:.625rem}.circular-progress-container.circular-progress-xs .circular-progress-label{font-size:.4rem}.circular-progress-container.circular-progress-xs .circular-progress-content i{font-size:.75rem}.circular-progress-container.circular-progress-sm .circular-progress-value{font-size:.875rem}.circular-progress-container.circular-progress-sm .circular-progress-label{font-size:.5rem}.circular-progress-container.circular-progress-sm .circular-progress-content i{font-size:1rem}.circular-progress-container.circular-progress-md .circular-progress-value{font-size:1.125rem}.circular-progress-container.circular-progress-md .circular-progress-label{font-size:.5625rem}.circular-progress-container.circular-progress-md .circular-progress-content i{font-size:1.25rem}.circular-progress-container.circular-progress-lg .circular-progress-value{font-size:1.5rem}.circular-progress-container.circular-progress-lg .circular-progress-label{font-size:.6875rem}.circular-progress-container.circular-progress-lg .circular-progress-content i{font-size:1.75rem}.circular-progress-container.circular-progress-xl .circular-progress-value{font-size:2.25rem}.circular-progress-container.circular-progress-xl .circular-progress-label{font-size:.8125rem}.circular-progress-container.circular-progress-xl .circular-progress-content i{font-size:2.5rem}.circular-progress-container.circular-progress-success .circular-progress-value,.circular-progress-container.circular-progress-success .circular-progress-content i{color:#198754}.circular-progress-container.circular-progress-danger .circular-progress-value,.circular-progress-container.circular-progress-danger .circular-progress-content i{color:#dc3545}.circular-progress-container.circular-progress-warning .circular-progress-value,.circular-progress-container.circular-progress-warning .circular-progress-content i{color:#ffc107}.circular-progress-container.circular-progress-info .circular-progress-value,.circular-progress-container.circular-progress-info .circular-progress-content i{color:#0dcaf0}.circular-progress-clickable .circular-progress-container{cursor:pointer;transition:transform .15s ease,filter .15s ease}.circular-progress-clickable .circular-progress-container:hover{transform:scale(1.05);filter:brightness(1.1)}.circular-progress-clickable .circular-progress-container:active{transform:scale(.98)}.circular-progress-shadow .circular-progress-container{filter:drop-shadow(0 .25rem .5rem rgba(0,0,0,.15))}.circular-progress-theme-shadowed .circular-progress-svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.circular-progress-theme-shadowed circle[class*=progress]{filter:drop-shadow(0 3px 6px rgba(0,0,0,.2)) drop-shadow(0 1px 3px rgba(0,0,0,.3))}.circular-progress-theme-shadowed .circular-progress-svg circle:not([class]){filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.circular-progress-theme-dark{background:#1f2937;border-radius:.5rem;padding:1rem}.circular-progress-theme-dark .circular-progress-value,.circular-progress-theme-dark .circular-progress-label{color:#e5e7eb}.circular-progress-theme-light{background:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 3px #0000001a}.circular-progress-theme-light .circular-progress-value,.circular-progress-theme-light .circular-progress-label{color:#111827}@keyframes circular-progress-pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}[data-theme=dark] .circular-progress-value{color:var(--chart-text, #ffffff)}[data-theme=dark] .circular-progress-label{color:var(--chart-text-muted, #adb5bd)}[data-theme=dark] .circular-progress-content i{color:var(--chart-text, #ffffff)}[data-theme=dark] .circular-progress-success .circular-progress-value,[data-theme=dark] .circular-progress-success .circular-progress-content i{color:#75b798}[data-theme=dark] .circular-progress-danger .circular-progress-value,[data-theme=dark] .circular-progress-danger .circular-progress-content i{color:#ea868f}[data-theme=dark] .circular-progress-warning .circular-progress-value,[data-theme=dark] .circular-progress-warning .circular-progress-content i{color:#ffda6a}[data-theme=dark] .circular-progress-info .circular-progress-value,[data-theme=dark] .circular-progress-info .circular-progress-content i{color:#6edff6}@media (prefers-reduced-motion: reduce){.circular-progress-bar,.circular-progress-segment,.circular-progress-container{transition:none!important;animation:none!important}}@media (prefers-contrast: high){.circular-progress-container{outline:2px solid currentColor;outline-offset:2px}}.circular-progress-clickable .circular-progress-container:focus{outline:2px solid var(--bs-primary, #0d6efd);outline-offset:2px}@media print{.circular-progress-container{break-inside:avoid}.circular-progress-clickable .circular-progress-container{cursor:default}}.metrics-chart-settings-popover{--bs-popover-max-width: 280px;--bs-popover-border-color: var(--chart-border);--bs-popover-header-bg: var(--bs-light, #f8f9fa);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: .75rem}[data-theme=dark] .metrics-chart-settings-popover{--bs-popover-bg: var(--chart-bg);--bs-popover-header-bg: var(--bs-dark, #2b3035);--bs-popover-border-color: var(--chart-border)}.metrics-chart-settings-content{padding:0}.metrics-chart-settings-content h6{font-weight:600;font-size:.875rem;color:var(--chart-text);margin-bottom:.5rem}.metrics-chart-settings-content .form-label{font-weight:600;color:var(--chart-text)}.metrics-chart-settings-content .form-select,.metrics-chart-settings-content .form-control{font-size:.875rem}.metrics-chart-settings-content .form-select:focus,.metrics-chart-settings-content .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem #0d6efd40}.metrics-chart-actions{position:absolute;top:.5rem;right:.5rem;z-index:10;display:flex;gap:.25rem;opacity:0;visibility:hidden;transition:all .2s ease}.metrics-mini-chart-widget:hover .metrics-chart-actions{opacity:1;visibility:visible}.metrics-chart-actions .metrics-refresh-btn,.metrics-chart-actions .metrics-settings-btn{width:18px;height:18px;padding:0;display:flex;align-items:center;justify-content:center;text-decoration:none;border-radius:.2rem;background:#ffffffe6;transition:all .15s ease}.metrics-chart-actions .metrics-refresh-btn:hover,.metrics-chart-actions .metrics-settings-btn:hover{transform:scale(1.25);background:#fff;box-shadow:0 2px 4px #0000001a}.metrics-chart-actions .metrics-refresh-btn i,.metrics-chart-actions .metrics-settings-btn i{font-size:.7rem}.metrics-mini-chart-widget .card[style*=background] .metrics-chart-actions .metrics-refresh-btn,.metrics-mini-chart-widget .card[style*=background] .metrics-chart-actions .metrics-settings-btn{background:#00000026}.metrics-mini-chart-widget .card[style*=background] .metrics-chart-actions .metrics-refresh-btn:hover,.metrics-mini-chart-widget .card[style*=background] .metrics-chart-actions .metrics-settings-btn:hover{background:#00000040}.metrics-chart-actions .metrics-refresh-btn i.spin{animation:spin-refresh 1s linear infinite}@keyframes spin-refresh{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.metrics-mini-chart-widget .card{transition:all .2s ease}.metrics-mini-chart-widget:hover .card{box-shadow:0 .5rem 1rem #00000026!important;transform:translateY(-2px)}@media (max-width: 575.98px){.metrics-chart-settings-popover{--bs-popover-max-width: 240px}.metrics-chart-settings-content h6{font-size:.8125rem}}:root{--auth-primary: #3b82f6;--auth-primary-hover: #2563eb;--auth-surface: #ffffff;--auth-text: #111827;--auth-muted: #6b7280;--auth-border: #e5e7eb;--auth-shadow: 0 10px 40px rgba(0, 0, 0, .1);--auth-shadow-hover: 0 15px 50px rgba(0, 0, 0, .15);--auth-gradient-start: #475569;--auth-gradient-end: #334155;--auth-radius: 12px;--auth-field-radius: 8px;--auth-spinner-size: 1rem;--auth-spinner-color: var(--auth-primary)}.auth-container{width:100%;max-width:420px;margin:3rem auto;animation:auth-fade-in .4s ease-in;color:var(--auth-text)}.auth-card{background:var(--auth-surface);border-radius:var(--auth-radius);box-shadow:var(--auth-shadow);padding:2rem;transition:box-shadow .25s ease,transform .2s ease}.auth-card:hover{box-shadow:var(--auth-shadow-hover);transform:translateY(-1px)}.auth-header{text-align:center;margin-bottom:1.5rem}.auth-title{font-size:1.75rem;font-weight:700;color:var(--auth-primary);margin:0 0 .25rem}.auth-subtitle{color:var(--auth-muted);font-size:.95rem;margin:0}.auth-container .alert{border-radius:8px;padding:.875rem 1rem;margin-bottom:1.25rem;font-size:.9rem;border:1px solid transparent;animation:auth-slide-down .3s ease}.auth-container .alert-success{background-color:#d1f4e0;border-color:#a3e3c4;color:#0f5132}.auth-container .alert-danger{background-color:#f8d7da;border-color:#f1aeb5;color:#842029}.auth-container .alert-info{background-color:#cfe2ff;border-color:#9ec5fe;color:#084298}.auth-container .form-label{display:block;font-weight:600;color:#374151;margin-bottom:.5rem;font-size:.92rem}.auth-container .form-control{width:100%;border-radius:var(--auth-field-radius);border:2px solid #e5e7eb;padding:.7rem .9rem;font-size:.95rem;line-height:1.25rem;transition:border-color .15s ease,box-shadow .15s ease;background:#fff;color:#111827;outline:none;box-sizing:border-box}.auth-container .form-control::placeholder{color:#9ca3af}.auth-container .form-control:focus{border-color:var(--auth-primary);box-shadow:0 0 0 .15rem #3b82f640}.auth-container .form-check{padding-left:1.75rem;margin-bottom:.75rem;position:relative}.auth-container .form-check-input{width:1.1rem;height:1.1rem;position:absolute;left:0;top:.15rem;margin:0;appearance:none;border:2px solid var(--auth-border);border-radius:4px;background:#fff;cursor:pointer}.auth-container .form-check-input:checked{background-color:var(--auth-primary);border-color:var(--auth-primary);box-shadow:inset 0 0 0 2px #fff}.auth-container .form-check-label{cursor:pointer;font-size:.95rem;color:#374151}.auth-container .btn{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:.7rem 1.1rem;font-weight:600;font-size:1rem;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid transparent;transition:transform .15s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease;text-decoration:none;background:#f9fafb;color:#111827}.auth-container .btn:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.auth-container .btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00000014}.auth-container .btn-primary{background:linear-gradient(135deg,var(--auth-gradient-start),var(--auth-gradient-end));color:#fff;border:none}.auth-container .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--auth-primary-hover),var(--auth-gradient-end));box-shadow:0 5px 15px #3b82f659}.auth-container .btn-outline-primary{background:transparent;color:var(--auth-primary);border-color:var(--auth-primary)}.auth-container .btn-outline-primary:hover:not(:disabled){background:#3b82f614;color:var(--auth-primary-hover)}.auth-container .btn-outline-secondary{background:transparent;color:#374151;border-color:#9ca3af}.auth-container .btn-outline-secondary:hover:not(:disabled){background:#f3f4f6;color:#111827}.auth-container .btn-link{background:transparent;border:none;color:var(--auth-primary);padding:0;font-weight:500}.auth-container .btn-link:hover{color:var(--auth-primary-hover);text-decoration:underline}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-container .spinner-border{display:inline-block;width:var(--auth-spinner-size);height:var(--auth-spinner-size);border:.15em solid rgba(0,0,0,.1);border-right-color:var(--auth-spinner-color);border-radius:50%;animation:auth-spin .75s linear infinite}.auth-container .w-100{width:100%}.auth-container .mb-2{margin-bottom:.5rem}.auth-container .mb-3{margin-bottom:.75rem}.auth-container .mb-4{margin-bottom:1rem}.auth-container .text-center{text-align:center}.auth-container .small{font-size:.875rem}.auth-container .px-3{padding-left:.75rem;padding-right:.75rem}.auth-container .d-grid{display:grid}.auth-container .gap-2{gap:.5rem}.auth-container .position-relative{position:relative}.auth-container .position-absolute{position:absolute}.auth-container .top-50{top:50%}.auth-container .start-50{left:50%}.auth-container .translate-middle{transform:translate(-50%,-50%)}.auth-container a{color:var(--auth-primary);text-decoration:none;transition:color .2s ease}.auth-container a:hover{color:var(--auth-primary-hover);text-decoration:underline}.auth-container .auth-view{animation:auth-fade-in .25s ease}@keyframes auth-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.auth-container *:focus-visible{outline:2px solid var(--auth-primary);outline-offset:2px}@media (max-width: 576px){.auth-card{padding:1.5rem}.auth-title{font-size:1.5rem}.auth-subtitle{font-size:.9rem}}.lightbox-component{position:relative;width:100%;height:100%;background:#000;overflow:hidden;font-family:var(--bs-font-sans-serif, system-ui, sans-serif)}.lightbox-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1}.lightbox-loading{text-align:center;color:#fff}.lightbox-loading .spinner-border{width:2rem;height:2rem;margin-bottom:1rem}.lightbox-component.loaded .lightbox-overlay{display:none}.image-viewer{position:relative;width:100%;height:100%;background:#000;overflow:hidden}.image-viewer-container{position:relative;width:100%;height:100%;min-height:400px}.image-viewer-content{position:relative;width:100%;height:100%;overflow:hidden;cursor:grab}.image-viewer-content:active,.image-viewer-content.dragging{cursor:grabbing}.image-viewer-image{position:absolute;top:50%;left:50%;transform-origin:center center;transition:transform .2s ease-out;max-width:none;max-height:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.image-viewer-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1}.image-viewer.loaded .image-viewer-overlay{display:none}.image-viewer-controls{position:absolute;bottom:20px;left:50%;transform:translate(-50%);z-index:10;display:flex;gap:10px;align-items:center;background:#000c;padding:8px 12px;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-viewer-info{color:#fff;font-size:12px;white-space:nowrap;margin-left:10px}.image-viewer-controls .btn{--bs-btn-border-color: rgba(255, 255, 255, .2);border-color:#fff3}.image-viewer-controls .btn:hover{--bs-btn-border-color: rgba(255, 255, 255, .4);border-color:#fff6}.image-editor{display:flex;flex-direction:column;height:100%;background:#f8f9fa}.image-editor-toolbar{padding:8px 12px;background:#fff;border-bottom:1px solid #dee2e6;flex-shrink:0}.image-editor-filters{background:#fff;border-bottom:1px solid #dee2e6;flex-shrink:0}.image-editor-filters .card{border:none;border-radius:0}.image-editor-workspace{flex:1;display:flex;flex-direction:column;overflow:hidden}.image-editor-content{flex:1;position:relative;background:#000;overflow:hidden;cursor:grab}.image-editor-content:active{cursor:grabbing}.image-editor-content.crop-mode{cursor:crosshair}.image-editor-image,.image-editor-canvas{position:absolute;top:50%;left:50%;transform-origin:center center;transition:transform .2s ease-out;max-width:none;max-height:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.image-editor-overlay{position:absolute;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1}.image-editor.loaded .image-editor-overlay{display:none}.image-editor-status{padding:4px 12px;background:#fff;border-top:1px solid #dee2e6;flex-shrink:0}.crop-overlay{position:absolute;inset:0;z-index:10}.crop-box{position:absolute;border:2px solid #007bff;background:#007bff1a;cursor:move}.crop-box:before{content:"";position:absolute;inset:0;border:1px dashed rgba(255,255,255,.5)}.crop-handle{position:absolute;width:8px;height:8px;background:#007bff;border:1px solid white;border-radius:1px}.crop-handle-nw{top:-4px;left:-4px;cursor:nw-resize}.crop-handle-ne{top:-4px;right:-4px;cursor:ne-resize}.crop-handle-sw{bottom:-4px;left:-4px;cursor:sw-resize}.crop-handle-se{bottom:-4px;right:-4px;cursor:se-resize}.crop-handle-n{top:-4px;left:50%;transform:translate(-50%);cursor:n-resize}.crop-handle-s{bottom:-4px;left:50%;transform:translate(-50%);cursor:s-resize}.crop-handle-w{left:-4px;top:50%;transform:translateY(-50%);cursor:w-resize}.crop-handle-e{right:-4px;top:50%;transform:translateY(-50%);cursor:e-resize}.form-range::-webkit-slider-thumb{background:#007bff}.form-range::-moz-range-thumb{background:#007bff}.btn.active{background-color:#007bff;border-color:#007bff;color:#fff}.pdf-viewer{display:flex;flex-direction:column;height:100%;background:#f8f9fa}.pdf-viewer-toolbar{padding:8px 12px;background:#fff;border-bottom:1px solid #dee2e6;flex-shrink:0}.pdf-viewer-toolbar .page-input{width:60px}.pdf-viewer-toolbar .page-total{background:transparent;border-left:none;font-size:.8em}.pdf-viewer-content{flex:1;position:relative;background:#525659;overflow:auto;display:flex;align-items:center;justify-content:center}.pdf-canvas-container{position:relative;background:#fff;box-shadow:0 4px 12px #0000004d;margin:20px}.pdf-canvas{display:block;max-width:100%;max-height:100%}.pdf-viewer-overlay{position:absolute;inset:0;background:#0000001a;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;color:#6c757d}.pdf-viewer.loaded .pdf-viewer-overlay{display:none}.pdf-viewer-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;min-width:300px}.pdf-viewer-status{padding:4px 12px;background:#fff;border-top:1px solid #dee2e6;flex-shrink:0}.pdf-viewer-loading{text-align:center}.pdf-viewer-loading .spinner-border{width:2rem;height:2rem}.lightbox-toolbar .btn:disabled{opacity:.4}.lightbox-toolbar .btn-group{margin-right:.5rem}.lightbox-controls .btn{border-color:#fff3}.lightbox-controls .btn:hover:not(:disabled){border-color:#fff6;background-color:#ffffff1a}.lightbox-controls .btn:focus{box-shadow:0 0 0 .2rem #ffffff40}@media (max-width: 768px){.image-editor-toolbar .btn-group,.pdf-viewer-toolbar .btn-group{margin-bottom:4px}.image-editor-toolbar .btn-toolbar,.pdf-viewer-toolbar .btn-toolbar{flex-wrap:wrap}.image-viewer-controls{bottom:10px;left:10px;right:10px;transform:none;flex-wrap:wrap;justify-content:center}.image-editor-filters .row{margin:0}.image-editor-filters .col-md-6{margin-bottom:1rem}}@media (max-width: 576px){.lightbox-toolbar{padding:4px 8px}.lightbox-toolbar .btn-sm{padding:.125rem .25rem;font-size:.75rem}.image-viewer-controls{padding:6px 8px}.image-viewer-info{font-size:11px}}.lightbox-component:focus-within{outline:2px solid #007bff;outline-offset:2px}.crop-handle:focus{outline:2px solid #fff;outline-offset:1px}.lightbox-toolbar .btn:focus,.lightbox-controls .btn:focus{z-index:3}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media print{.lightbox-toolbar,.lightbox-controls,.lightbox-overlay,.crop-overlay{display:none!important}.pdf-canvas,.image-viewer-image{position:static!important;transform:none!important;max-width:100%!important;max-height:none!important}.lightbox-component{background:#fff!important;overflow:visible!important}}.lightbox-component *{transition:opacity .2s ease-out,transform .2s ease-out}.crop-box{transition:all .1s ease-out}.lightbox-overlay{transition:opacity .3s ease-out}.btn{transition:all .15s ease-in-out}.pdf-viewer-content{scroll-behavior:smooth}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.pdf-canvas{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.crop-handle{width:10px;height:10px}}:root{--docit-primary: #2563eb;--docit-primary-hover: #1d4ed8;--docit-primary-light: #dbeafe;--docit-bg-primary: #ffffff;--docit-bg-secondary: #f8fafc;--docit-bg-tertiary: #f1f5f9;--docit-text-primary: #1e293b;--docit-text-secondary: #64748b;--docit-text-muted: #94a3b8;--docit-border: #e2e8f0;--docit-sidebar-width: 280px;--docit-sidebar-collapsed-width: 0px;--docit-header-height: 56px;--docit-content-max-width: 900px;--docit-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;--docit-font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", monospace}.docit-app-layout{display:flex;flex-direction:column;height:100vh}#topnav-container .navbar{height:var(--docit-header-height)}.docit-body-layout{display:flex;flex-grow:1;overflow:hidden}.docit-sidebar{width:var(--docit-sidebar-width);background:var(--docit-bg-secondary);border-right:1px solid var(--docit-border);overflow-y:auto;transition:width .3s ease,transform .3s ease;height:calc(100vh - var(--docit-header-height));position:sticky;top:var(--docit-header-height)}.docit-main{flex-grow:1;overflow-y:auto;height:calc(100vh - var(--docit-header-height))}.docit-content{width:100%;max-width:var(--docit-content-max-width);margin:0 auto;padding:2rem}.sidebar-collapsed .docit-sidebar{width:var(--docit-sidebar-collapsed-width);transform:translate(calc(-1 * var(--docit-sidebar-width)))}.sidebar-collapsed .toggle-chevron{transform:rotate(0)}.topnav-sidebar-toggle{background:none;border:none;color:#fff;padding:0 .5rem}.toggle-chevron{transition:transform .3s ease;transform:rotate(180deg)}.docit-sidebar-nav{height:100%;display:flex;flex-direction:column}.docit-nav-header{padding:1.5rem 1.25rem 1rem;border-bottom:1px solid var(--docit-border);background:var(--docit-bg-primary);position:sticky;top:0;z-index:10;display:flex;align-items:center}.docit-nav-title{font-size:1.125rem;font-weight:600;margin:0}.docit-nav-body{flex:1;overflow-y:auto;padding:1rem 0}.docit-page-toolbar{margin-top:-20px}.docit-nav-footer{padding:.75rem;border-top:1px solid var(--docit-border)}.docit-book-item,.docit-page-link{display:flex;align-items:center;padding:.625rem 1.25rem;margin:0 .75rem .25rem;border-radius:.375rem;cursor:pointer;transition:background-color .15s ease,color .15s ease;color:var(--docit-text-secondary);text-decoration:none}.docit-book-item:hover,.docit-page-link:hover{background:var(--docit-bg-tertiary);color:var(--docit-text-primary)}.docit-book-item.active,.docit-page-link.active{font-weight:700;color:var(--docit-text-primary)}.docit-book-item .book-title{flex:1;font-weight:500}.docit-page-container{animation:fadeIn .3s ease}.docit-page-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid var(--docit-border)}.docit-page-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.docit-page-title{font-size:2.25rem;font-weight:700;margin:0}.docit-page-meta{margin-top:.75rem;font-size:.875rem;color:var(--docit-text-muted)}.docit-page-meta span{margin-right:1rem}.docit-content h1,.docit-content h2,.docit-content h3,.docit-content h4{margin-bottom:1rem;font-weight:600}.docit-content p{margin-bottom:1.25rem}.docit-content a{color:var(--docit-primary);text-decoration:none}.docit-content a:hover{text-decoration:underline}.docit-content code{background:var(--docit-bg-tertiary);padding:.125rem .375rem;border-radius:.25rem;font-family:var(--docit-font-mono)}.docit-content pre{background:var(--docit-bg-secondary);border:1px solid var(--docit-border);border-radius:.5rem;padding:1rem;overflow-x:auto}.docit-edit-container{display:flex;flex-direction:column}.docit-edit-header{background:var(--docit-bg-secondary);border-bottom:1px solid var(--docit-border);padding:1rem 1.5rem}.docit-edit-title-row{display:flex;align-items:center;justify-content:space-between}.docit-edit-body{flex-grow:1}.docit-loading,.docit-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;color:var(--docit-text-muted)}.docit-empty-state i{font-size:3rem;opacity:.5;margin-bottom:1rem}.docit-empty-state h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--docit-text-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.highlight .hll{background-color:#ffc}.highlight{background:#f8f8f8}.highlight .c{color:#408080;font-style:italic}.highlight .err{border:1px solid #ff0000}.highlight .k{color:green;font-weight:700}.highlight .o{color:#666}.highlight .ch,.highlight .cm{color:#408080;font-style:italic}.highlight .cp{color:#bc7a00}.highlight .cpf,.highlight .c1,.highlight .cs{color:#408080;font-style:italic}.highlight .gd{color:#a00000}.highlight .ge{font-style:italic}.highlight .gr{color:red}.highlight .gh{color:navy;font-weight:700}.highlight .gi{color:#00a000}.highlight .go{color:#888}.highlight .gp{color:navy;font-weight:700}.highlight .gs{font-weight:700}.highlight .gu{color:purple;font-weight:700}.highlight .gt{color:#04d}.highlight .kc,.highlight .kd,.highlight .kn{color:green;font-weight:700}.highlight .kp{color:green}.highlight .kr{color:green;font-weight:700}.highlight .kt{color:#b00040}.highlight .m{color:#666}.highlight .s{color:#ba2121}.highlight .na{color:#7d9029}.highlight .nb{color:green}.highlight .nc{color:#00f;font-weight:700}.highlight .no{color:#800}.highlight .nd{color:#a2f}.highlight .ni{color:#999;font-weight:700}.highlight .ne{color:#d2413a;font-weight:700}.highlight .nf{color:#00f}.highlight .nl{color:#a0a000}.highlight .nn{color:#00f;font-weight:700}.highlight .nt{color:green;font-weight:700}.highlight .nv{color:#19177c}.highlight .ow{color:#a2f;font-weight:700}.highlight .w{color:#bbb}.highlight .mb,.highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo{color:#666}.highlight .sa,.highlight .sb,.highlight .sc,.highlight .dl{color:#ba2121}.highlight .sd{color:#ba2121;font-style:italic}.highlight .s2{color:#ba2121}.highlight .se{color:#b62;font-weight:700}.highlight .sh{color:#ba2121}.highlight .si{color:#b68;font-weight:700}.highlight .sx{color:green}.highlight .sr{color:#b68}.highlight .s1{color:#ba2121}.highlight .ss{color:#19177c}.highlight .bp{color:green}.highlight .fm{color:#00f}.highlight .vc,.highlight .vg,.highlight .vi,.highlight .vm{color:#19177c}.highlight .il{color:#666}:root{--bs-primary: #1a73e8;--bs-secondary: #5f6368;--bs-success: #34a853;--bs-info: #4285f4;--bs-warning: #fbbc05;--bs-danger: #ea4335;--bs-light: #f1f3f4;--bs-dark: #202124;--bs-primary-bg-subtle: #e8f0fe;--bs-secondary-bg-subtle: #f1f3f4;--bs-success-bg-subtle: #e6f4ea;--bs-info-bg-subtle: #e8f0fe;--bs-warning-bg-subtle: #fef7e0;--bs-danger-bg-subtle: #fce8e6;--bs-primary-border-subtle: #aecbfa;--bs-secondary-border-subtle: #dadce0;--bs-success-border-subtle: #81c995;--bs-info-border-subtle: #aecbfa;--bs-warning-border-subtle: #fad2cf;--bs-danger-border-subtle: #f28b82;--bs-primary-text-emphasis: #174ea6;--bs-secondary-text-emphasis: #3c4043;--bs-success-text-emphasis: #0d652d;--bs-info-text-emphasis: #174ea6;--bs-warning-text-emphasis: #b06000;--bs-danger-text-emphasis: #a50e0e;--bs-btn-hover-bg: #e8f0fe}:root[data-bs-theme=ocean]{--bs-primary: #0077b6;--bs-secondary: #90e0ef;--bs-success: #00b4d8;--bs-info: #48cae4;--bs-warning: #ffd166;--bs-danger: #ef476f;--bs-light: #f1faff;--bs-dark: #03045e;--bs-primary-bg-subtle: #caf0f8;--bs-secondary-bg-subtle: #e0fbfc;--bs-success-bg-subtle: #ade8f4;--bs-info-bg-subtle: #caf0f8;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #fde2e4;--bs-primary-text-emphasis: #023e8a;--bs-success-text-emphasis: #0077b6;--bs-danger-text-emphasis: #9d0208}:root[data-bs-theme=sunrise]{--bs-primary: #ff6f00;--bs-secondary: #ffb703;--bs-success: #fb8500;--bs-info: #ffb4a2;--bs-warning: #ffd166;--bs-danger: #e63946;--bs-light: #fff3e6;--bs-dark: #432818;--bs-primary-bg-subtle: #fff4e1;--bs-secondary-bg-subtle: #fff8dc;--bs-success-bg-subtle: #ffe5b4;--bs-info-bg-subtle: #ffe0d9;--bs-warning-bg-subtle: #fff7d6;--bs-danger-bg-subtle: #fddede;--bs-primary-text-emphasis: #9d4b00;--bs-success-text-emphasis: #a85d00;--bs-danger-text-emphasis: #8d0000}:root[data-bs-theme=forest]{--bs-primary: #2b9348;--bs-secondary: #95d5b2;--bs-success: #55a630;--bs-info: #76c893;--bs-warning: #ffba08;--bs-danger: #d62828;--bs-light: #f0fdf4;--bs-dark: #081c15;--bs-primary-bg-subtle: #d8f3dc;--bs-secondary-bg-subtle: #e9f5eb;--bs-success-bg-subtle: #c7f9cc;--bs-info-bg-subtle: #e9fbee;--bs-warning-bg-subtle: #fff8e1;--bs-danger-bg-subtle: #ffe5e5;--bs-primary-text-emphasis: #1a472a;--bs-success-text-emphasis: #2f5233;--bs-danger-text-emphasis: #7a1a1a}:root[data-bs-theme=midnight]{--bs-primary: #5a189a;--bs-secondary: #7b2cbf;--bs-success: #06d6a0;--bs-info: #118ab2;--bs-warning: #ffd166;--bs-danger: #ef476f;--bs-light: #f8f9fa;--bs-dark: #03071e;--bs-primary-bg-subtle: #e0d4f7;--bs-secondary-bg-subtle: #f1e4ff;--bs-success-bg-subtle: #d0fdf2;--bs-info-bg-subtle: #d0ebff;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #fbdde2;--bs-primary-text-emphasis: #240046;--bs-success-text-emphasis: #056b53;--bs-danger-text-emphasis: #9d001f}:root[data-bs-theme=corporate]{--bs-primary: #2a5d9f;--bs-secondary: #6c757d;--bs-success: #4caf50;--bs-info: #17a2b8;--bs-warning: #f0ad4e;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-bg-subtle: #e7f0fa;--bs-secondary-bg-subtle: #f1f3f5;--bs-success-bg-subtle: #eaf6ec;--bs-info-bg-subtle: #e6f7fa;--bs-warning-bg-subtle: #fff4e0;--bs-danger-bg-subtle: #fcebec;--bs-primary-border-subtle: #c2d7ed;--bs-secondary-border-subtle: #dee2e6;--bs-success-border-subtle: #c8e6c9;--bs-info-border-subtle: #bde3ea;--bs-warning-border-subtle: #ffe0b2;--bs-danger-border-subtle: #f5c2c7;--bs-primary-text-emphasis: #1d3f6e;--bs-secondary-text-emphasis: #495057;--bs-success-text-emphasis: #2e7d32;--bs-info-text-emphasis: #0d6673;--bs-warning-text-emphasis: #a46900;--bs-danger-text-emphasis: #8a1c24}:root{--mojo-primary: var(--bs-primary);--mojo-primary-rgb: var(--bs-primary-rgb);--mojo-secondary: var(--bs-secondary);--mojo-secondary-rgb: var(--bs-secondary-rgb);--mojo-success: var(--bs-success);--mojo-success-rgb: var(--bs-success-rgb);--mojo-info: var(--bs-info);--mojo-info-rgb: var(--bs-info-rgb);--mojo-warning: var(--bs-warning);--mojo-warning-rgb: var(--bs-warning-rgb);--mojo-danger: var(--bs-danger);--mojo-danger-rgb: var(--bs-danger-rgb);--mojo-light: var(--bs-light);--mojo-light-rgb: var(--bs-light-rgb);--mojo-dark: var(--bs-dark);--mojo-dark-rgb: var(--bs-dark-rgb);--mojo-body-bg: var(--bs-body-bg);--mojo-body-color: var(--bs-body-color);--mojo-emphasis-color: var(--bs-emphasis-color);--mojo-secondary-color: var(--bs-secondary-color);--mojo-tertiary-color: var(--bs-tertiary-color);--mojo-bg-primary: var(--bs-body-bg);--mojo-bg-secondary: var(--bs-secondary-bg);--mojo-bg-tertiary: var(--bs-tertiary-bg);--mojo-border-color: var(--bs-border-color);--mojo-border-color-translucent: var(--bs-border-color-translucent);--mojo-hover-bg: var(--bs-secondary-bg);--mojo-active-bg: var(--bs-primary);--mojo-focus-color: var(--bs-primary);--mojo-focus-shadow: 0 0 0 .25rem rgba(var(--bs-primary-rgb), .25);--mojo-transition-fast: .15s ease-in-out;--mojo-transition-base: .2s ease-in-out;--mojo-transition-slow: .3s ease-in-out;--mojo-border-radius-sm: var(--bs-border-radius-sm);--mojo-border-radius: var(--bs-border-radius);--mojo-border-radius-lg: var(--bs-border-radius-lg);--mojo-border-radius-xl: var(--bs-border-radius-xl);--mojo-spacer-xs: calc(var(--bs-spacer) * .25);--mojo-spacer-sm: calc(var(--bs-spacer) * .5);--mojo-spacer: var(--bs-spacer);--mojo-spacer-lg: calc(var(--bs-spacer) * 1.5);--mojo-spacer-xl: calc(var(--bs-spacer) * 3);--mojo-font-sans-serif: var(--bs-font-sans-serif);--mojo-font-monospace: var(--bs-font-monospace);--mojo-box-shadow-sm: var(--bs-box-shadow-sm);--mojo-box-shadow: var(--bs-box-shadow);--mojo-box-shadow-lg: var(--bs-box-shadow-lg);--mojo-zindex-dropdown: var(--bs-zindex-dropdown, 1000);--mojo-zindex-sticky: var(--bs-zindex-sticky, 1020);--mojo-zindex-fixed: var(--bs-zindex-fixed, 1030);--mojo-zindex-modal-backdrop: var(--bs-zindex-modal-backdrop, 1040);--mojo-zindex-offcanvas: var(--bs-zindex-offcanvas, 1045);--mojo-zindex-modal: var(--bs-zindex-modal, 1050);--mojo-zindex-popover: var(--bs-zindex-popover, 1070);--mojo-zindex-tooltip: var(--bs-zindex-tooltip, 1080)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: var(--bs-primary);--bs-btn-border-color: var(--bs-primary);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-primary) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-primary) 82%, #000 18%);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-primary) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-primary) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb, 13, 110, 253)}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: var(--bs-success);--bs-btn-border-color: var(--bs-success);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-success) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-success) 82%, #000 18%);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-success) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-success) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-success-rgb, 25, 135, 84)}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: var(--bs-danger);--bs-btn-border-color: var(--bs-danger);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-danger) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-danger) 82%, #000 18%);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-danger) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-danger) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-danger-rgb, 220, 53, 69)}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: var(--bs-warning);--bs-btn-border-color: var(--bs-warning);--bs-btn-hover-color: #000;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-warning) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-warning) 82%, #000 18%);--bs-btn-active-color: #000;--bs-btn-active-bg: color-mix(in srgb, var(--bs-warning) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-warning) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-warning-rgb, 255, 193, 7)}.btn-info{--bs-btn-color: #000;--bs-btn-bg: var(--bs-info);--bs-btn-border-color: var(--bs-info);--bs-btn-hover-color: #000;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-info) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-info) 82%, #000 18%);--bs-btn-active-color: #000;--bs-btn-active-bg: color-mix(in srgb, var(--bs-info) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-info) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-info-rgb, 13, 202, 240)}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: var(--bs-secondary);--bs-btn-border-color: var(--bs-secondary);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: color-mix(in srgb, var(--bs-secondary) 88%, #000 12%);--bs-btn-hover-border-color: color-mix(in srgb, var(--bs-secondary) 82%, #000 18%);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-secondary) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-secondary) 72%, #000 28%);--bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb, 108, 117, 125)}.btn-outline-primary{--bs-btn-color: var(--bs-primary);--bs-btn-border-color: var(--bs-primary);--bs-btn-hover-color: #fff;--bs-btn-hover-bg: var(--bs-primary);--bs-btn-hover-border-color: var(--bs-primary);--bs-btn-active-color: #fff;--bs-btn-active-bg: color-mix(in srgb, var(--bs-primary) 75%, #000 25%);--bs-btn-active-border-color: color-mix(in srgb, var(--bs-primary) 75%, #000 25%);--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb, 13, 110, 253)}.pagination{--bs-pagination-color: var(--bs-primary);--bs-pagination-hover-color: color-mix(in srgb, var(--bs-primary) 85%, #000 15%);--bs-pagination-focus-color: var(--bs-primary);--bs-pagination-focus-box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--bs-primary) 25%, transparent);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: var(--bs-primary);--bs-pagination-active-border-color: var(--bs-primary);--bs-pagination-disabled-color: var(--bs-secondary, #6c757d)}.btn-link{text-decoration:none}.btn-link:hover{text-decoration:underline;background-color:transparent;border-color:none}.badge.bg-primary{--bs-badge-color: #fff;--bs-badge-bg: var(--bs-primary)}.nav-pills{--bs-nav-pills-link-active-bg: var(--bs-primary);--bs-nav-pills-link-active-color: #fff}.nav-tabs{--bs-nav-tabs-link-hover-border-color: color-mix(in srgb, var(--bs-primary) 35%, transparent);--bs-nav-tabs-link-active-color: var(--bs-primary);--bs-nav-tabs-link-active-border-color: var(--bs-primary)}.nav-tabs .nav-link{color:var(--bs-secondary)}.nav-tabs .nav-link.active{border-top-color:#1a73e8;border-right-color:#1a73e8;border-bottom-color:transparent;border-left-color:#1a73e8}.tab-view-select-style{display:inline-flex;align-items:center;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);background-color:var(--bs-body-bg);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border-top:1px solid var(--bs-border-color);border-right:1px solid var(--bs-border-color);border-left:1px solid var(--bs-border-color);border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}.tab-view-select-style:after{display:none}.tab-view-select-style:hover{border-color:var(--bs-secondary-border-subtle)}.tab-view-select-style:focus{border-color:var(--bs-primary);outline:0;box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.25)}.tab-view-select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alert-primary{--bs-alert-color: var( --bs-primary-text-emphasis, color-mix(in srgb, var(--bs-primary) 35%, #000) );--bs-alert-bg: var(--bs-primary-bg-subtle, color-mix(in srgb, var(--bs-primary) 10%, #fff));--bs-alert-border-color: var( --bs-primary-border-subtle, color-mix(in srgb, var(--bs-primary) 25%, #fff) )}:root{--bs-link-color: var(--bs-primary);--bs-link-hover-color: color-mix(in srgb, var(--bs-primary) 85%, #000 15%)}.form-check{margin-top:.9rem}@keyframes mojo-fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes mojo-slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.mojo-fade-in{animation:mojo-fadeIn var(--mojo-transition-slow) ease-in-out}.mojo-slide-up{animation:mojo-slideUp .4s ease-out}.mojo-spin{animation:mojo-spin 1s linear infinite;display:inline-block}.mojo-pulse{animation:mojo-pulse 2s ease-in-out infinite}.mojo-bounce{animation:mojo-bounce .5s ease-in-out}.bi-spin{animation:mojo-spin 1s linear infinite;display:inline-block}.mojo-text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.mojo-text-truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.mojo-transition-fast{transition:all var(--mojo-transition-fast)}.mojo-transition{transition:all var(--mojo-transition-base)}.mojo-transition-slow{transition:all var(--mojo-transition-slow)}.mojo-transform-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mojo-transform-center-x{position:absolute;left:50%;transform:translate(-50%)}.mojo-transform-center-y{position:absolute;top:50%;transform:translateY(-50%)}.mojo-hover-lift:hover{transform:translateY(-2px);transition:transform var(--mojo-transition-fast)}.mojo-hover-shadow:hover{box-shadow:0 .5rem 1rem #00000026;transition:box-shadow var(--mojo-transition-fast)}.mojo-glass{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid rgba(255,255,255,.2)}[data-bs-theme=dark] .mojo-glass{background:#0003;border:1px solid rgba(255,255,255,.1)}.mojo-loading{pointer-events:none;opacity:.6;position:relative}.mojo-loading:after{content:"";position:absolute;top:50%;left:50%;width:1rem;height:1rem;margin:-.5rem 0 0 -.5rem;border:2px solid transparent;border-top:2px solid var(--mojo-primary);border-radius:50%;animation:mojo-spin 1s linear infinite;z-index:1}.mojo-focus-ring:focus{outline:none;box-shadow:var(--mojo-focus-shadow)}.mojo-focus-ring:focus-visible{outline:2px solid var(--mojo-focus-color);outline-offset:2px}.fs-7{font-size:.75rem!important}.fs-8{font-size:.6875rem!important}.fs-9{font-size:.625rem!important}.fs-10{font-size:.5625rem!important}@media print{.mojo-print-hide{display:none!important}.mojo-print-show{display:block!important}.mojo-no-print-shadow{box-shadow:none!important}.mojo-no-print-bg{background:#fff!important;color:#000!important}}.mojo-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.mojo-skip-link{position:absolute;top:-40px;left:6px;background:var(--mojo-emphasis-color);color:var(--mojo-body-bg);padding:8px;text-decoration:none;z-index:var(--mojo-zindex-tooltip);border-radius:var(--mojo-border-radius)}.mojo-skip-link:focus{top:6px}@media (prefers-reduced-motion: reduce){.mojo-fade-in,.mojo-slide-up,.mojo-spin,.mojo-pulse,.mojo-bounce,.bi-spin,.mojo-loading:after{animation-duration:.01ms!important;animation-iteration-count:1!important}.mojo-transition-fast,.mojo-transition,.mojo-transition-slow,.mojo-hover-lift:hover,.mojo-hover-shadow:hover{transition:none!important}}@media (prefers-contrast: high){.mojo-glass{background:var(--mojo-body-bg);border:2px solid var(--mojo-border-color);-webkit-backdrop-filter:none;backdrop-filter:none}.mojo-focus-ring:focus,.mojo-focus-ring:focus-visible{outline:3px solid var(--mojo-focus-color);outline-offset:2px;box-shadow:0 0 0 .5rem rgba(var(--mojo-primary-rgb),.5)}}.mojo-app{min-height:100vh;font-family:var(--mojo-font-sans-serif);background-color:var(--mojo-body-bg);color:var(--mojo-body-color)}.mojo-app.mojo-loading{opacity:0}.mojo-app.mojo-ready{opacity:1;transition:opacity var(--mojo-transition-slow)}.mojo-component{position:relative}.mojo-component.mojo-disabled{pointer-events:none;opacity:.6}.mojo-debug *{outline:1px solid red!important}.mojo-debug *:hover{background:#ff00001a!important}.drag-over{border-color:var(--bs-primary)!important;background-color:var(--bs-primary-bg-subtle)!important;transition:all .2s ease}.drag-active{border-style:dashed!important;border-width:2px!important;box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.25)!important}.drag-over.drag-active{transform:scale(1.02);box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.25),0 .5rem 1rem #00000026!important}[data-bs-theme=dark] .drag-over{background-color:rgba(var(--bs-primary-rgb),.15)!important}@media (prefers-reduced-motion: reduce){.drag-over,.drag-active{transition:none!important;transform:none!important}}@media (min-width: 1px){.mojo-debug{display:none}}.mojo-debug-enabled .mojo-debug{display:block!important}.image-field-container{position:relative;display:inline-block;border-radius:.375rem;overflow:hidden}.image-drop-zone{position:relative;border-radius:.375rem;transition:all .2s ease;overflow:hidden}.image-drop-zone.droppable{border:2px dashed var(--bs-border-color)}.image-drop-zone.droppable:hover{border-color:var(--bs-primary);background-color:var(--bs-primary-bg-subtle)}.image-drop-zone.drag-over{border-color:var(--bs-primary)!important;background-color:var(--bs-primary-bg-subtle)!important;transform:scale(1.02)}.image-drop-zone.drag-active{border-color:var(--bs-success)!important;background-color:var(--bs-success-bg-subtle)!important;box-shadow:0 0 0 3px rgba(var(--bs-success-rgb),.25)}.image-field-xs{width:48px;height:48px}.image-field-sm{width:96px;height:96px}.image-field-md{width:150px;height:150px}.image-field-lg{width:200px;height:200px}.image-field-xl{width:300px;height:300px}.image-field-container img{transition:transform .2s ease}.image-field-container:hover img{transform:scale(1.05)}.image-field-container .btn{transition:opacity .2s ease}.image-field-container:not(:hover) .btn{opacity:.6}[data-bs-theme=dark] .image-drop-zone.droppable{border-color:var(--bs-border-color-translucent)}[data-bs-theme=dark] .image-drop-zone.droppable:hover{border-color:var(--bs-primary);background-color:rgba(var(--bs-primary-rgb),.1)}@media (max-width: 576px){.image-field-xl{width:250px;height:250px}.image-field-lg{width:180px;height:180px}}.image-drop-zone:focus{outline:2px solid var(--bs-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){.image-drop-zone,.image-field-container img,.image-field-container .btn{transition:none}.image-drop-zone.drag-over,.image-field-container:hover img{transform:none}}.mojo-form-group{margin-bottom:1rem}.mojo-form-group .h6{color:var(--bs-secondary);font-weight:600;margin-bottom:.75rem;padding-bottom:.25rem;border-bottom:1px solid var(--bs-border-color)}@media (max-width: 767.98px){.mojo-form-group{padding:.75rem;margin-bottom:.75rem}}.mojo-form-control{margin-bottom:1rem;position:relative}.mojo-form-control .form-label{font-weight:500;margin-bottom:.5rem;color:var(--bs-body-color)}.mojo-form-control .form-text{margin-top:.25rem;font-size:.875rem;color:var(--bs-secondary)}.mojo-form-control .invalid-feedback{margin-top:.25rem}.mojo-form-control .form-check{margin-bottom:0}.mojo-form-control .form-check .form-check-label{font-weight:400}.mojo-form-control .image-field-container{margin-top:.5rem}.mojo-form-control input[type=range]{margin-top:.5rem;margin-bottom:.5rem}@media (max-width: 767.98px){.mojo-form-control{margin-bottom:.75rem}.mojo-form-control .form-label{margin-bottom:.375rem}}.mojo-modal-context-menu-btn{color:inherit!important;border:none;background:transparent;opacity:.7;transition:opacity .15s ease-in-out}.mojo-modal-context-menu-btn:hover,.mojo-modal-context-menu-btn:focus{color:inherit!important;background:rgba(var(--bs-emphasis-color-rgb),.1);opacity:1}.mojo-modal-context-menu-btn:active{background:rgba(var(--bs-emphasis-color-rgb),.2)}.modal.modal-info .mojo-modal-context-menu-btn,.modal.modal-success .mojo-modal-context-menu-btn{color:#fff!important}.modal.modal-warning .mojo-modal-context-menu-btn{color:#000!important}.modal.modal-error .mojo-modal-context-menu-btn,.modal.modal-dark .mojo-modal-context-menu-btn,[data-bs-theme=dark] .mojo-modal-context-menu-btn{color:#fff!important}.modal-header .mojo-modal-context-menu-btn{margin-left:auto;margin-right:0}.field-status{display:inline-block;margin-left:8px}.field-status-label-inline{display:inline-block;margin-left:8px;font-size:.875rem;vertical-align:middle}.field-status-overlay{position:absolute;top:50%;right:8px;transform:translateY(-50%);z-index:10;pointer-events:none}.field-status-full-overlay{position:absolute;inset:0;background-color:rgba(var(--bs-body-bg-rgb),.9);display:flex;align-items:center;justify-content:center;z-index:20;border-radius:var(--bs-border-radius)}.field-status-full-overlay .saving-indicator,.field-status-full-overlay .success-indicator,.field-status-full-overlay .error-indicator{display:flex;align-items:center;padding:8px 12px;background-color:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);box-shadow:0 2px 4px #0000001a}.field-status [data-status]{display:none;font-size:1rem;transition:opacity .3s ease,transform .3s ease}.field-status .spinner-border{width:1rem;height:1rem;vertical-align:middle}.field-status [data-status=saved]{color:var(--bs-success)}.field-status [data-status=error]{color:var(--bs-danger);cursor:help}@keyframes mojo-status-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes mojo-status-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@media (max-width: 576px){.field-status{margin-left:4px}.field-status [data-status]{font-size:.875rem}}@media (prefers-contrast: high){.field-status [data-status=saving]{color:#06c}.field-status [data-status=saved]{color:#060}.field-status [data-status=error]{color:#c00}}@media (prefers-reduced-motion: reduce){.field-status [data-status]{transition:none}.field-status [data-status].show,.field-status [data-status].hide{animation:none}@keyframes mojo-status-fade-in{0%,to{opacity:1;transform:scale(1)}}@keyframes mojo-status-fade-out{0%,to{opacity:0;transform:scale(1)}}}.collection-multiselect-view{width:100%}.collection-multiselect-actions{font-size:.8125rem;font-weight:500;letter-spacing:.025em}.collection-multiselect-actions .btn-link{color:var(--bs-primary);transition:all .2s ease}.collection-multiselect-actions .btn-link:hover:not(:disabled){color:var(--bs-primary);transform:translateY(-1px)}.collection-multiselect-actions .btn-link:active:not(:disabled){transform:translateY(0)}.collection-multiselect-actions .btn-link:disabled{opacity:.5;cursor:not-allowed}.collection-multiselect-list{background:var(--bs-body-bg)}.collection-multiselect-item{-webkit-user-select:none;user-select:none;transition:background-color .15s ease-in-out;border-bottom:1px solid transparent}.collection-multiselect-item:not(:last-child){border-bottom-color:var(--bs-border-color)}.collection-multiselect-item.clickable{cursor:pointer}.collection-multiselect-item.clickable:hover{background-color:rgba(var(--bs-primary-rgb),.06)}.collection-multiselect-item.clickable:active{background-color:rgba(var(--bs-primary-rgb),.1)}.collection-multiselect-item i{flex-shrink:0;transition:transform .15s ease}.collection-multiselect-item.clickable:hover i{transform:scale(1.1)}[data-bs-theme=dark] .collection-multiselect-item.clickable:hover{background-color:rgba(var(--bs-primary-rgb),.12)}[data-bs-theme=dark] .collection-multiselect-item.clickable:active{background-color:rgba(var(--bs-primary-rgb),.18)}.collection-multiselect-empty{background:var(--bs-light);border-style:dashed!important}[data-bs-theme=dark] .collection-multiselect-empty{background:var(--bs-gray-900)}.collection-multiselect-list::-webkit-scrollbar{width:6px}.collection-multiselect-list::-webkit-scrollbar-track{background:transparent}.collection-multiselect-list::-webkit-scrollbar-thumb{background:var(--bs-gray-400);border-radius:3px}.collection-multiselect-list::-webkit-scrollbar-thumb:hover{background:var(--bs-gray-500)}[data-bs-theme=dark] .collection-multiselect-list::-webkit-scrollbar-thumb{background:var(--bs-gray-600)}[data-bs-theme=dark] .collection-multiselect-list::-webkit-scrollbar-thumb:hover{background:var(--bs-gray-500)}@keyframes multiselect-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.collection-multiselect-item{animation:multiselect-fade-in .2s ease}@media (prefers-reduced-motion: reduce){.collection-multiselect-item,.collection-multiselect-item i,.collection-multiselect-actions .btn-link{transition:none;animation:none}.collection-multiselect-actions .btn-link:hover:not(:disabled){transform:none}}.tooltip{--mojo-tooltip-bg: var(--bs-dark);--mojo-tooltip-color: #fff;--mojo-tooltip-opacity: .95;--mojo-tooltip-border-radius: .375rem;--mojo-tooltip-font-size: .875rem;--mojo-tooltip-padding-y: .5rem;--mojo-tooltip-padding-x: .75rem;--mojo-tooltip-max-width: 200px;--mojo-tooltip-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);font-size:var(--mojo-tooltip-font-size)}.tooltip .tooltip-inner{max-width:var(--mojo-tooltip-max-width);padding:var(--mojo-tooltip-padding-y) var(--mojo-tooltip-padding-x);background-color:var(--mojo-tooltip-bg);color:var(--mojo-tooltip-color);border-radius:var(--mojo-tooltip-border-radius);opacity:var(--mojo-tooltip-opacity);box-shadow:var(--mojo-tooltip-box-shadow);text-align:left;font-weight:500}[data-bs-theme=dark] .tooltip{--mojo-tooltip-bg: rgba(255, 255, 255, .95);--mojo-tooltip-color: var(--bs-dark);--mojo-tooltip-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .3)}.tooltip .tooltip-arrow:before{border-color:transparent}.tooltip.bs-tooltip-top .tooltip-arrow:before,.tooltip.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--mojo-tooltip-bg)}.tooltip.bs-tooltip-bottom .tooltip-arrow:before,.tooltip.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--mojo-tooltip-bg)}.tooltip.bs-tooltip-start .tooltip-arrow:before,.tooltip.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--mojo-tooltip-bg)}.tooltip.bs-tooltip-end .tooltip-arrow:before,.tooltip.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--mojo-tooltip-bg)}.tooltip-primary .tooltip-inner{--mojo-tooltip-bg: var(--bs-primary);--mojo-tooltip-color: #fff}.tooltip-primary.bs-tooltip-top .tooltip-arrow:before,.tooltip-primary.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-primary)}.tooltip-primary.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-primary.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-primary)}.tooltip-primary.bs-tooltip-start .tooltip-arrow:before,.tooltip-primary.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-primary)}.tooltip-primary.bs-tooltip-end .tooltip-arrow:before,.tooltip-primary.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-primary)}.tooltip-success .tooltip-inner{--mojo-tooltip-bg: var(--bs-success);--mojo-tooltip-color: #fff}.tooltip-success.bs-tooltip-top .tooltip-arrow:before,.tooltip-success.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-success)}.tooltip-success.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-success.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-success)}.tooltip-success.bs-tooltip-start .tooltip-arrow:before,.tooltip-success.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-success)}.tooltip-success.bs-tooltip-end .tooltip-arrow:before,.tooltip-success.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-success)}.tooltip-warning .tooltip-inner{--mojo-tooltip-bg: var(--bs-warning);--mojo-tooltip-color: var(--bs-dark)}.tooltip-warning.bs-tooltip-top .tooltip-arrow:before,.tooltip-warning.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-warning)}.tooltip-warning.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-warning.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-warning)}.tooltip-warning.bs-tooltip-start .tooltip-arrow:before,.tooltip-warning.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-warning)}.tooltip-warning.bs-tooltip-end .tooltip-arrow:before,.tooltip-warning.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-warning)}.tooltip-danger .tooltip-inner{--mojo-tooltip-bg: var(--bs-danger);--mojo-tooltip-color: #fff}.tooltip-danger.bs-tooltip-top .tooltip-arrow:before,.tooltip-danger.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-danger)}.tooltip-danger.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-danger.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-danger)}.tooltip-danger.bs-tooltip-start .tooltip-arrow:before,.tooltip-danger.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-danger)}.tooltip-danger.bs-tooltip-end .tooltip-arrow:before,.tooltip-danger.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-danger)}.tooltip-info .tooltip-inner{--mojo-tooltip-bg: var(--bs-info);--mojo-tooltip-color: #fff}.tooltip-info.bs-tooltip-top .tooltip-arrow:before,.tooltip-info.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-info)}.tooltip-info.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-info.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-info)}.tooltip-info.bs-tooltip-start .tooltip-arrow:before,.tooltip-info.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-info)}.tooltip-info.bs-tooltip-end .tooltip-arrow:before,.tooltip-info.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-info)}.tooltip-light .tooltip-inner{--mojo-tooltip-bg: var(--bs-light);--mojo-tooltip-color: var(--bs-dark);--mojo-tooltip-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15), 0 0 0 1px rgba(0, 0, 0, .05)}.tooltip-light.bs-tooltip-top .tooltip-arrow:before,.tooltip-light.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{border-top-color:var(--bs-light)}.tooltip-light.bs-tooltip-bottom .tooltip-arrow:before,.tooltip-light.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{border-bottom-color:var(--bs-light)}.tooltip-light.bs-tooltip-start .tooltip-arrow:before,.tooltip-light.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{border-left-color:var(--bs-light)}.tooltip-light.bs-tooltip-end .tooltip-arrow:before,.tooltip-light.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{border-right-color:var(--bs-light)}.tooltip-sm .tooltip-inner{--mojo-tooltip-font-size: .75rem;--mojo-tooltip-padding-y: .25rem;--mojo-tooltip-padding-x: .5rem;--mojo-tooltip-max-width: 150px}.tooltip-lg .tooltip-inner{--mojo-tooltip-font-size: 1rem;--mojo-tooltip-padding-y: .75rem;--mojo-tooltip-padding-x: 1rem;--mojo-tooltip-max-width: 300px}@media (prefers-contrast: high){.tooltip .tooltip-inner{--mojo-tooltip-opacity: 1;border:2px solid currentColor}[data-bs-theme=dark] .tooltip .tooltip-inner{border-color:var(--mojo-tooltip-color)}}@media (prefers-reduced-motion: reduce){.tooltip{transition:none}}.group-search-view .bi-chevron-right{display:none!important}.group-search-view .tree-item-wrapper{display:flex;align-items:center;position:relative}.group-search-view .tree-lines{display:flex;flex-shrink:0;align-self:stretch}.group-search-view .tree-seg{width:24px;position:relative;align-self:stretch}.group-search-view .tree-seg-vert:before{content:"";position:absolute;left:12px;top:0;bottom:0;width:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-vert-end:before{content:"";position:absolute;left:12px;top:0;height:50%;width:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-mid:before{content:"";position:absolute;left:12px;top:0;bottom:0;width:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-mid:after{content:"";position:absolute;left:12px;top:50%;width:12px;height:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-last:before{content:"";position:absolute;left:12px;top:0;height:50%;width:2px;background:var(--bs-border-color)}.group-search-view .tree-seg-last:after{content:"";position:absolute;left:12px;top:50%;width:12px;height:2px;background:var(--bs-border-color)}.group-search-view .tree-item-wrapper.has-children .tree-item-name{font-weight:600}.group-search-view .simple-search-item:hover .tree-item-name{color:var(--bs-primary)}.group-search-view .simple-search-item:hover .tree-item-kind{background:var(--bs-primary);color:#fff}.group-search-view .tree-item-body{min-width:0}.group-search-view .tree-item-content{display:flex;align-items:center;gap:.5rem;padding:.75rem}.group-search-view .tree-item-name{font-weight:500;color:var(--bs-body-color);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-search-view .tree-item-kind{font-size:.75rem;color:var(--bs-secondary);background:var(--bs-secondary-bg);padding:.125rem .5rem;border-radius:.25rem;text-transform:uppercase;font-weight:600;letter-spacing:.025em;flex-shrink:0}.group-search-view .simple-search-item{cursor:pointer;transition:background-color .15s ease}.group-search-view .simple-search-item:hover{background-color:var(--bs-light)}:root{--mojo-sidebar-width: 250px;--mojo-sidebar-collapsed-width: 40px;--mojo-portal-gap: 0;--mojo-portal-bg: var(--bs-body-bg);--mojo-topnav-bg: var(--bs-primary, #121620);--mojo-topnav-color: var(#fff);--mojo-portal-muted: var(--bs-secondary-color);--mojo-portal-border: var(--bs-border-color);--mojo-portal-text: var(--bs-body-color);--mojo-sidebar-dark-color: #fff;--mojo-sidebar-dark-color-hover: #5388d6;--mojo-sidebar-dark-bg: #343a40}.portal-layout{display:flex;min-height:100vh;height:100vh;background:var(--mojo-portal-bg)}#portal-sidebar{flex:0 0 var(--mojo-sidebar-width);max-width:var(--mojo-sidebar-width);inline-size:var(--mojo-sidebar-width);height:100%;overflow-y:hidden;z-index:1;transition:inline-size .3s cubic-bezier(.4,0,.2,1),max-width .3s cubic-bezier(.4,0,.2,1),flex-basis .3s cubic-bezier(.4,0,.2,1),margin-left .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1);will-change:inline-size,max-width,flex-basis,transform}.portal-container.collapse-sidebar #portal-sidebar{inline-size:var(--mojo-sidebar-collapsed-width);max-width:var(--mojo-sidebar-collapsed-width);flex-basis:var(--mojo-sidebar-collapsed-width)}.portal-container.hide-sidebar #portal-sidebar{margin-left:calc(-1 * var(--mojo-sidebar-width));border-inline-end:0}#portal-sidebar{box-shadow:4px 0 15px -4px #0003}#portal-sidebar.sidebar-shadow{box-shadow:0 14px 28px #00000040,0 10px 10px #00000038!important}.portal-body{flex:1 1 auto;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}#portal-topnav{flex:0 0 auto;border-block-end:1px solid var(--mojo-portal-border)}nav.topnav-light{background-color:var(--bs-light);border-bottom:1px solid var(--bs-border-color);--bs-navbar-color: var(--bs-body-color);--bs-navbar-hover-color: var(--bs-primary)}nav.topnav-light .topnav-sidebar-toggle,nav.topnav-light .nav-link,nav.topnav-light .btn-link{color:var(--bs-navbar-color)}nav.topnav-light .topnav-sidebar-toggle:hover,nav.topnav-light .nav-link:hover,nav.topnav-light .btn-link:hover{color:var(--bs-navbar-hover-color)}nav.topnav-dark{background-color:var(--mojo-sidebar-dark-bg, var(--bs-dark));border-bottom:1px solid var(--bs-border-color-translucent);--bs-navbar-color: rgba(255, 255, 255, .75);--bs-navbar-hover-color: #fff;--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff}nav.topnav-dark .topnav-sidebar-toggle,nav.topnav-dark .nav-link,nav.topnav-dark .btn-link{color:var(--bs-navbar-color)}nav.topnav-dark .topnav-sidebar-toggle:hover,nav.topnav-dark .nav-link:hover,nav.topnav-dark .btn-link:hover{color:var(--bs-navbar-hover-color)}nav.topnav-dark .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}nav.topnav-clean{background-color:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);box-shadow:var(--bs-box-shadow-sm);--bs-navbar-color: var(--bs-body-color);--bs-navbar-hover-color: var(--bs-primary)}nav.topnav-clean .topnav-sidebar-toggle,nav.topnav-clean .nav-link,nav.topnav-clean .btn-link{color:var(--bs-navbar-color)}nav.topnav-clean .topnav-sidebar-toggle:hover,nav.topnav-clean .nav-link:hover,nav.topnav-clean .btn-link:hover{color:var(--bs-navbar-hover-color)}nav.topnav-gradient{background:linear-gradient(90deg,#2c3e50,#34495e);border-bottom:1px solid var(--bs-border-color-translucent);--bs-navbar-color: rgba(255, 255, 255, .75);--bs-navbar-hover-color: #fff;--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff}nav.topnav-gradient .topnav-sidebar-toggle,nav.topnav-gradient .nav-link,nav.topnav-gradient .btn-link{color:var(--bs-navbar-color)}nav.topnav-gradient .topnav-sidebar-toggle:hover,nav.topnav-gradient .nav-link:hover,nav.topnav-gradient .btn-link:hover{color:var(--bs-navbar-hover-color)}nav.topnav-gradient .btn-close{filter:invert(1) grayscale(100%) brightness(200%)}nav.topnav-shadow-light{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}nav.topnav-shadow-dark{box-shadow:0 4px 6px -1px #0006,0 2px 4px -2px #0000004d}.portal-content{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px;height:100%}.portal-content .muted{color:var(--mojo-portal-muted)}@media (prefers-reduced-motion: reduce){#portal-sidebar{transition:none}}.page-header{background-color:var(--bs-body-bg);border-bottom:1px solid var(--bs-border-color);padding:16px}.portal-content:has([data-container=page-header]){padding:0}[data-container=page-content]{padding:16px}.page-header-content{max-width:100%}.page-header-main{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.page-header-info{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.page-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;background-color:var(--bs-primary-bg-subtle);color:var(--bs-primary);border-radius:8px}.page-title-group{flex:1;min-width:0}.page-header .page-title{font-weight:600;margin:0;line-height:1.2;color:var(--bs-heading-color)}.page-header .page-description{margin:.5rem 0 0;line-height:1.5}.page-header-sm .page-icon{width:32px;height:32px;font-size:1rem}.page-header-sm .page-title-group .page-title{font-size:1.25rem}.page-header-sm .page-title-group .page-description{font-size:.875rem}.page-header-md .page-icon{width:40px;height:40px;font-size:1.25rem}.page-header-md .page-title-group .page-title{font-size:1.5rem}.page-header-md .page-title-group .page-description{font-size:.95rem}.page-header-lg .page-icon{width:48px;height:48px;font-size:1.5rem}.page-header-lg .page-title-group .page-title{font-size:1.75rem}.page-header-lg .page-title-group .page-description{font-size:1rem}.page-header-xl .page-icon{width:56px;height:56px;font-size:1.75rem}.page-header-xl .page-title-group .page-title{font-size:2rem}.page-header-xl .page-title-group .page-description{font-size:1.1rem}.page-actions{display:flex;gap:.5rem;flex-shrink:0}.page-header-minimal{padding:.75rem 0}.page-header-minimal .page-title-group .page-title{font-size:1.5rem;font-weight:500}.page-header-breadcrumb .breadcrumb{margin-bottom:.5rem;background-color:transparent;padding:0}@media (max-width: 768px){.page-header-main{flex-direction:column;gap:1rem}.page-actions{width:100%;justify-content:flex-start}.page-header-xl .page-title-group .page-title{font-size:1.75rem}.page-header-lg .page-title-group .page-title{font-size:1.5rem}.page-header-md .page-title-group .page-title{font-size:1.25rem}.page-header-sm .page-title-group .page-title{font-size:1.1rem}}[data-bs-theme=dark] .page-header{border-bottom-color:#ffffff1a}.sidebar{display:flex;flex-direction:column;height:100%;width:100%;min-height:0;transition:all .3s cubic-bezier(.4,0,.2,1)}#portal-sidebar .sidebar{position:static;top:auto;left:auto;height:100%;width:100%;z-index:auto;transform:none}.sidebar-dark{background-color:var(--mojo-sidebar-dark-bg, --bs-dark);color:var(--bs-light);border-inline-end:1px solid var(--bs-border-color-translucent)}.sidebar-light{background-color:var(--bs-light);color:var(--bs-body-color);border-right:1px solid var(--bs-border-color)}.sidebar-clean{background-color:var(--bs-body-bg);color:var(--bs-body-color);border-right:1px solid var(--bs-border-color);box-shadow:var(--bs-box-shadow)}.sidebar-admin{border-left:3px solid #b14545}.sidebar-admin .sidebar-header{color:#b14545}.sidebar-light.sidebar-admin .sidebar-nav .nav-link.active{background-color:#b14545}.sidebar-light.sidebar-admin .nav-link.active.has-children{color:#b14545;background-color:var(--bs-secondary-bg);animation:none}.sidebar-global{border-left:3px solid #457bb1}.sidebar-global .sidebar-header{color:#457bb1}.sidebar-light.sidebar-global .sidebar-nav .nav-link.active{background-color:#457bb1}.sidebar-light.sidebar-global .nav-link.active.has-children{color:#457bb1;background-color:var(--bs-secondary-bg);animation:none}.sidebar-gradient{background:linear-gradient(180deg,#2c3e50,#34495e);color:var(--bs-light);border-inline-end:1px solid var(--bs-border-color-translucent)}.sidebar-clean{--mojo-sidebar-width: 220px}.sidebar-container{display:flex;flex-direction:column;height:100%;min-height:0;flex:1}.sidebar-body{flex:1;overflow-y:auto;min-height:0}.sidebar-brand{height:56px;text-align:center;padding-top:14px}.sidebar-dark .sidebar-brand{border-bottom:1px solid var(--bs-border-color-translucent)}.sidebar-light .sidebar-brand{border-bottom:1px solid var(--bs-border-color)}.sidebar-clean .sidebar-brand{border-bottom:1px solid var(--bs-border-color);background-color:var(--bs-secondary-bg)}.sidebar-gradient .sidebar-brand{border-bottom:1px solid var(--bs-border-color-translucent)}.sidebar-brand.clickable{cursor:pointer;transition:background-color .2s ease}.sidebar-brand.clickable:hover{background-color:#ffffff1a}.sidebar-toggle{position:absolute;width:30px;height:30px;font-size:.875rem;background:none;top:.75rem;right:5px;border:none;border-radius:var(--bs-border-radius);color:var(--bs-body-color);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1),transform .15s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10}.sidebar-toggle:hover{background:var(--bs-secondary-bg);transform:scale(1.1);box-shadow:0 4px 12px #00000026}.sidebar-toggle:active{transform:scale(.95);transition-duration:.1s}.sidebar-toggle .toggle-icon{transition:all .3s cubic-bezier(.4,0,.2,1)}.sidebar-toggle .bi-chevron-left{display:block}.sidebar-toggle .bi-chevron-right,.portal-container.collapse-sidebar .sidebar-toggle .bi-chevron-left{display:none}.portal-container.collapse-sidebar .sidebar-toggle .bi-chevron-right{display:block}.portal-container.hide-sidebar .sidebar-toggle{opacity:0;visibility:hidden;pointer-events:none}.sidebar-dark .sidebar-toggle,.sidebar-gradient .sidebar-toggle{background:var(--bs-border-color-translucent);color:var(--bs-secondary-color);border-color:var(--bs-border-color-translucent)}.sidebar-dark .sidebar-toggle:hover,.sidebar-gradient .sidebar-toggle:hover{background:var(--bs-secondary-bg);color:var(--bs-light)}.sidebar-light .sidebar-toggle{background:var(--bs-secondary-bg);color:var(--bs-body-color);border-color:var(--bs-border-color)}.sidebar-light .sidebar-toggle:hover{background:var(--bs-tertiary-bg);color:var(--bs-emphasis-color)}.sidebar-clean .sidebar-toggle{background:var(--bs-light);color:var(--bs-primary);border-color:var(--bs-primary-border-subtle);box-shadow:var(--bs-box-shadow-sm)}.sidebar-clean .sidebar-toggle:hover{background:var(--bs-primary);color:#fff;box-shadow:0 4px 12px rgba(var(--bs-primary-rgb),.3)}.sidebar-toggle .toggle-icon{transform:rotate(0)}.topnav-sidebar-toggle{background:none!important;border:none!important;color:#ffffffe6;padding:.5rem;border-radius:.375rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.topnav-sidebar-toggle:hover{background:none!important;color:var(--bs-light);transform:scale(1.1)}.topnav-sidebar-toggle:focus{outline:none;box-shadow:none}.topnav-sidebar-toggle .toggle-chevron{font-size:1.1rem;transition:transform .3s cubic-bezier(.4,0,.2,1);transform:rotate(180deg)}.portal-container.collapse-sidebar .topnav-sidebar-toggle .toggle-chevron,.portal-container.hide-sidebar .topnav-sidebar-toggle .toggle-chevron{transform:rotate(0)}.navbar-dark .topnav-sidebar-toggle{color:#ccc}.navbar-dark .topnav-sidebar-toggle:hover{color:#fff;background:none!important}.navbar-light .topnav-sidebar-toggle{color:var(--bs-navbar-light-color)}.navbar-light .topnav-sidebar-toggle:hover{color:var(--bs-navbar-light-hover-color);background:var(--bs-secondary-bg)!important}@keyframes sidebar-toggle-pulse{0%{box-shadow:0 0 rgba(var(--bs-primary-rgb),.4)}70%{box-shadow:0 0 0 8px rgba(var(--bs-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--bs-primary-rgb),0)}}.sidebar-toggle.pulse{animation:sidebar-toggle-pulse 2s infinite}.sidebar-toggle:focus{outline:none;box-shadow:0 0 0 .25rem rgba(var(--bs-primary-rgb),.25)}.sidebar-toggle:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}[data-bs-theme=dark] .sidebar-toggle{background:#ffffff1a;color:var(--bs-light);border-color:#ffffff26}[data-bs-theme=dark] .sidebar-toggle:hover{background:#fff3;color:var(--bs-white);box-shadow:0 4px 12px #ffffff1a}[data-bs-theme=dark] .sidebar-clean .sidebar-toggle{background:var(--bs-primary);color:#fff;border-color:var(--bs-primary)}[data-bs-theme=dark] .sidebar-clean .sidebar-toggle:hover{background:var(--bs-primary);filter:brightness(1.1)}.brand-content{display:flex;flex-direction:column;align-items:center}.brand-logo{max-height:32px;width:auto;margin-bottom:.5rem}.brand-subtext{font-size:.75rem}.sidebar-group-header{cursor:pointer;border-bottom:1px solid rgba(0,0,0,.1)}.sidebar-dark .sidebar-group-header{background-color:var(--bs-dark)}.sidebar-light .sidebar-group-header{background-color:#dfe5ea}.sidebar-group-header:hover{cursor:pointer;color:var(--mojo-primary);background-color:#1414641a}.sidebar-nav{display:flex;flex-direction:column;padding:.5rem 0;min-height:100%}.sidebar-nav .nav-link{display:flex;align-items:center;position:relative;padding:.75rem 1rem;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1),transform .15s ease-out;cursor:pointer;transform:translate(0);border-radius:8px 0 0 8px;margin-left:.2rem}.sidebar-nav .nav-link:hover{margin-left:.4rem!important}.sidebar-nav .nav-link i{width:20px;text-align:center;transition:transform .2s ease-out,color .2s ease-out}.sidebar-nav .nav-link:hover i{transform:scale(1.1)}.portal-container.collapse-sidebar .sidebar-nav .nav-link:hover i{transform:scale(1.2)}.sidebar-nav .collapse .nav-link{padding:.5rem 1rem;font-size:.9rem}.sidebar-nav .bi-chevron-down{transition:transform .3s}.sidebar-nav .nav-link[aria-expanded=true] .bi-chevron-down{transform:rotate(180deg)}.sidebar-dark .sidebar-nav .nav-link{color:var(--mojo-sidebar-dark-color, #fff)}.sidebar-dark .sidebar-nav .nav-link:hover{color:var(--mojo-sidebar-dark-color-hover, #5388d6);background-color:var(--bs-secondary-bg)}.sidebar-dark .sidebar-nav .nav-link.active{color:var(--bs-light);background-color:var(--bs-primary)}.sidebar-light .sidebar-nav .nav-link{color:var(--bs-body-color)}.sidebar-light .sidebar-nav .nav-link:hover{color:var(--bs-emphasis-color);background-color:var(--bs-secondary-bg)}.sidebar-light .sidebar-nav .nav-link.active{color:var(--bs-light);background-color:var(--bs-primary)}.sidebar-clean .sidebar-nav .nav-link{color:var(--bs-secondary-color)}.sidebar-clean .sidebar-nav .nav-link:hover{color:var(--bs-body-color);background-color:var(--bs-secondary-bg)}.sidebar-clean .sidebar-nav .nav-link.active{color:var(--bs-primary);background-color:var(--bs-primary-bg-subtle);font-weight:500}.sidebar-gradient .sidebar-nav .nav-link{color:var(--bs-light)}.sidebar-gradient .sidebar-nav .nav-link:hover{color:var(--bs-white);background-color:#ffffff1a}.sidebar-gradient .sidebar-nav .nav-link.active{color:var(--bs-white);background-color:var(--bs-primary)}.sidebar-nav .nav-link.has-children{border-top-left-radius:0;border-bottom-left-radius:0}.sidebar-nav .nav-link.has-children:hover{transform:none}.sidebar-nav .nav-link.has-children.collapsed{border-left:none}.sidebar-light .nav-link.active.has-children,.sidebar-clean .nav-link.active.has-children{color:var(--bs-body-color);background-color:var(--bs-secondary-bg);animation:none}.sidebar-dark .nav-link.active.has-children,.sidebar-gradient .nav-link.active.has-children{color:var(--bs-light);background-color:#0003;animation:none}.nav-text{flex:1;white-space:nowrap;transition:opacity .3s cubic-bezier(.4,0,.2,1),width .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1)}.nav-arrow{transition:transform .2s ease,opacity .3s cubic-bezier(.4,0,.2,1),margin .3s cubic-bezier(.4,0,.2,1);margin-left:auto}.nav-link[aria-expanded=true] .nav-arrow{transform:rotate(180deg)}.portal-container.collapse-sidebar .nav-text,.portal-container.collapse-sidebar .sidebar-collapse-hide{opacity:0;width:0;margin-right:0;overflow:hidden}.portal-container.collapse-sidebar .collapsed-hidden{opacity:0;width:0;overflow:hidden;display:none}.portal-container.collapse-sidebar .sidebar-nav .nav-link{justify-content:center;padding-left:.5rem;padding-right:.5rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.portal-container.collapse-sidebar .sidebar-nav .nav-link i{margin-right:0!important}.portal-container.collapse-sidebar .nav-submenu{display:none!important}.portal-container.collapse-sidebar .sidebar-header{text-align:center;overflow:hidden}.portal-container.collapse-sidebar .nav-arrow{opacity:0;margin-left:0}.portal-container.collapse-sidebar .sidebar .nav-link{position:relative;overflow:visible;width:var(--mojo-sidebar-collapsed-width, 48px)}@keyframes tooltip-slide-in{0%{opacity:0;visibility:hidden;transform:translateY(-50%) translate(-10px) scale(.9)}to{opacity:1;visibility:visible;transform:translateY(-50%) translate(0) scale(1)}}@keyframes tooltip-arrow-slide-in{0%{opacity:0;transform:translateY(-50%) translate(-3px)}to{opacity:1;transform:translateY(-50%) translate(0)}}[data-bs-theme=dark] .portal-container.collapse-sidebar .sidebar .nav-link:hover:after{background:var(--bs-light);color:var(--bs-dark)}[data-bs-theme=dark] .portal-container.collapse-sidebar .sidebar .nav-link:hover:before{border-right-color:var(--bs-light)}.portal-container.mobile-layout .nav-link:hover:after,.portal-container.mobile-layout .nav-link:hover:before{display:none!important}.portal-container.collapse-sidebar .sidebar .nav-link:hover{background-color:rgba(var(--bs-primary-rgb),.1);border-radius:var(--mojo-border-radius);transform:translate(0) scale(1.05);box-shadow:0 2px 8px #0000001a}.portal-container.collapse-sidebar .sidebar-light .nav-link:hover{background-color:rgba(var(--bs-primary-rgb),.08);box-shadow:0 2px 8px rgba(var(--bs-primary-rgb),.2)}.portal-container.collapse-sidebar .sidebar-dark .nav-link:hover{background-color:#ffffff1a;box-shadow:0 2px 8px #ffffff1a}.portal-container.collapse-sidebar .sidebar-clean .nav-link:hover{background-color:var(--bs-light);box-shadow:0 2px 8px rgba(var(--bs-primary-rgb),.15)}.nav-submenu .nav-link{padding-left:2.5rem;font-size:.9rem}.nav-submenu{margin-left:1.8rem}.sidebar-dark .nav-submenu,.sidebar-gradient .nav-submenu{border-left:4px solid rgba(255,255,255,.2)}.sidebar-light .nav-submenu{border-left:4px solid #cdcdcd}.sidebar-clean .nav-submenu{border-left:4px solid var(--bs-border-color)}.nav-divider{margin:.75rem 0;padding:0 1rem}.nav-divider-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.25rem 0;display:block}.sidebar-dark .nav-divider-label,.sidebar-gradient .nav-divider-label{color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color-translucent)}.sidebar-light .nav-divider-label{color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color)}.sidebar-clean .nav-divider-label{color:var(--bs-secondary-color);border-bottom:1px solid var(--bs-border-color);margin:0 .5rem}.nav-divider-item{margin:.25rem 0;padding:0;list-style:none}.nav-divider-line{margin:0 1rem;border:0;border-top:1px solid;opacity:.25}.sidebar-dark .nav-divider-line,.sidebar-gradient .nav-divider-line,.sidebar-light .nav-divider-line{border-color:var(--bs-secondary-color)}.sidebar-clean .nav-divider-line{border-color:var(--bs-border-color);margin:0 1.5rem}.nav-spacer-item{flex:1;list-style:none}.nav-section{margin-bottom:.5rem}.nav-section-header{padding:.5rem 1rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.nav-section-header.collapsible{cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:color .2s ease}.sidebar-dark .nav-section-header,.sidebar-gradient .nav-section-header{color:var(--bs-secondary-color)}.sidebar-dark .nav-section-header.collapsible:hover,.sidebar-gradient .nav-section-header.collapsible:hover{color:var(--bs-light)}.sidebar-light .nav-section-header{color:var(--bs-secondary-color)}.sidebar-light .nav-section-header.collapsible:hover{color:var(--bs-body-color)}.sidebar-clean .nav-section-header{color:var(--bs-secondary-color);margin:0 .5rem}.sidebar-clean .nav-section-header.collapsible:hover{color:var(--bs-body-color)}.nav-section-items{padding-left:0}.sidebar-nav .badge{font-size:.7rem;padding:.25rem .5rem}.sidebar-footer{flex-shrink:0;margin-top:auto}.footer-content{padding:1rem;font-size:.85rem}.sidebar-dark .sidebar-footer,.sidebar-gradient .sidebar-footer{border-top:1px solid var(--bs-border-color-translucent)}.sidebar-dark .footer-content,.sidebar-gradient .footer-content{color:var(--bs-secondary-color)}.sidebar-light .sidebar-footer{border-top:1px solid var(--bs-border-color)}.sidebar-light .footer-content{color:var(--bs-secondary-color)}.sidebar-clean .sidebar-footer{border-top:1px solid var(--bs-border-color);background-color:var(--bs-secondary-bg)}.sidebar-clean .footer-content{color:var(--bs-secondary-color)}.config-switcher{position:absolute;top:8px;right:8px}.config-menu{position:absolute;inset:0;background-color:rgba(var(--bs-dark-rgb),.95);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1050;padding:1rem}.config-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--bs-border-color-translucent)}.config-menu-body{display:flex;flex-direction:column;gap:.5rem}.config-option{padding:.75rem;border:1px solid var(--bs-border-color-translucent);border-radius:var(--bs-border-radius);background-color:var(--bs-secondary-bg);cursor:pointer;transition:all .2s ease}.config-option:hover{background-color:var(--bs-tertiary-bg);border-color:var(--bs-border-color)}.config-option.active{background-color:var(--bs-primary-bg-subtle);border-color:var(--bs-primary)}.config-name{font-weight:500;color:var(--bs-body-color)}.group-selector-container{padding:.75rem}.group-selector-wrapper{position:relative;width:100%}.group-selector{position:relative}.group-selector.disabled{opacity:.6;pointer-events:none}.group-selector .input-group-text{background-color:var(--bs-secondary-bg);border-color:var(--bs-border-color);color:var(--bs-secondary-color)}.group-selector .form-control{background-color:var(--bs-tertiary-bg);border-color:var(--bs-border-color);color:var(--bs-body-color)}.group-selector .form-control:focus{background-color:var(--bs-tertiary-bg);border-color:var(--bs-primary);color:var(--bs-body-color);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.25)}.group-selector .form-control::placeholder{color:var(--bs-secondary-color)}.group-selector .dropdown-toggle{background-color:var(--bs-secondary-bg);border-color:var(--bs-border-color);color:var(--bs-secondary-color)}.group-selector .dropdown-toggle:hover,.group-selector .dropdown-toggle:focus{background-color:var(--bs-tertiary-bg);border-color:var(--bs-border-color);color:var(--bs-body-color)}.dropdown-arrow{transition:transform .2s ease}.group-selector .dropdown-toggle[aria-expanded=true] .dropdown-arrow{transform:rotate(180deg)}.group-dropdown{position:absolute;top:100%;left:0;right:0;background-color:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-top:none;border-radius:0 0 var(--bs-border-radius) var(--bs-border-radius);max-height:400px;overflow-y:auto;z-index:1050;box-shadow:var(--bs-box-shadow-lg);opacity:0;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease;display:none}.group-dropdown.show{display:block;opacity:1;transform:translateY(0)}.group-dropdown .dropdown-header{padding:.75rem 1rem;background-color:var(--bs-secondary-bg);border-bottom:1px solid var(--bs-border-color);color:var(--bs-secondary-color);font-size:.875rem}.group-results{max-height:300px;overflow-y:auto}.group-item{padding:0;border-bottom:1px solid var(--bs-border-color-translucent);cursor:pointer;transition:background-color .2s ease}.group-item:hover,.group-item.focused{background-color:var(--bs-secondary-bg)}.group-item.selected{background-color:var(--bs-primary-bg-subtle);border-left:3px solid var(--bs-primary)}.group-item.selected:hover{background-color:var(--bs-primary-bg-subtle)}.group-content{padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.group-main{flex:1;min-width:0}.group-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.group-name{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;margin-bottom:.25rem}.group-hierarchy{color:var(--bs-secondary-color);font-size:.85rem;font-weight:400}.group-name-text{color:var(--bs-body-color);font-weight:500}.group-type{font-size:.7rem;padding:.25rem .5rem}.group-description{color:var(--bs-secondary-color);font-size:.85rem;line-height:1.3;margin-top:.25rem}.group-item mark{background-color:var(--bs-warning-bg-subtle);color:var(--bs-body-color);padding:0;border-radius:var(--bs-border-radius-sm)}.group-member-count{display:flex;align-items:center;color:var(--bs-secondary-color);font-size:.8rem}.group-status{display:flex;align-items:center}.status-indicator{width:8px;height:8px;border-radius:50%;display:inline-block}.status-indicator.status-active{background-color:var(--bs-success)}.status-indicator.status-inactive{background-color:var(--bs-secondary)}.status-indicator.status-archived{background-color:var(--bs-danger)}.status-indicator.status-pending{background-color:var(--bs-warning)}.group-dropdown .dropdown-item-text{color:var(--bs-secondary-color);padding:1rem}.group-dropdown .dropdown-divider{border-top:1px solid var(--bs-border-color);margin:.5rem 0}.selected-group-display{animation:fadeInUp .3s ease}.selected-group-card{background-color:var(--bs-primary-bg-subtle);border:1px solid var(--bs-primary-border-subtle);border-radius:var(--bs-border-radius);padding:.75rem}.selected-group-icon{flex-shrink:0}.selected-group-info{min-width:0}.selected-group-name{color:var(--bs-body-color);margin-bottom:.25rem}.selected-group-desc{color:var(--bs-secondary-color);line-height:1.3}.selected-group-actions{flex-shrink:0}.group-dropdown::-webkit-scrollbar,.group-results::-webkit-scrollbar{width:6px}.group-dropdown::-webkit-scrollbar-track,.group-results::-webkit-scrollbar-track{background:var(--bs-secondary-bg)}.group-dropdown::-webkit-scrollbar-thumb,.group-results::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:var(--bs-border-radius-sm)}.group-dropdown::-webkit-scrollbar-thumb:hover,.group-results::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}.context-menu-view.header-menu{margin-top:-.6rem}.context-menu-view.header-menu-absolute{top:1rem;right:1rem}.portal-container.mobile-layout #portal-sidebar{position:fixed!important;inset:0;width:100vw;height:100vh;z-index:var(--mojo-zindex-modal);transform:translate(0);transition:transform .35s cubic-bezier(.4,0,.2,1);box-shadow:0 0 20px #0000004d}.portal-container.mobile-layout #portal-sidebar .sidebar{height:100vh;width:100%}.portal-container.mobile-layout #portal-sidebar .sidebar-container{height:100%}.portal-container.mobile-layout.hide-sidebar #portal-sidebar{transform:translate(-100%);box-shadow:0 0 20px #0000}.portal-container.mobile-layout #portal-sidebar,.portal-container.mobile-layout.collapse-sidebar #portal-sidebar{inline-size:100vw!important;max-width:100vw!important;flex-basis:100vw!important}.portal-container.mobile-layout .nav-text,.portal-container.mobile-layout.collapse-sidebar .nav-text{opacity:1!important;width:auto!important;overflow:visible!important}.portal-container.mobile-layout .nav-arrow,.portal-container.mobile-layout.collapse-sidebar .nav-arrow{opacity:1!important}.portal-container.mobile-layout .sidebar-nav .nav-link,.portal-container.mobile-layout.collapse-sidebar .sidebar-nav .nav-link{justify-content:flex-start!important;padding:1rem!important;font-size:1rem}.portal-container.mobile-layout .nav-submenu,.portal-container.mobile-layout.collapse-sidebar .nav-submenu{display:block!important}.portal-container.mobile-layout .sidebar-toggle{display:none}.portal-container.mobile-layout .group-selector-container,.portal-container.mobile-layout .config-menu{padding:.5rem}.portal-container.mobile-layout .selected-group-card{padding:1rem}.portal-container.mobile-layout .group-dropdown{max-height:300px;left:-5px;right:-5px;border-radius:.5rem;border:1px solid #495057;box-shadow:0 1rem 3rem #0000004d}.portal-container.mobile-layout .group-content{padding:1rem .75rem;flex-direction:column;align-items:stretch;gap:.5rem}.portal-container.mobile-layout .group-meta{flex-direction:row;justify-content:space-between;align-items:center}.portal-sidebar-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;z-index:calc(var(--mojo-zindex-modal) - 1);opacity:0;visibility:hidden;transition:opacity .35s cubic-bezier(.4,0,.2,1),visibility .35s cubic-bezier(.4,0,.2,1),backdrop-filter .35s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}.portal-container.mobile-layout:not(.hide-sidebar) .portal-sidebar-backdrop{opacity:1;visibility:visible;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.portal-container #portal-sidebar,.sidebar-nav .nav-link,.nav-text,.nav-arrow,.sidebar-header,.sidebar-footer,.sidebar-header .fs-5{transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.sidebar-nav .nav-item:nth-child(1) .nav-link{transition-delay:0ms}.sidebar-nav .nav-item:nth-child(2) .nav-link{transition-delay:20ms}.sidebar-nav .nav-item:nth-child(3) .nav-link{transition-delay:40ms}.sidebar-nav .nav-item:nth-child(4) .nav-link{transition-delay:60ms}.sidebar-nav .nav-item:nth-child(5) .nav-link{transition-delay:80ms}.sidebar-nav .nav-item:nth-child(6) .nav-link{transition-delay:.1s}.sidebar-nav .nav-item:nth-child(7) .nav-link{transition-delay:.12s}.sidebar-nav .nav-item:nth-child(8) .nav-link{transition-delay:.14s}[data-bs-theme=dark] .group-dropdown{background-color:var(--bs-body-bg);border-color:var(--bs-border-color)}[data-bs-theme=dark] .config-menu{background-color:rgba(var(--bs-dark-rgb),.95)}[data-bs-theme=dark] .config-option{background-color:var(--bs-secondary-bg);border-color:var(--bs-border-color)}[data-bs-theme=dark] .group-selector .form-control{background-color:var(--bs-tertiary-bg);border-color:var(--bs-border-color);color:var(--bs-body-color)}[data-bs-theme=dark] .group-selector .input-group-text{background-color:var(--bs-secondary-bg);border-color:var(--bs-border-color);color:var(--bs-secondary-color)}[data-bs-theme=dark] .group-item:hover,[data-bs-theme=dark] .group-item.focused{background-color:var(--bs-secondary-bg)}[data-bs-theme=dark] .selected-group-card{background-color:var(--bs-primary-bg-subtle);border-color:var(--bs-primary-border-subtle)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.group-item:focus{outline:2px solid #0d6efd;outline-offset:-2px}@media (prefers-contrast: high){.group-dropdown{border-width:2px;border-color:#fff}.group-item.selected{border-left-width:4px}.status-indicator{border:1px solid #fff}}@media (prefers-reduced-motion: reduce){.group-dropdown,.dropdown-arrow{transition:none}.selected-group-display{animation:none}.portal-container #portal-sidebar,.sidebar-nav .nav-link,.nav-text,.nav-arrow,.sidebar-header,.sidebar-footer,.sidebar-header .fs-5{transition:none!important;animation:none!important}.sidebar-nav .nav-link i{transition:none!important}.sidebar-nav .nav-link:hover,.portal-container.collapse-sidebar .sidebar .nav-link:hover{transform:none!important;box-shadow:none!important}.portal-sidebar-backdrop{transition:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.sidebar-nav .nav-item:nth-child(n) .nav-link{transition-delay:0ms!important}.portal-container:not(.collapse-sidebar) #portal-sidebar{animation:none!important}.sidebar-nav .nav-link.active{animation:none!important}.nav-link[data-bs-toggle=collapse] .bi-chevron-down{transition:none!important}.nav-link[aria-expanded=true] .bi-chevron-down{transform:rotate(180deg)!important}.portal-container.collapse-sidebar .sidebar .nav-link:hover:after,[data-bs-theme=dark] .portal-container.collapse-sidebar .sidebar .nav-link:hover:after,.portal-container.collapse-sidebar .sidebar .nav-link:hover:before{animation:none!important;transition:none!important;opacity:1!important;visibility:visible!important;transform:translateY(-50%) translate(0)!important}.sidebar-toggle,.sidebar-toggle .toggle-icon{transition:none!important;animation:none!important}.sidebar-toggle:hover{transform:none!important}}.mojo-sidebar-force-open .portal-container{--mojo-sidebar-width: 250px !important}.mojo-sidebar-force-open #portal-sidebar{inline-size:var(--mojo-sidebar-width)!important;max-width:var(--mojo-sidebar-width)!important;flex-basis:var(--mojo-sidebar-width)!important}.mojo-sidebar-force-collapsed .portal-container{--mojo-sidebar-width: var(--mojo-sidebar-collapsed-width) !important}.mojo-sidebar-force-collapsed #portal-sidebar{inline-size:var(--mojo-sidebar-collapsed-width)!important;max-width:var(--mojo-sidebar-collapsed-width)!important;flex-basis:var(--mojo-sidebar-collapsed-width)!important}.mojo-sidebar-force-hidden #portal-sidebar{inline-size:0!important;max-width:0!important;flex-basis:0!important;overflow:hidden!important}.mojo-sidebar-no-transition #portal-sidebar,.mojo-sidebar-no-transition .sidebar-nav .nav-link,.mojo-sidebar-no-transition .nav-text,.mojo-sidebar-no-transition .nav-arrow{transition:none!important}.portal-container.sidebar-opening #portal-sidebar{transition-duration:.35s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.portal-container.sidebar-closing #portal-sidebar{transition-duration:.25s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.portal-container:not(.collapse-sidebar) #portal-sidebar{animation:sidebar-expand .4s cubic-bezier(.34,1.56,.64,1)}@keyframes sidebar-expand{0%{transform:scale(.98) translate(-2px);opacity:.9}60%{transform:scale(1.01) translate(1px)}to{transform:scale(1) translate(0);opacity:1}}@keyframes nav-pulse{0%{box-shadow:0 0 rgba(var(--bs-primary-rgb),.4)}70%{box-shadow:0 0 0 6px rgba(var(--bs-primary-rgb),0)}to{box-shadow:0 0 rgba(var(--bs-primary-rgb),0)}}.sidebar-nav .nav-link.active{animation:nav-pulse 2s infinite}.nav-link[data-bs-toggle=collapse] .bi-chevron-down{transition:transform .25s cubic-bezier(.4,0,.2,1)}.nav-link[aria-expanded=true] .bi-chevron-down{transform:rotate(180deg) scale(1.1)}.mojo-sidebar-theme-auto .sidebar{background-color:var(--bs-body-bg);color:var(--bs-body-color);border-right:1px solid var(--bs-border-color)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link{color:var(--bs-body-color)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link:hover{background-color:var(--bs-secondary-bg)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link.active{background-color:var(--bs-primary);color:var(--bs-white)}.mojo-sidebar-collapsed .nav-text,.mojo-sidebar-collapsed .nav-arrow{opacity:0;width:0;overflow:hidden}.mojo-sidebar-collapsed .sidebar-nav .nav-link{justify-content:center;padding-left:.5rem;padding-right:.5rem}.mojo-sidebar-collapsed .nav-submenu{display:none!important}.mojo-portal-fixed .portal-layout{position:fixed;inset:0;z-index:var(--mojo-zindex-fixed)}.mojo-portal-sticky-sidebar #portal-sidebar{position:sticky;top:0;height:100vh}.mojo-portal-content-padded .portal-content{padding:var(--mojo-spacer-lg)}.mojo-portal-content-flush .portal-content,.mobile-layout .portal-content{padding:0}.mojo-sidebar-slide #portal-sidebar{transition:transform var(--mojo-transition-base) ease-in-out}.mojo-sidebar-fade #portal-sidebar{transition:opacity var(--mojo-transition-base) ease-in-out}.mojo-sidebar-scale #portal-sidebar{transition:transform var(--mojo-transition-base) cubic-bezier(.34,1.56,.64,1)}.js-sidebar-transitioning *{pointer-events:none}.js-sidebar-ready{transition:all var(--mojo-transition-base)}@media (prefers-color-scheme: dark){.mojo-sidebar-theme-auto .sidebar{background-color:var(--bs-dark);color:var(--bs-light);border-right:1px solid var(--bs-gray-800)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link{color:var(--bs-gray-300)}.mojo-sidebar-theme-auto .sidebar-nav .nav-link:hover{background-color:#ffffff1a;color:var(--bs-white)}}.mojo-sidebar-collapsed .nav-link:focus-visible{outline:2px solid var(--bs-primary);outline-offset:-2px;z-index:1}.mojo-skip-to-content{position:absolute;top:-40px;left:6px;background:var(--bs-primary);color:#fff;padding:8px;text-decoration:none;z-index:var(--mojo-zindex-tooltip);border-radius:var(--mojo-border-radius);font-size:.875rem}.mojo-skip-to-content:focus{top:6px}.portal-container.mobile-layout:not(.hide-sidebar){overflow:hidden}.portal-container.mobile-layout:not(.hide-sidebar) .portal-body{pointer-events:none}.group-selection-sidebar{background:#fff;border-right:1px solid var(--bs-border-color)}.group-selection-sidebar .form-control-sm{font-size:.875rem}.group-item{cursor:pointer;transition:all .2s ease;border-bottom:1px solid rgba(0,0,0,.05);position:relative}.group-item:last-child{border-bottom:none}.group-item:hover{background-color:#f8f9fa!important;border-left:3px solid var(--bs-primary)}.group-item:active{background-color:#e9ecef!important;transform:translate(1px)}.group-item .bi-chevron-right{opacity:0;transition:opacity .2s ease}.group-item:hover .bi-chevron-right{opacity:1}.group-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(0,0,0,.1)}.group-header .cursor-pointer{cursor:pointer;padding:.5rem;border-radius:.375rem;transition:all .2s ease}.group-header .cursor-pointer:hover{background-color:#f8f9fa!important}.group-header .bi-chevron-down{transition:transform .2s ease}.group-header .cursor-pointer:hover .bi-chevron-down{transform:rotate(180deg)}.sidebar-dark .group-selection-sidebar{background:#2c3e50;border-right-color:#34495e}.sidebar-dark .group-item{border-bottom-color:#ffffff0d}.sidebar-dark .group-item:hover{background-color:#34495e!important}.sidebar-dark .group-item:active{background-color:#3d566e!important}.sidebar-dark .group-header{border-bottom-color:#ffffff1a}.sidebar-dark .group-header .cursor-pointer:hover{background-color:#34495e!important}.sidebar-dark .text-muted{color:#a9d0f6bf!important}.group-selection-sidebar .spinner-border-sm{width:1rem;height:1rem}.group-selection-sidebar .text-center{color:var(--bs-secondary)}.group-selection-sidebar .form-control:focus{border-color:var(--bs-primary);box-shadow:0 0 0 .2rem rgba(var(--bs-primary-rgb),.25)}.group-selection-sidebar .bi-inbox,.group-selection-sidebar .bi-search{color:var(--bs-secondary)}.group-selection-sidebar .bg-light{background-color:#00000005!important}.sidebar-dark .group-selection-sidebar .bg-light{background-color:#ffffff05!important}.group-selection-sidebar .text-decoration-none:hover{color:var(--bs-primary)!important}.sidebar-parent-bar{padding:8px 20px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s ease}.parent-info{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:500}.parent-label{text-transform:uppercase;letter-spacing:.5px;font-size:9px;opacity:.5}.parent-name{font-weight:600}.parent-expand{font-size:10px}.sidebar-selected-group-row{padding:14px 20px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:space-between;gap:10px}.selected-group-info{flex:1;min-width:0}.selected-group-name{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.selected-group-meta{display:flex;align-items:center;gap:8px;margin-top:2px}.selected-group-kind{display:inline-flex;align-items:center;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.selected-group-chevron{font-size:14px;transition:all .2s ease;padding:4px}.sidebar-dark .sidebar-parent-bar{background:#00000040;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-dark .sidebar-parent-bar:hover{background:#0000004d}.sidebar-dark .parent-info{color:#fff9}.sidebar-dark .sidebar-parent-bar:hover .parent-info{color:#fffc}.sidebar-dark .parent-expand{color:#fff6}.sidebar-dark .sidebar-selected-group-row{border-bottom:2px solid rgba(52,177,176,.3)}.sidebar-dark .sidebar-selected-group-row:hover{background:#ffffff0d}.sidebar-dark .selected-group-name{color:#fff}.sidebar-dark .selected-group-kind{background:#34b1b040;color:#5dd4d3}.sidebar-dark .selected-group-chevron{color:#ffffff80}.sidebar-dark .sidebar-selected-group-row:hover .selected-group-chevron{color:#ffffffe6;transform:scale(1.1)}.sidebar-light .sidebar-parent-bar{background:#0000000a;border-bottom:1px solid rgba(0,0,0,.08)}.sidebar-light .sidebar-parent-bar:hover{background:#0000000f}.sidebar-light .parent-info{color:#0009}.sidebar-light .sidebar-parent-bar:hover .parent-info{color:#000c}.sidebar-light .parent-expand{color:#0006}.sidebar-light .sidebar-selected-group-row{border-bottom:2px solid rgba(13,110,253,.3)}.sidebar-light .sidebar-selected-group-row:hover{background:#00000008}.sidebar-light .selected-group-name{color:#212529}.sidebar-light .selected-group-kind{background:#0d6efd26;color:#0a58ca}.sidebar-light .selected-group-chevron{color:#00000080}.sidebar-light .sidebar-selected-group-row:hover .selected-group-chevron{color:#000c;transform:scale(1.1)}.sidebar-clean .sidebar-parent-bar{background:#00000005;border-bottom:1px solid rgba(0,0,0,.06)}.sidebar-clean .sidebar-parent-bar:hover{background:#0000000a}.sidebar-clean .parent-info{color:#0000008c}.sidebar-clean .sidebar-parent-bar:hover .parent-info{color:#000000bf}.sidebar-clean .parent-expand{color:#00000059}.sidebar-clean .sidebar-selected-group-row{border-bottom:1px solid rgba(0,0,0,.1)}.sidebar-clean .sidebar-selected-group-row:hover{background:#00000005}.sidebar-clean .selected-group-name{color:#212529}.sidebar-clean .selected-group-kind{background:#6c757d26;color:#495057}.sidebar-clean .selected-group-chevron{color:#0006}.sidebar-clean .sidebar-selected-group-row:hover .selected-group-chevron{color:#000000b3;transform:scale(1.1)}.sidebar-gradient .sidebar-parent-bar{background:#0003;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-gradient .sidebar-parent-bar:hover{background:#00000040}.sidebar-gradient .parent-info{color:#ffffffb3}.sidebar-gradient .sidebar-parent-bar:hover .parent-info{color:#ffffffe6}.sidebar-gradient .parent-expand{color:#ffffff80}.sidebar-gradient .sidebar-selected-group-row{border-bottom:2px solid rgba(255,255,255,.2)}.sidebar-gradient .sidebar-selected-group-row:hover{background:#ffffff14}.sidebar-gradient .selected-group-name{color:#fff}.sidebar-gradient .selected-group-kind{background:#fff3;color:#fffffff2}.sidebar-gradient .selected-group-chevron{color:#fff9}.sidebar-gradient .sidebar-selected-group-row:hover .selected-group-chevron{color:#fffffff2;transform:scale(1.1)}.simple-search-view{background-color:var(--bs-body-bg);color:var(--bs-body-color);border-right:1px solid var(--bs-border-color);box-shadow:var(--bs-box-shadow)}.modal-body .simple-search-view>div:first-child{position:sticky;top:0;z-index:10;background-color:var(--bs-body-bg)}[data-bs-theme=dark] .modal-body .simple-search-view>div:first-child{background-color:var(--bs-body-bg)}.collapse-sidebar .simple-search-view{background-color:var(--mojo-topnav-bg)!important}.collapse-sidebar .simple-search-view>*{display:none!important}.simple-search-item{cursor:pointer;transition:background-color .15s ease-in-out,transform .15s ease-in-out;border-radius:.25rem}.simple-search-item:hover{background-color:#0000320d;transform:translateY(-1px)}[data-bs-theme=dark] .simple-search-item:hover{background-color:#ffffff1a}.simple-search-exit-btn{width:20px;height:20px;margin-top:-5px}.simple-search-clear-btn{width:24px;height:24px;border-radius:50%}.navbar-nav .nav-item button[data-action=show-selector]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:250px;display:inline-flex;align-items:center}.navbar-nav .nav-item button[data-action=show-selector] .group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.navbar-nav .nav-item button[data-action=show-selector]{max-width:150px}}.timeline{position:relative;padding-left:2rem}.timeline:before{content:"";position:absolute;left:.75rem;top:0;bottom:0;width:2px;background-color:#dee2e6}.timeline-item{position:relative;margin-bottom:1.5rem}.timeline-marker{position:absolute;left:-2rem;top:.125rem;width:1.5rem;height:1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#fff;border:2px solid white;box-shadow:0 2px 4px #0000001a}.timeline-marker-info{background-color:#0dcaf0}.timeline-marker-primary{background-color:#0d6efd}.timeline-marker-success{background-color:#198754}.timeline-marker-danger{background-color:#dc3545}.timeline-marker-warning{background-color:#ffc107;color:#000}.timeline-marker-secondary{background-color:#6c757d}.timeline-content{background-color:#f8f9fa;padding:1rem;border-radius:.375rem;border:1px solid #dee2e6}.job-status-indicator{display:inline-flex;align-items:center;gap:.5rem}.job-health-indicator{width:12px;height:12px;border-radius:50%;display:inline-block}.health-healthy{background-color:#198754}.health-warning{background-color:#ffc107}.health-critical{background-color:#dc3545}.health-unknown{background-color:#6c757d}.job-stats-header .card{transition:transform .2s ease,box-shadow .2s ease}.job-stats-header .card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026!important}.job-health-header .health-indicator{animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.logs-container{background-color:#1e1e1e!important;color:#d4d4d4!important}.logs-container .text-info{color:#9cdcfe!important}.logs-container .text-warning{color:#dcdcaa!important}.logs-container .text-danger{color:#f14c4c!important}.logs-container .text-success{color:#4ec9b0!important}.job-details-view pre code{font-size:.875rem;line-height:1.4}@media (max-width: 768px){.timeline{padding-left:1.5rem}.timeline-marker{left:-1.75rem;width:1.25rem;height:1.25rem;font-size:.625rem}.timeline-content{padding:.75rem}}.channel-status-badge{font-size:.75rem;padding:.25rem .5rem}.runner-utilization{height:4px;background-color:#e9ecef;border-radius:2px;overflow:hidden}.runner-utilization-fill{height:100%;transition:width .3s ease}.runner-utilization-low{background-color:#198754}.runner-utilization-medium{background-color:#ffc107}.runner-utilization-high{background-color:#fd7e14}.runner-utilization-critical{background-color:#dc3545}.mojo-select-cell,.mojo-select-all-cell{background-color:transparent;cursor:pointer;transition:background-color .2s ease;text-align:center;vertical-align:middle;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.mojo-select-cell.selected,.mojo-select-all-cell.selected{background-color:transparent}.mojo-checkbox{height:20px;width:20px;border-radius:6px;border:2px solid var(--bs-border-color);background-color:var(--bs-body-bg);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.mojo-checkbok:focused,.mojo-checkbok:hover{box-shadow:0 0 0 .25rem #3874ff40}.mojo-select-cell:hover .mojo-checkbox{box-shadow:0 0 0 .25rem #3874ff40}.mojo-select-cell.selected .mojo-checkbox,.mojo-select-all-cell.selected .mojo-checkbox{color:#fff;background-color:var(--bs-primary);border-color:var(--bs-primary)}.mojo-checkbox i{font-size:1rem;opacity:0;transition:opacity .2s ease}.mojo-select-cell.selected .mojo-checkbox i,.mojo-select-all-cell.selected .mojo-checkbox i{opacity:1}.mojo-select-all-cell.indeterminate .mojo-checkbox{border-color:var(--bs-primary);background-color:var(--bs-primary)}.mojo-select-all-cell.indeterminate .mojo-checkbox i{opacity:1;color:#fff}.table-page-container{position:relative}.mojo-table-wrapper{padding:1rem}.mojo-table-loading{position:absolute;top:0;left:0;right:0;background-color:var(--bs-body-bg);opacity:.8;height:100%}.table-page-header{border-bottom:1px solid var(--bs-border-color);padding-bottom:1rem;margin-bottom:1.5rem}.table-container{position:relative;transition:opacity .3s ease}.table-container.is-loading{opacity:.7;pointer-events:none}.table-status-bar.table-status-top{border-top:none;border-bottom:1px solid var(--bs-border-color);padding-top:0;padding-bottom:.75rem;margin-bottom:1rem}.status-info{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.table-loading-overlay{position:absolute;inset:0;background:var(--bs-body-bg);opacity:.9;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-content{padding:2rem;text-align:center}.loading-message{margin-top:1rem;color:var(--bs-secondary-color);font-size:.95rem}.loading-indicator{display:inline-flex;align-items:center;gap:.5rem}.error-indicator{animation:mojo-pulse 2s ease-in-out infinite;display:inline-flex;align-items:center;gap:.25rem}.table-actions-bottom{border-bottom:none;border-top:1px solid var(--bs-border-color);padding-top:1rem;padding-bottom:0;margin-top:1rem;margin-bottom:0}.batch-actions-panel{position:sticky;bottom:10px;box-shadow:0 1rem 3rem #0006;background-color:var(--bs-body-bg);height:60px;z-index:20;margin:0 8px}div.batch-select-count{font-size:1.5rem!important;background-color:var(--bs-primary);color:var(--bs-white);min-width:50px;text-align:center;height:60px;line-height:60px}div.batch-select-title{font-size:1.5rem!important;line-height:60px;height:60px}div.batch-select-action{cursor:pointer;color:var(--bs-primary-text-emphasis);transition:color .2s ease}div.batch-select-action:hover{color:var(--bs-primary)}div.batch-select-end{border-radius:0 4px 4px 0;background-color:var(--bs-primary);height:60px;width:10px}.batch-actions-panel-top{border-left:4px solid var(--bs-primary);border-color:var(--bs-info-border-subtle);margin:0!important;padding:.4rem;animation:slideDown .3s ease-out}.batch-actions-panel-top .batch-select-count{font-weight:700;color:var(--bs-primary);font-size:1.1rem}.batch-actions-panel-top button{transition:transform .2s ease,box-shadow .2s ease}.batch-actions-panel-top button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.btn-refresh:not(:disabled):hover .bi-arrow-clockwise{animation:mojo-spin .5s ease-in-out}.btn-add:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 .25rem .5rem #0000001a}.btn-export:not(:disabled):hover .bi-download,.btn-import:not(:disabled):hover .bi-upload{animation:mojo-bounce .5s ease-in-out}.collection-select-view{position:relative}.collection-select-view .form-control.is-invalid{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath d='m5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.collection-select-view .dropdown-item:has(.spinner-border){justify-content:center;align-items:center;min-height:3rem}.collection-select-view .dropdown-item:focus-visible{outline:2px solid var(--bs-primary);outline-offset:-2px}.collection-select-view .dropdown-menu::-webkit-scrollbar{width:6px}.collection-select-view .dropdown-menu::-webkit-scrollbar-track{background:var(--bs-secondary-bg);border-radius:var(--bs-border-radius-sm)}.collection-select-view .dropdown-menu::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:var(--bs-border-radius-sm)}.collection-select-view .dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary)}.collection-select-view .btn[data-action=clear-selection]{width:1.5rem;height:1.5rem;padding:0;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--bs-secondary);transition:color .15s ease-in-out}.collection-select-view .btn[data-action=clear-selection]:hover{color:var(--bs-danger)}.collection-select-view .btn[data-action=clear-selection]:focus{box-shadow:none;outline:2px solid var(--bs-primary);outline-offset:2px}.collection-select-view .btn[data-action=clear-selection] i{font-size:1rem}.collection-select-view .form-control.pe-5{padding-right:2.5rem!important}.text-truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.data-view-item .data-view-label{font-size:.6rem}.table-container::-webkit-scrollbar{height:8px;width:8px}.table-container::-webkit-scrollbar-track{background:var(--bs-secondary-bg);border-radius:var(--bs-border-radius-sm)}.table-container::-webkit-scrollbar-thumb{background:var(--bs-border-color);border-radius:var(--bs-border-radius-sm)}.table-container::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}@keyframes mojo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes mojo-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes mojo-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (max-width: 768px){.table-page-header{padding-bottom:.75rem;margin-bottom:1rem}.batch-actions-panel-top{padding:.75rem!important}.batch-actions-panel-top .d-flex{flex-direction:column;gap:.75rem}.batch-actions-panel-top .batch-select-count{font-size:1rem}.page-title{font-size:1.5rem}.page-description{font-size:.9rem}.table-status-bar{padding:.5rem .75rem}.status-info{flex-direction:column;align-items:flex-start;gap:.5rem}.collection-select-view .dropdown-menu{max-height:200px}.collection-select-view .dropdown-item{padding:.75rem 1rem;font-size:1rem}}@media (max-width: 576px){.table-container{overflow-x:auto}.page-title{font-size:1.25rem}.loading-content{padding:1rem}.batch-actions-panel-top button{font-size:.875rem;padding:.25rem .5rem}.batch-actions-panel-top .btn-group{flex-wrap:wrap}}[data-bs-theme=dark] .table-loading-overlay{background:var(--bs-dark);opacity:.9}[data-bs-theme=dark] .batch-actions-panel{background-color:var(--bs-dark)}[data-bs-theme=dark] .batch-actions-panel-top{background-color:#0d6efd1a;border-color:#0d6efd4d}[data-bs-theme=dark] .collection-select-view .dropdown-menu::-webkit-scrollbar-track{background:var(--bs-secondary-bg)}[data-bs-theme=dark] .collection-select-view .dropdown-menu::-webkit-scrollbar-thumb{background:var(--bs-border-color)}[data-bs-theme=dark] .collection-select-view .dropdown-menu::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}[data-bs-theme=dark] .collection-select-view .btn[data-action=clear-selection]{color:var(--bs-secondary)}[data-bs-theme=dark] .collection-select-view .btn[data-action=clear-selection]:hover{color:var(--bs-danger)}[data-bs-theme=dark] .collection-select-view .btn[data-action=clear-selection]:focus{outline-color:var(--bs-primary)}[data-bs-theme=dark] .table-container::-webkit-scrollbar-track{background:var(--bs-secondary-bg)}[data-bs-theme=dark] .table-container::-webkit-scrollbar-thumb{background:var(--bs-border-color)}[data-bs-theme=dark] .table-container::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}.table-fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;z-index:9999!important;background:var(--bs-body-bg)!important;padding:1rem!important;overflow:auto!important}.table-fullscreen .mojo-table-wrapper{height:100%;display:flex;flex-direction:column;padding:0}.table-fullscreen .table-container{flex:1;overflow:auto;margin-bottom:1rem}.table-fullscreen .table{margin-bottom:0}.table-fullscreen .table-status-bar{flex-shrink:0;margin-top:auto;border-top:1px solid var(--bs-border-color);padding-top:1rem;background:var(--bs-body-bg)}.btn-fullscreen{transition:transform .2s ease,box-shadow .2s ease}.btn-fullscreen:hover{transform:scale(1.05)}.table-fullscreen .btn-fullscreen{background-color:var(--bs-primary);color:var(--bs-white);border-color:var(--bs-primary)}.table-fullscreen .btn-fullscreen:hover{background-color:var(--bs-primary);border-color:var(--bs-primary);opacity:.9}.table-fullscreen .table-container::-webkit-scrollbar{width:12px;height:12px}.table-fullscreen .table-container::-webkit-scrollbar-track{background:var(--bs-secondary-bg)}.table-fullscreen .table-container::-webkit-scrollbar-thumb{background:var(--bs-secondary);border-radius:6px}.table-fullscreen .table-container::-webkit-scrollbar-thumb:hover{background:var(--bs-secondary-color)}[data-bs-theme=dark] .table-fullscreen{background:var(--bs-dark)!important}[data-bs-theme=dark] .table-fullscreen .table-status-bar{background:var(--bs-dark)}.table-totals-row{background-color:var(--bs-light);border-top:2px solid var(--bs-primary);font-weight:500}.table-footer-label{color:var(--bs-emphasis-color);font-weight:600}.table-footer-total{color:var(--bs-primary);font-weight:600;text-align:right}[data-bs-theme=dark] .table-totals-row{background-color:var(--bs-dark);border-top-color:var(--bs-primary)}[data-bs-theme=dark] .table-footer-label{color:var(--bs-light)}[data-bs-theme=dark] .table-footer-total{color:var(--bs-primary)}.editable-cell{cursor:pointer;position:relative}.editable-cell:hover{background-color:#0d6efd0d}.editable-cell.editing{background-color:#0d6efd1a}.cell-editor{width:100%;max-width:100%}.cell-editor .form-control,.cell-editor .form-select{flex:1;min-width:0}.cell-editor .btn{white-space:nowrap;flex-shrink:0;min-width:auto;width:2rem;height:2rem;padding:0;display:flex;align-items:center;justify-content:center}.cell-editor .form-check{margin-bottom:0}.cell-editor .form-control:focus,.cell-editor .form-select:focus{border-color:#0d6efd;box-shadow:0 0 0 .25rem #0d6efd40}.cell-editor .d-flex.gap-1>*{flex-shrink:0}.cell-editor .form-switch .form-check-input{margin-left:0}.editable-cell .cell-content{padding:2px 4px;border-radius:3px;transition:background-color .15s ease-in-out}.editable-cell:hover .cell-content{background-color:#0d6efd1a}.editable-cell:after{content:"";position:absolute;top:4px;right:4px;width:0;height:0;border-left:4px solid transparent;border-top:4px solid rgba(108,117,125,.3);opacity:0;transition:opacity .15s ease-in-out}.editable-cell:hover:after{opacity:1}.cell-editor.saving{opacity:.7;pointer-events:none}.cell-editor.saving .btn{disabled:true}.cell-editor.saving-error{border-left:3px solid var(--bs-danger);background-color:#dc35451a}.cell-editor.saving-error .form-control,.cell-editor.saving-error .form-select{border-color:var(--bs-danger)}[data-bs-theme=dark] .editable-cell:hover{background-color:#0d6efd1a}[data-bs-theme=dark] .editable-cell.editing,[data-bs-theme=dark] .editable-cell:hover .cell-content{background-color:#0d6efd26}[data-bs-theme=dark] .editable-cell:after{border-top-color:#ffffff4d}@media (prefers-contrast: high){.collection-select-view .dropdown-item.active{background-color:var(--bs-emphasis-color);color:var(--bs-body-bg)}.mojo-checkbox{border-width:2px}}@media (prefers-reduced-motion: reduce){.table-container,.mojo-checkbox,.batch-select-action,.batch-actions-panel-top,.batch-actions-panel-top button{transition:none}@keyframes slideDown{0%,to{opacity:1;transform:none}}.btn-refresh:not(:disabled):hover .bi-arrow-clockwise,.btn-export:not(:disabled):hover .bi-download,.btn-import:not(:disabled):hover .bi-upload{animation:none}}.toast-service-success{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(25, 135, 84, .3);color:var(--bs-body-color);border-left:4px solid rgba(25,135,84,.8)}.toast-service-error{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(220, 53, 69, .3);color:var(--bs-body-color);border-left:4px solid rgba(220,53,69,.8)}.toast-service-warning{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(255, 193, 7, .3);color:var(--bs-body-color);border-left:4px solid rgba(255,193,7,.9)}.toast-service-info{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(13, 110, 253, .3);color:var(--bs-body-color);border-left:4px solid rgba(13,110,253,.8)}.toast-service-plain{--bs-toast-bg: rgba(248, 249, 250, .98);--bs-toast-border-color: rgba(0, 0, 0, .08);color:var(--bs-body-color)}.toast-service-icon{width:20px;height:20px;flex-shrink:0}.toast-service-success .toast-service-icon{color:#198754e6}.toast-service-error .toast-service-icon{color:#dc3545e6}.toast-service-warning .toast-service-icon{color:#ffc107}.toast-service-info .toast-service-icon{color:#0d6efde6}.toast-service-plain .toast-service-icon{color:#6c757dcc}.toast-service-close{filter:none;opacity:.6}.toast-service-close:hover{opacity:1}.toast-container{max-width:400px}.toast{transition:all .3s ease-in-out}.toast.showing{opacity:0;transform:translate(100%)}.toast.show{opacity:1;transform:translate(0)}.toast.hide{opacity:0;transform:translate(100%)}@media (max-width: 576px){.toast-container{max-width:calc(100vw - 20px);left:10px!important;right:10px!important;transform:none!important}.toast-container.position-fixed.top-0.start-50.translate-middle-x,.toast-container.position-fixed.bottom-0.start-50.translate-middle-x{left:10px!important;right:10px!important;transform:none!important;width:calc(100% - 20px)}}.toast-header{padding:.5rem .75rem;border-bottom:1px solid rgba(0,0,0,.1)}.toast-service-success .toast-header,.toast-service-error .toast-header,.toast-service-info .toast-header,.toast-service-warning .toast-header{border-bottom-color:#0000000f}.toast-body{padding:.75rem;word-wrap:break-word}.toast-body .toast-message{line-height:1.4}.toast-container .toast+.toast{margin-top:.5rem}@media (prefers-color-scheme: dark){.toast-service-plain{--bs-toast-bg: rgba(33, 37, 41, .95);--bs-toast-border-color: rgba(255, 255, 255, .1);color:var(--bs-body-color)}}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background-color:#ffffff4d;border-radius:0 0 .375rem .375rem;transition:width linear}.toast-actions{padding:.25rem .75rem .75rem;display:flex;gap:.5rem}.toast-actions .btn{font-size:.875rem;padding:.25rem .75rem}.chat-view{display:flex;flex-direction:column;height:100%}.chat-container{display:flex;flex-direction:column;height:100%;width:100%;border:1px solid #dee2e6;border-radius:8px;overflow:hidden;background:#fff}.chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px;background:#fff}.chat-input-wrapper{flex-shrink:0}.chat-theme-compact .message-item{display:flex;padding:12px;border-bottom:1px solid #f1f3f5;transition:background-color .15s ease}.chat-theme-compact .message-item:hover{background:#f8f9fa}.chat-theme-compact .message-item:last-child{border-bottom:none}.chat-theme-compact .message-avatar{width:36px;height:36px;border-radius:50%;background:#6c757d;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;margin-right:12px;flex-shrink:0;overflow:hidden}.chat-theme-compact .message-content{flex:1;min-width:0}.chat-theme-compact .message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;gap:8px}.chat-theme-compact .message-author{font-weight:600;font-size:.9rem;color:#212529}.chat-theme-compact .message-time{font-size:.75rem;color:#6c757d;white-space:nowrap}.chat-theme-compact .message-text{font-size:.9rem;color:#212529;line-height:1.5;word-wrap:break-word;white-space:pre-wrap}.chat-theme-compact .chat-message-system{background:#f8f9fa;border-left:3px solid #0d6efd;margin:8px 0;padding:8px 12px}.chat-theme-bubbles .chat-message{margin-bottom:12px}.chat-theme-bubbles .message-bubble-wrapper{display:flex;flex-direction:column;max-width:70%}.chat-theme-bubbles .message-left .message-bubble-wrapper{align-items:flex-start}.chat-theme-bubbles .message-right .message-bubble-wrapper{align-items:flex-end;margin-left:auto}.chat-theme-bubbles .message-meta{font-size:.75rem;color:#6c757d;margin-bottom:4px;padding:0 4px}.chat-theme-bubbles .message-right .message-meta{text-align:right}.chat-theme-bubbles .message-bubble{padding:10px 14px;border-radius:18px;word-wrap:break-word;max-width:100%}.chat-theme-bubbles .message-left .message-bubble{background:#e9ecef;color:#212529}.chat-theme-bubbles .message-right .message-bubble{background:#0d6efd;color:#fff}.chat-theme-bubbles .message-text{font-size:.9rem;line-height:1.5;white-space:pre-wrap}.chat-theme-bubbles .chat-message-system{max-width:100%;margin:16px auto}.chat-input-view{border-top:1px solid #dee2e6;background:#f8f9fa;width:100%}.chat-input-container{padding:15px;position:relative;width:100%}.chat-input-container.drag-over{background:#e7f3ff;border-color:#0d6efd}.chat-input-container.drag-active:before{content:"Drop files here";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.2rem;color:#0d6efd;font-weight:600;pointer-events:none;z-index:10}.chat-input-wrapper{position:relative;display:flex;align-items:flex-end;gap:8px}.chat-input{flex:1;resize:none;max-height:150px;font-size:.9rem}.chat-send-btn{flex-shrink:0;min-width:80px}.chat-send-btn i,.chat-send-btn .spinner-border{font-size:1rem}.chat-input-footer{margin-top:8px;font-size:.85rem}.chat-input-attachments{margin-bottom:10px}.attachment-preview{display:inline-flex;align-items:center;gap:8px;background:#e9ecef;padding:8px 12px;border-radius:8px;margin-right:8px;margin-bottom:8px;font-size:.85rem}.attachment-preview.upload-complete{background:#d1e7dd}.attachment-preview.upload-error{background:#f8d7da}.attachment-info{display:flex;align-items:center;gap:6px}.attachment-name{font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-size{color:#6c757d;font-size:.75rem}.attachment-progress{min-width:100px}.attachment-remove{padding:0;margin:0;line-height:1}.message-text .file-attachment,[data-container=attachments] .file-attachment{display:inline-block;margin-top:8px;padding:8px 12px;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:8px;font-size:.85rem;transition:background-color .15s ease}.message-text .file-attachment:hover,[data-container=attachments] .file-attachment:hover{background:#0000001a}.message-text .file-attachment i,[data-container=attachments] .file-attachment i{margin-right:6px}.chat-theme-bubbles .message-right .file-attachment{background:#fff3;border-color:#ffffff4d;color:#fff}.chat-message-system{text-align:center;padding:8px 12px;margin:12px 0}.chat-messages::-webkit-scrollbar{width:8px}.chat-messages::-webkit-scrollbar-track{background:#f1f3f5}.chat-messages::-webkit-scrollbar-thumb{background:#adb5bd;border-radius:4px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#6c757d}@media (max-width: 768px){.chat-theme-bubbles .message-bubble-wrapper{max-width:85%}.chat-theme-compact .message-avatar{width:32px;height:32px;font-size:.75rem}.attachment-name{max-width:150px}}.badge-sm{font-size:.7rem;padding:2px 6px}.mojo-task-management-page{padding:0}.mojo-task-management-container{max-width:100%;margin:0}.mojo-task-stats-header .card{transition:all .2s ease-in-out;border:1px solid var(--bs-border-color)}.mojo-task-stats-header .card:hover{transform:translateY(-2px);box-shadow:0 .25rem .75rem #0000001a!important}.mojo-task-stats-header .card-body{padding:1.5rem}.mojo-task-stats-header h3{font-size:2rem;font-weight:700;color:var(--bs-dark)}.mojo-task-stats-header .badge{font-size:.75rem;padding:.375rem .5rem;border-radius:.375rem}.mojo-task-stats-header .fs-2{opacity:.6;font-size:2.5rem!important}.task-runners-section .mojo-task-runner-list{max-height:400px;overflow-y:auto}.task-runners-section .mojo-task-runner-item{border:1px solid var(--bs-gray-200);transition:all .2s ease-in-out}.task-runners-section .mojo-task-runner-item:hover{border-color:var(--bs-primary);background-color:var(--bs-gray-50)!important}.task-runners-section .mojo-task-runner-info{min-width:0;flex:1}.task-runners-section .mojo-task-runner-name{font-size:.95rem;margin-bottom:.25rem}.task-runners-section .mojo-task-runner-channels{word-break:break-all;line-height:1.3}.task-runners-section .mojo-task-runner-list::-webkit-scrollbar{width:6px}.task-runners-section .mojo-task-runner-list::-webkit-scrollbar-track{background:var(--bs-gray-100);border-radius:3px}.task-runners-section .mojo-task-runner-list::-webkit-scrollbar-thumb{background:var(--bs-gray-400);border-radius:3px}.task-runners-section .mojo-task-runner-list::-webkit-scrollbar-thumb:hover{background:var(--bs-gray-500)}.task-runners-section .mojo-task-runner-status .badge{font-size:.8rem;padding:.5rem .75rem;border-radius:.5rem;font-weight:500}.task-runners-section .mojo-task-runner-actions{display:flex;align-items:center;gap:.5rem}.task-runners-section .dropdown-toggle{border:1px solid var(--bs-border-color);background:#fff;transition:all .2s ease}.task-runners-section .dropdown-toggle:hover{background:var(--bs-gray-50);border-color:var(--bs-primary)}.task-runners-section .dropdown-menu{box-shadow:0 .5rem 1rem #00000026;border:1px solid var(--bs-border-color);border-radius:.5rem;min-width:160px}.task-runners-section .dropdown-item{padding:.5rem 1rem;transition:all .2s ease}.task-runners-section .dropdown-item:hover{background-color:var(--bs-gray-100)}.task-runners-section .dropdown-item i{width:1rem;text-align:center}.mojo-task-charts-section .card{border:1px solid var(--bs-border-color);transition:all .2s ease-in-out}.mojo-task-charts-section .card:hover{box-shadow:0 .25rem .75rem #00000014!important}.mojo-task-charts-section .card-body{padding:1.5rem}.mojo-task-management-page .tab-view .nav-tabs{border-bottom:2px solid var(--bs-gray-200);margin-bottom:1.5rem}.mojo-task-management-page .tab-view .nav-link{color:var(--bs-gray-600);border:none;padding:.75rem 1.5rem;margin-right:.5rem;border-radius:.5rem .5rem 0 0;transition:all .2s ease;font-weight:500}.mojo-task-management-page .tab-view .nav-link:hover{color:var(--bs-primary);background-color:var(--bs-gray-50)}.mojo-task-management-page .tab-view .nav-link.active{color:var(--bs-primary);background-color:#fff;border-bottom:2px solid var(--bs-primary);transform:translateY(1px)}.mojo-task-management-page .tab-content{min-height:400px}.mojo-task-management-page .table-container{background:#fff;border-radius:.5rem}.badge.mojo-task-status-pending{background-color:var(--bs-primary)!important;color:#fff}.badge.mojo-task-status-running{background-color:var(--bs-success)!important;color:#fff}.badge.mojo-task-status-completed{background-color:var(--bs-info)!important;color:#fff}.badge.mojo-task-status-error{background-color:var(--bs-danger)!important;color:#fff}.mojo-task-management-page .btn-group .btn{transition:all .2s ease}.mojo-task-management-page .btn-group .btn:hover{transform:translateY(-1px)}.mojo-task-management-page .btn-sm{padding:.375rem .75rem;font-size:.875rem;border-radius:.375rem}.mojo-task-management-page .bi-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}@media (max-width: 768px){.mojo-task-stats-header .card-body{padding:1rem}.mojo-task-stats-header h3{font-size:1.5rem}.task-runners-section .mojo-task-runner-item .row{margin:0}.task-runners-section .mojo-task-runner-item .col-md-8,.task-runners-section .mojo-task-runner-item .col-md-4{padding-left:0;padding-right:0}.task-runners-section .mojo-task-runner-channels small{font-size:.75rem}.mojo-task-management-page .btn-group{flex-direction:column;width:100%}.mojo-task-management-page .btn-group .btn{margin-bottom:.25rem}}@media (max-width: 576px){.mojo-task-management-container{padding:.5rem}.mojo-task-stats-header .col-12{margin-bottom:.5rem!important}.mojo-task-charts-section .col-xl-6{margin-bottom:1rem!important}.mojo-task-management-page .tab-view .nav-link{padding:.5rem 1rem;margin-right:.25rem;font-size:.875rem}.task-runners-section .mojo-task-runner-item{padding:1rem!important}.task-runners-section .mojo-task-runner-name{font-size:.9rem}.task-runners-section .mojo-task-runner-channels small{font-size:.7rem;display:block;margin-top:.25rem}}.admin-dashboard-page,.admin-page{background-color:var(--bs-gray-50);min-height:100vh}.admin-page .card{border:1px solid var(--bs-border-color);box-shadow:0 .125rem .25rem #00000013;transition:all .2s ease-in-out}.admin-page .card:hover{box-shadow:0 .25rem .5rem #0000001a}.admin-page .card-header{background-color:#fff;border-bottom:1px solid var(--bs-border-color);padding:1rem 1.5rem}.admin-page .card-body{padding:1.5rem}.admin-page h1,.admin-page .h3{color:var(--bs-dark);font-weight:600}.admin-page .text-muted{color:var(--bs-gray-600)!important}.admin-page .alert{border:none;border-radius:.5rem;padding:1rem 1.5rem}.admin-page .alert-success{background-color:#1987541a;color:var(--bs-success-text-emphasis)}.admin-page .alert-info{background-color:#0dcaf01a;color:var(--bs-info-text-emphasis)}.admin-page .alert-warning{background-color:#ffc1071a;color:var(--bs-warning-text-emphasis)}.admin-page .alert-danger{background-color:#dc35451a;color:var(--bs-danger-text-emphasis)}.admin-page .text-truncate{max-width:200px}.admin-page .small-text{font-size:.875rem}.admin-page .micro-text{font-size:.75rem}.admin-page .breadcrumb{background-color:transparent;padding:0;margin-bottom:1rem}.admin-page .breadcrumb-item+.breadcrumb-item:before{color:var(--bs-gray-500)}.admin-page .breadcrumb-item a{color:var(--bs-primary);text-decoration:none}.admin-page .breadcrumb-item a:hover{text-decoration:underline}.mojo-task-details-modal .modal-dialog{max-width:800px}.mojo-task-details-modal .fw-mono{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem}.mojo-task-details-modal .log-entry{border-left:3px solid var(--bs-gray-300);transition:all .2s ease}.mojo-task-details-modal .log-entry:hover{border-left-color:var(--bs-primary);background-color:var(--bs-gray-50)!important}.mojo-task-details-modal pre code{font-size:.85rem;line-height:1.4}.mojo-task-details-modal .badge{font-weight:500}.mojo-runner-details-modal .modal-dialog{max-width:1200px}.mojo-runner-details-modal .performance-metric{transition:all .3s ease}.mojo-runner-details-modal .performance-metric:hover{transform:translateY(-2px);box-shadow:0 .25rem .5rem #0000001a}.runner-detailsPrint Styles */ .mojo-task-details-view,.mojo-runner-details-view{max-height:70vh;overflow-y:auto}.mojo-task-details-view .card,.mojo-runner-details-view .card{border:1px solid var(--bs-border-color)}.mojo-task-details-view .card-header,.mojo-runner-details-view .card-header{background-color:var(--bs-gray-50);font-weight:500}.mojo-task-details-view .log-entry,.mojo-runner-details-view .log-entry{transition:background-color .2s ease}.mojo-task-details-view .log-entry:hover,.mojo-runner-details-view .log-entry:hover{background-color:var(--bs-gray-50)!important}.mojo-task-details-view .progress,.mojo-runner-details-view .progress{border-radius:10px;overflow:hidden}.mojo-task-details-view .progress-bar,.mojo-runner-details-view .progress-bar{transition:width .3s ease}.mojo-task-details-view .badge,.mojo-runner-details-view .badge{font-weight:500}.mojo-task-details-view pre{font-size:.875rem;line-height:1.4;border:1px solid var(--bs-border-color)}.mojo-task-details-view pre code,.mojo-runner-details-view pre code{color:var(--bs-gray-800)}.mojo-runner-details-view .progress{background-color:var(--bs-gray-200)}.mojo-runner-details-view .progress-bar{font-size:.875rem;font-weight:500}.mojo-task-details-view .table,.mojo-runner-details-view .table{font-size:.875rem}.mojo-task-details-view .table th,.mojo-runner-details-view .table th{font-weight:600;color:var(--bs-gray-700);font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.mojo-task-details-view .table td,.mojo-runner-details-view .table td{vertical-align:middle}.mojo-task-details-view .btn-group-sm .btn,.mojo-runner-details-view .btn-group-sm .btn{padding:.25rem .5rem;font-size:.8rem}.mojo-runner-details-view .btn-group .btn.active{background-color:var(--bs-primary);border-color:var(--bs-primary);color:#fff}.mojo-task-logs-container,.mojo-runner-logs-container{border:1px solid var(--bs-border-color);border-radius:.375rem}.mojo-task-logs-container::-webkit-scrollbar,.mojo-runner-logs-container::-webkit-scrollbar{width:6px}.mojo-task-logs-container::-webkit-scrollbar-track,.mojo-runner-logs-container::-webkit-scrollbar-track{background:var(--bs-gray-100);border-radius:3px}.mojo-task-logs-container::-webkit-scrollbar-thumb,.mojo-runner-logs-container::-webkit-scrollbar-thumb{background:var(--bs-gray-400);border-radius:3px}.mojo-task-logs-container::-webkit-scrollbar-thumb:hover,.mojo-runner-logs-container::-webkit-scrollbar-thumb:hover{background:var(--bs-gray-500)}@media print{.admin-page .btn,.admin-page .dropdown,.admin-page .card-header .btn-group{display:none!important}.admin-page .card{border:1px solid #000!important;box-shadow:none!important}.admin-page{background-color:#fff!important}.mojo-task-details-view,.mojo-runner-details-view{max-height:none;overflow:visible}}
|