@layer theme{:root{--color-background:oklch(98.5% .003 106.448);--color-surface:oklch(95.8% .004 91.447);--color-border:oklch(87.4% .009 84.575);--color-text:oklch(25.2% 0 0);--color-secondary:oklch(51% 0 0);--color-secondary-dark:oklch(30.9% 0 0);--color-accent:oklch(49.3% .052 165.154);--color-accent-bright:oklch(78.19% .1301 165.15);--color-accent-brightest:oklch(90.3% .096 167.313);--color-accent-hover:oklch(from var(--color-accent) 70% c h);--color-utility-danger:oklch(48.6% .188 30.089);--color-utility-warning:oklch(63.6% .101 49.627);--color-utility-success:oklch(47.5% .143 146.455);--color-utility-info:oklch(52.4% .224 260.83);--color-on-accent:white;--color-on-danger:white;--color-on-warning:var(--color-text);--color-on-info:white;--color-on-secondary:white;--color-on-success:white;--color-on-surface:var(--color-text);--fontsize--2:clamp(.64rem, calc(.7167rem + -.099vw), .6944rem);--fontsize--1:clamp(.8rem, calc(.847rem + -.0606vw), .8333rem);--fontsize-0:clamp(1rem, calc(1rem + 0vw), 1rem);--fontsize-1:clamp(1.2rem, calc(1.1795rem + .0909vw), 1.25rem);--fontsize-2:clamp(1.44rem, calc(1.3899rem + .2227vw), 1.5625rem);--fontsize-3:clamp(1.728rem, calc(1.6359rem + .4093vw), 1.9531rem);--fontsize-4:clamp(2.0736rem, calc(1.9231rem + .6687vw), 2.4414rem);--fontsize-5:clamp(2.4883rem, calc(2.2578rem + 1.0244vw), 3.0518rem);--fontsize-6:clamp(2.986rem, 2.647rem + 1.5068vw, 3.8147rem);--padding:1.5rem;--spacing:var(--padding);--gap:1.5rem;--box-shadow:#00000073 0px 25px 20px -20px;--backdrop:repeating-conic-gradient(from 0deg at 50% 50%, oklch(from var(--color-secondary-dark) l c h / .3) 0%, oklch(from var(--color-secondary-dark) l c h / .3) 25%, oklch(from var(--color-accent) l c h / .3) 25%, oklch(from var(--color-accent) l c h / .3) 50%);--body-font-family:"IBM Plex Sans", sans-serif;--body-italic-font-family:"IBM Plex Sans Italic", sans-serif;--monospace-font-family:"IBM Plex Mono", monospace}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../assets/fonts/IBM-Plex-Sans_latin_100_700_normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Sans Italic;font-style:italic;font-weight:100 700;font-stretch:100%;font-display:swap;src:url(../assets/fonts/IBM-Plex-Sans_latin_100_700_italic.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/IBM-Plex-Mono_latin_400_normal.woff2)format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/IBM-Plex-Mono_latin_500_normal.woff2)format("woff2")}:root{--header-height:3rem}header#main-header{height:var(--header-height);z-index:1;background-color:var(--color-background);position:fixed;top:0}.skip-link:focus{transform:translateY(var(--header-height))}main#main-content{margin-block-start:var(--header-height)}.popover-menu{background-color:var(--color-background);box-shadow:var(--box-shadow);border:none;& ul .menu-item :is(a,button){color:var(--color-accent);text-decoration:none;&:hover,&:focus{text-decoration:underline}}}.button{border:1px solid var(--color-accent);background-color:var(--color-accent);color:var(--color-on-accent);font-size:var(--fontsize-0);text-decoration:none}.button.hollow{color:var(--color-accent);border:1px solid var(--color-accent);background-color:#0000;transition:all .2s linear;&:hover{cursor:pointer;background-color:var(--color-accent);color:var(--color-background)}}hr{background-color:var(--color-accent);border:none;max-width:10%;height:4px}.card h2{font-size:var(--fontsize-1)}.badge{background-color:var(--color-secondary-dark);color:var(--color-accent-brightest);font-size:var(--fontsize--1);font-family:var(--monospace-font-family);text-transform:uppercase;letter-spacing:.1rem;&.badge-status{&.status-active{background-color:var(--color-utility-success);color:var(--color-on-success)}&.status-inactive{background-color:var(--color-secondary);color:var(--color-on-secondary)}}&.badge-role{&.role-admin,&.role-editor,&.role-user{background-color:var(--color-utility-info);color:var(--color-on-info)}}}ul.checklist{font-size:var(--fontsize-1);& li::marker{content:url(../assets/checklist-checkmark.png)}&.small{font-size:var(--fontsize-0)}}table{border:1px solid var(--color-border);& caption{font-size:var(--fontsize-3);text-align:start;font-weight:600}& thead{& th{text-align:left;font-size:var(--fontsize--1);text-transform:uppercase}}& tr{border:1px solid var(--color-border)}& tbody{& tr:nth-child(odd){background-color:var(--color-surface);&:hover{background-color:var(--color-accent-brightest)}}& tr:hover{background-color:var(--color-accent-brightest)}}& td{&.full-cell{text-transform:uppercase;font-size:var(--fontsize--1);--bg-color:inherit;background-color:var(--bg-color);color:var(--color-on-surface);font-weight:600}&.status-inactive{--bg-color:var(--color-utility-warning);color:var(--color-on-warning)}&.status-active{--bg-color:color-mix(in oklch, var(--color-utility-success) 95%, black 5%);color:var(--color-on-success)}&.role-admin{--bg-color:color-mix(in oklch, var(--color-utility-info) 95%, black 5%);color:var(--color-on-info)}&.role-editor{--bg-color:color-mix(in oklch, oklch(from var(--color-utility-info) l c h / .75) 95%, black 5%);color:var(--color-on-info)}&.role-user{--bg-color:color-mix(in oklch, oklch(from var(--color-utility-info) l c h / .5) 95%, black 5%);color:var(--color-on-info)}}& .toolbar{& .button{border:1px solid var(--color-accent);transition:all .3s ease-in-out;&:hover,&:focus{background-color:var(--color-accent-hover);border:1px solid var(--color-accent-hover)}}}}code{font-size:var(--fontsize--2);font-family:var(--monospace-font-family);border:1px solid var(--color-border);text-align:left}.navbar .navbar-menu{& a{color:var(--color-accent);text-decoration:none;&:hover,&:focus,&:visited{text-decoration:underline}}}ul.sub-nav{background:var(--color-background);border:1px solid var(--color-border);border-top:none}@media (width<48rem){.loom73-ready .navbar-toggler{background:0 0}.loom73-ready .navbar{background:var(--color-surface)}.loom73-ready .navbar-menu{& li a{font-size:var(--fontsize-1)}}.loom73-ready .navbar-menu ul.sub-nav{background:0 0;border:none}}.loom73-tooltip{color:#fff;font-size:var(--fontsize--1);text-align:start;background:#202428;border:1px solid #ffffff1a;border-radius:.25rem;padding:.5rem .75rem;font-weight:400;line-height:1.4;box-shadow:0 .25rem 1rem #0003}@scope(div.table-pagination){:scope{& button{font-size:var(--fontsize-0);text-transform:uppercase;color:var(--color-accent);background:0 0;border:none;transition:all .1s linear;&:hover,&:focus{transform:scale(1.05)}&[disabled]{color:var(--color-secondary);&:hover{transform:none}}}}}@scope(form:not(.menu-form-action)){:scope{accent-color:var(--color-accent);& legend{font-size:var(--fontsize-1);font-weight:700}& fieldset{border:none}& .form-group:has(input:focus){outline:3px solid color-mix(in oklch, var(--color-accent) 20%, transparent 80%);outline-offset:2px}& label,& legend{text-align:left;text-wrap:nowrap}& label:has(+[required]):after{color:var(--color-utility-danger)}& input,& select,& textarea{font-size:var(--fontsize-0);border:1px solid var(--color-border);font-family:var(--body-font-family);&:user-valid{border-color:var(--color-utility-success)}&:user-invalid{border-color:var(--color-utility-danger)}}& input[type=file]::file-selector-button{border:1px solid var(--color-accent);background-color:var(--color-accent);color:var(--color-on-accent);font-family:var(--body-font-family);font-size:var(--fontsize-0)}& .user-invalid-error[data-active-error=true]{font-size:var(--fontsize--1);color:var(--color-surface);background-color:var(--color-utility-danger)}& button[type=submit]{background-color:var(--color-accent);font-size:var(--fontsize-0);color:var(--color-on-accent);border:none;&:hover,&:focus,&:active{background-color:var(--color-accent-hover);color:var(--color-on-accent)}}& button[type=reset]{background-color:var(--color-secondary);font-size:var(--fontsize-0);color:var(--color-on-secondary);border:none;&:hover,&:focus,&:active{background-color:var(--color-accent-hover);color:var(--color-on-accent)}}& .form-helper-text{font-size:var(--fontsize--1);color:var(--color-secondary);font-family:var(--body-italic-font-family)}}}@scope(dialog){:scope{&::backdrop{background-image:var(--backdrop);background-repeat:repeat;background-size:.5rem .5rem}& button.modal-button,& button.modal-button[type=submit]{font-size:var(--fontsize-0);&.close{border:1px solid var(--color-accent);color:var(--color-accent);background:0 0;&:hover,&:focus,&:active{background-color:var(--color-accent);color:var(--color-on-accent)}}}& button.modal-button[type=submit]{background-color:var(--color-utility-danger);color:var(--color-on-danger);&:hover,&:focus,&:active{background-color:oklch(from var(--color-utility-danger) .5 c h);color:var(--color-on-danger)}}& button[data-dialog-close]{background:0 0;border:none}}}figure.hero-image{position:relative;&:after{content:"L";background-color:var(--color-secondary-dark);mix-blend-mode:screen;z-index:10000;outline:1px solid var(--color-border);outline-offset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);display:block;position:absolute;top:-1px;left:-1px}& figcaption{background-color:var(--color-surface);border-top:1px solid var(--color-border);color:var(--color-on-surface)}}.gauge{& details{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-on-surface);box-shadow:var(--box-shadow)}& summary{font-family:var(--monospace-font-family);&:hover{background:var(--color-background)}&:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}}& dl>div+div{border-block-start:1px solid var(--color-border)}& dt{color:var(--color-accent)}& dd{color:var(--color-on-surface);font-family:var(--monospace-font-family)}}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}main#main-content{view-transition-name:main-content}::view-transition-group(main-content){animation-duration:.5s;animation-timing-function:ease-in-out}::view-transition-old(main-content){animation-name:page-slide-out}::view-transition-new(main-content){animation-name:page-slide-in}@keyframes page-slide-out{to{translate:-100vw}}@keyframes page-slide-in{0%{translate:100vw}}}}