:root,:host{--fa-font-solid:normal 900 1em/1 "Font Awesome 7 Free";--fa-font-regular:normal 400 1em/1 "Font Awesome 7 Free";--fa-font-light:normal 300 1em/1 "Font Awesome 7 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 7 Pro";--fa-font-duotone:normal 900 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-regular:normal 400 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-light:normal 300 1em/1 "Font Awesome 7 Duotone";--fa-font-duotone-thin:normal 100 1em/1 "Font Awesome 7 Duotone";--fa-font-brands:normal 400 1em/1 "Font Awesome 7 Brands";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-regular:normal 400 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-light:normal 300 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-thin:normal 100 1em/1 "Font Awesome 7 Sharp";--fa-font-sharp-duotone-solid:normal 900 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-regular:normal 400 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-light:normal 300 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-sharp-duotone-thin:normal 100 1em/1 "Font Awesome 7 Sharp Duotone";--fa-font-slab-regular:normal 400 1em/1 "Font Awesome 7 Slab";--fa-font-slab-press-regular:normal 400 1em/1 "Font Awesome 7 Slab Press";--fa-font-whiteboard-semibold:normal 600 1em/1 "Font Awesome 7 Whiteboard";--fa-font-thumbprint-light:normal 300 1em/1 "Font Awesome 7 Thumbprint";--fa-font-notdog-solid:normal 900 1em/1 "Font Awesome 7 Notdog";--fa-font-notdog-duo-solid:normal 900 1em/1 "Font Awesome 7 Notdog Duo";--fa-font-etch-solid:normal 900 1em/1 "Font Awesome 7 Etch";--fa-font-graphite-thin:normal 100 1em/1 "Font Awesome 7 Graphite";--fa-font-jelly-regular:normal 400 1em/1 "Font Awesome 7 Jelly";--fa-font-jelly-fill-regular:normal 400 1em/1 "Font Awesome 7 Jelly Fill";--fa-font-jelly-duo-regular:normal 400 1em/1 "Font Awesome 7 Jelly Duo";--fa-font-chisel-regular:normal 400 1em/1 "Font Awesome 7 Chisel";--fa-font-utility-semibold:normal 600 1em/1 "Font Awesome 7 Utility";--fa-font-utility-duo-semibold:normal 600 1em/1 "Font Awesome 7 Utility Duo";--fa-font-utility-fill-semibold:normal 600 1em/1 "Font Awesome 7 Utility Fill"}.svg-inline--fa{box-sizing:content-box;display:var(--fa-display,inline-block);vertical-align:-.125em;height:1em;width:var(--fa-width,1.25em);overflow:visible}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714286em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left,.svg-inline--fa .fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-pull-right,.svg-inline--fa .fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);inset-block-start:.25em;inset-inline-start:calc(-1 * var(--fa-li-width,2em))}.fa-layers-counter,.fa-layers-text{text-align:center;display:inline-block;position:absolute}.fa-layers{text-align:center;vertical-align:-.125em;height:1em;width:var(--fa-width,1.25em);display:inline-block;position:relative}.fa-layers .svg-inline--fa{transform-origin:50%;margin:auto;position:absolute;inset:0}.fa-layers-text{transform-origin:50%;top:50%;left:50%;transform:translate(-50%,-50%)}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);transform:scale(var(--fa-counter-scale,.25));transform-origin:100% 0;overflow:hidden}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:100% 100%;top:auto}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:0 100%;top:auto;right:auto}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:100% 0}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);transform:scale(var(--fa-layers-scale,.25));transform-origin:0 0}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{vertical-align:.225em;font-size:.625em;line-height:.1em}.fa-xs{vertical-align:.125em;font-size:.75em;line-height:.0833333em}.fa-sm{vertical-align:.0535715em;font-size:.875em;line-height:.0714286em}.fa-lg{vertical-align:-.075em;font-size:1.25em;line-height:.05em}.fa-xl{vertical-align:-.125em;font-size:1.5em;line-height:.0416667em}.fa-2xl{vertical-align:-.1875em;font-size:2em;line-height:.03125em}.fa-width-auto{--fa-width:auto}.fa-fw,.fa-width-fixed{--fa-width:1.25em}.fa-ul{margin-inline-start:var(--fa-li-margin,2.5em);padding-inline-start:0;list-style-type:none}.fa-ul>li{position:relative}.fa-li{text-align:center;width:var(--fa-li-width,2em);line-height:inherit;position:absolute;inset-inline-start:calc(-1 * var(--fa-li-width,2em))}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.0625em);box-sizing:var(--fa-border-box-sizing,content-box);padding:var(--fa-border-padding,.1875em .25em)}.fa-pull-left,.fa-pull-start{float:inline-start;margin-inline-end:var(--fa-pull-margin,.3em)}.fa-pull-right,.fa-pull-end{float:inline-end;margin-inline-start:var(--fa-pull-margin,.3em)}.fa-beat{animation-name:fa-beat;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{animation-name:fa-bounce;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28, .84, .42, 1))}.fa-fade{animation-name:fa-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4, 0, .6, 1))}.fa-beat-fade{animation-name:fa-beat-fade;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4, 0, .6, 1))}.fa-flip{animation-name:fa-flip;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{animation-name:fa-shake;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{animation-name:fa-spin;animation-delay:var(--fa-animation-delay,0s);animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,2s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{animation-name:fa-spin;animation-direction:var(--fa-animation-direction,normal);animation-duration:var(--fa-animation-duration,1s);animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-bounce,.fa-fade,.fa-beat-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{transition:none!important;animation:none!important}}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1)translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1), var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,.9), var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{transform:scale(var(--fa-bounce-land-scale-x,1.05), var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{transform:scale(1, 1) translateY(var(--fa-bounce-rebound,-.125em))}64%{transform:scale(1)translateY(0)}to{transform:scale(1)translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-beat-fade{0%,to{opacity:var(--fa-beat-fade-opacity,.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0), var(--fa-flip-y,1), var(--fa-flip-z,0), var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,to{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fa-rotate-90{transform:rotate(90deg)}.fa-rotate-180{transform:rotate(180deg)}.fa-rotate-270{transform:rotate(270deg)}.fa-flip-horizontal{transform:scaleX(-1)}.fa-flip-vertical{transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{transform:scale(-1)}.fa-rotate-by{transform:rotate(var(--fa-rotate-angle,0))}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.svg-inline--fa.fa-inverse{fill:var(--fa-inverse,#fff)}.fa-stack{vertical-align:middle;width:2.5em;height:2em;line-height:2em;display:inline-block;position:relative}.fa-inverse{color:var(--fa-inverse,#fff)}.svg-inline--fa.fa-stack-1x{--fa-width:1.25em;height:1em;width:var(--fa-width)}.svg-inline--fa.fa-stack-2x{--fa-width:2.5em;height:2em;width:var(--fa-width)}.fa-stack-1x,.fa-stack-2x{z-index:var(--fa-stack-z-index,auto);margin:auto;position:absolute;inset:0}
:root{--app-accent:#4f46e5;--app-accent-hover:#4338ca;--app-accent-rgb:79, 70, 229;--nav-h:56px;--sidebar-w:260px}html,body{min-height:100%}body{flex-direction:column;min-height:100vh;display:flex}[data-bs-theme=light] body{background-color:#f4f6f9}.app-main{flex:1 0 auto;padding-top:1.5rem;padding-bottom:3rem}.app-shell{flex:1 0 auto;align-items:flex-start;display:flex}.app-content{flex:auto;min-width:0}.app-sidebar{flex:0 0 var(--sidebar-w);width:var(--sidebar-w);top:var(--nav-h);height:calc(100vh - var(--nav-h));border-right:1px solid var(--bs-border-color-translucent);background-color:var(--bs-body-bg);flex-direction:column;display:none;position:sticky;overflow-y:auto}.sidebar-header{border-bottom:1px solid var(--bs-border-color-translucent);background-color:var(--bs-body-bg);z-index:1;padding:.75rem .5rem .75rem 1rem;position:sticky;top:0}.sidebar-title{text-transform:uppercase;letter-spacing:.05em;color:var(--bs-secondary-color);font-size:.75rem;font-weight:600}.sidebar-body{padding:.5rem 0}.sidebar-item{border-left:3px solid #0000;gap:.25rem;padding:.15rem .5rem .15rem .25rem}.sidebar-item.active{border-left-color:var(--app-accent);background-color:rgba(var(--app-accent-rgb), .08)}.sidebar-item.dragging{opacity:.45}.sidebar-item.drag-over{box-shadow:inset 0 2px 0 var(--app-accent)}.sidebar-grip{cursor:grab;padding:.35rem .25rem;font-size:.8rem}.sidebar-link{color:var(--bs-body-color);padding:.4rem .25rem;font-size:.92rem;text-decoration:none;display:block}.sidebar-link:hover{color:var(--app-accent)}.sidebar-item.active .sidebar-link{color:var(--app-accent);font-weight:600}.sidebar-unpin{opacity:0;transition:opacity .15s}.sidebar-item:hover .sidebar-unpin{opacity:1}.sidebar-expander{top:calc(var(--nav-h) + .5rem);align-self:flex-start;margin:.5rem 0 0 .25rem;display:none;position:sticky}@media (min-width:992px){.app-sidebar{display:flex}html[data-sidebar=collapsed] .app-sidebar{display:none}html[data-sidebar=collapsed] .sidebar-expander{display:inline-flex}}body,.card,.navbar,.table,.form-control,.form-select,.btn{transition:background-color .2s,border-color .2s,color .2s,box-shadow .2s}.btn-primary{--bs-btn-bg:var(--app-accent);--bs-btn-border-color:var(--app-accent);--bs-btn-hover-bg:var(--app-accent-hover);--bs-btn-hover-border-color:var(--app-accent-hover);--bs-btn-active-bg:var(--app-accent-hover);--bs-btn-active-border-color:var(--app-accent-hover);--bs-btn-disabled-bg:var(--app-accent);--bs-btn-disabled-border-color:var(--app-accent)}.btn-outline-primary{--bs-btn-color:var(--app-accent);--bs-btn-border-color:var(--app-accent);--bs-btn-hover-bg:var(--app-accent);--bs-btn-hover-border-color:var(--app-accent);--bs-btn-active-bg:var(--app-accent-hover);--bs-btn-active-border-color:var(--app-accent-hover)}.badge.bg-primary,.bg-primary{background-color:var(--app-accent)!important}.text-primary{color:var(--app-accent)!important}.pagination{--bs-pagination-color:var(--app-accent);--bs-pagination-hover-color:var(--app-accent-hover);--bs-pagination-active-bg:var(--app-accent);--bs-pagination-active-border-color:var(--app-accent)}.form-control:focus,.form-select:focus,.form-check-input:focus{border-color:var(--app-accent);box-shadow:0 0 0 .2rem rgba(var(--app-accent-rgb), .2)}.form-check-input:checked{background-color:var(--app-accent);border-color:var(--app-accent)}.navbar.bg-dark{background:linear-gradient(90deg,#1e1b4b 0%,#312e81 100%)!important}.navbar-brand{letter-spacing:.02em}.card{border:1px solid var(--bs-border-color-translucent);border-radius:.75rem;box-shadow:0 1px 3px #0000000f}.card.card-hover{transition:transform .15s,box-shadow .2s}.card.card-hover:hover{transform:translateY(-3px);box-shadow:0 8px 24px #0000001a}@keyframes schema-highlight-pulse{0%{box-shadow:0 0 0 .05rem rgba(var(--app-accent-rgb), .6)}30%{box-shadow:0 0 0 .3rem rgba(var(--app-accent-rgb), .45)}to{box-shadow:0 0 0 .3rem rgba(var(--app-accent-rgb), 0)}}.card.schema-highlight{animation:1.8s ease-out schema-highlight-pulse;border-color:var(--app-accent)!important}@media (prefers-reduced-motion:reduce){.card.schema-highlight{box-shadow:0 0 0 .2rem rgba(var(--app-accent-rgb), .4);animation:none}}.icon-badge{background:rgba(var(--app-accent-rgb), .12);width:2.75rem;height:2.75rem;color:var(--app-accent);border-radius:.75rem;justify-content:center;align-items:center;font-size:1.15rem;display:inline-flex}.table>thead th{text-transform:uppercase;letter-spacing:.03em;color:var(--bs-secondary-color);white-space:nowrap;font-size:.8rem}.page-title{font-weight:600}.min-w-0{min-width:0}.field-editor .form-label{color:var(--bs-secondary-color);margin-bottom:.15rem;font-size:.78rem;font-weight:500}.field-editor .form-control,.field-editor .form-select{padding-top:.25rem;padding-bottom:.25rem;font-size:.9rem}.field-editor .form-check{min-height:auto;margin-bottom:0}.field-editor .card-header{font-size:.8rem}.fc{--fc-border-color:var(--bs-border-color);--fc-today-bg-color:rgba(var(--app-accent-rgb), .08);--fc-neutral-bg-color:var(--bs-secondary-bg);--fc-neutral-text-color:var(--bs-secondary-color);--fc-page-bg-color:var(--bs-body-bg);--fc-event-bg-color:var(--app-accent);--fc-event-border-color:var(--app-accent);--fc-event-text-color:#fff;--fc-list-event-hover-bg-color:var(--bs-tertiary-bg)}.fc .fc-toolbar-title{color:var(--bs-body-color);font-size:1.05rem;font-weight:600}.fc .fc-col-header-cell-cushion,.fc .fc-daygrid-day-number,.fc .fc-list-day-text,.fc .fc-list-day-side-text,.fc .fc-list-event-title a{color:var(--bs-body-color);text-decoration:none}.fc .fc-button,.fc .fc-button-primary{background-color:var(--app-accent)!important;border-color:var(--app-accent)!important;box-shadow:none!important}.fc .fc-button:hover,.fc .fc-button-primary:hover,.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary:not(:disabled).fc-button-active{background-color:var(--app-accent-hover)!important;border-color:var(--app-accent-hover)!important}.fc .fc-button:disabled{opacity:.6!important}.fc .fc-list-empty{background-color:var(--bs-body-bg);color:var(--bs-secondary-color)}.app-footer{border-top:1px solid var(--bs-border-color-translucent);color:var(--bs-secondary-color);flex-shrink:0;padding:1rem 0;font-size:.85rem}@media print{nav.navbar,.app-footer,.app-sidebar,.sidebar-expander{display:none!important}.app-main{padding-top:0!important;padding-bottom:0!important}body{background-color:#fff!important}.card{box-shadow:none!important;border:1px solid #dee2e6!important}}@media (max-width:575.98px){.header-actions{width:100%}.header-actions>.btn{flex:auto}.header-actions>.btn-primary{flex-basis:100%}}.rich-text-editor .ql-toolbar.ql-snow,.rich-text-editor .ql-container.ql-snow{border-color:var(--bs-border-color)}.rich-text-editor .ql-toolbar.ql-snow{border-top-left-radius:var(--bs-border-radius);border-top-right-radius:var(--bs-border-radius);background-color:var(--bs-tertiary-bg)}.rich-text-editor .ql-container.ql-snow{border-bottom-left-radius:var(--bs-border-radius);border-bottom-right-radius:var(--bs-border-radius);background-color:var(--bs-body-bg);color:var(--bs-body-color);font-size:1rem}.rich-text-editor .ql-editor{min-height:7rem}.rich-text-editor.rich-text-editor-sm .ql-editor{min-height:4rem}.rich-text-editor .ql-editor.ql-blank:before{color:var(--bs-secondary-color);font-style:normal}.rich-text-editor .ql-snow .ql-stroke{stroke:var(--bs-body-color)}.rich-text-editor .ql-snow .ql-fill{fill:var(--bs-body-color)}.rich-text-editor .ql-snow .ql-picker{color:var(--bs-body-color)}.rich-text-editor .ql-snow .ql-picker-options{background-color:var(--bs-body-bg);border-color:var(--bs-border-color)}.rich-text-editor .ql-snow.ql-toolbar button:hover .ql-stroke,.rich-text-editor .ql-snow.ql-toolbar button.ql-active .ql-stroke{stroke:var(--app-accent,var(--bs-primary))}.rich-text-editor .ql-snow.ql-toolbar button:hover .ql-fill,.rich-text-editor .ql-snow.ql-toolbar button.ql-active .ql-fill{fill:var(--app-accent,var(--bs-primary))}.rich-text-content>:last-child{margin-bottom:0}
