*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{bottom:0;top:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-10{z-index:10}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-bottom:.25rem;margin-top:.25rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.\!hidden{display:none!important}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-screen{max-height:100vh}.min-h-\[60px\]{min-height:60px}.w-10{width:2.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[1px\]{width:1px}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.max-w-lg{max-width:32rem}.max-w-max{max-width:max-content}.flex-1{flex:1 1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[--radix-hover-card-content-transform-origin\]{transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\[--radix-menubar-content-transform-origin\]{transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-\[-50\%\]{--tw-translate-x:-50%}.translate-x-\[-50\%\],.translate-y-\[-50\%\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y:-50%}.rotate-45{--tw-rotate:45deg}.rotate-45,.rotate-90{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate:90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;user-select:none}.resize{resize:both}.list-none{list-style-type:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.25rem*var(--tw-space-x-reverse))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.25rem*var(--tw-space-y-reverse));margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.375rem*var(--tw-space-y-reverse));margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.break-words{overflow-wrap:break-word}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/50{border-color:hsl(var(--destructive)/.5)}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/50{border-color:hsl(var(--primary)/.5)}.border-transparent{border-color:#0000}.border-l-transparent{border-left-color:#0000}.border-t-transparent{border-top-color:#0000}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted)/.5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary)/.1)}.bg-primary\/20{background-color:hsl(var(--primary)/.2)}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:initial}.fill-current{fill:currentColor}.fill-primary{fill:hsl(var(--primary))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-4{padding-bottom:1rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-1{padding-top:.25rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-\[0\.8rem\]{font-size:.8rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground)/.5)}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-0{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-0{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-ring{--tw-ring-color:hsl(var(--ring))}.ring-offset-background{--tw-ring-offset-color:hsl(var(--background))}.blur{--tw-blur:blur(8px)}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-duration:.15s;animation-name:enter}.fade-in-0{--tw-enter-opacity:0}.zoom-in-95{--tw-enter-scale:.95}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.running{animation-play-state:running}*{box-sizing:border-box}body{background:#f8fafc;color:#0f172a;font-family:Inter,sans-serif;font-size:14px;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #4f46e5;outline-offset:2px}.file\:border-0::file-selector-button{border-width:0}.file\:bg-transparent::file-selector-button{background-color:initial}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:inset-y-0:after{bottom:0;content:var(--tw-content);top:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:-translate-x-1\/2:after{--tw-translate-x:-50%;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-bottom-left-radius:calc(var(--radius) - 2px);border-top-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-bottom-right-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive)/.8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive)/.9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted)/.5)}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary)/.8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary)/.9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary)/.8)}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-1:focus,.focus\:ring-2:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-ring:focus{--tw-ring-color:hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:hsl(var(--ring))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted)/.4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity:1;color:#fca5a5;color:rgb(252 165 165/var(--tw-text-opacity,1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive)/.3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity:1;color:#fef2f2;color:rgb(254 242 242/var(--tw-text-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(248 113 113/var(--tw-ring-opacity,1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color:#dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent)/.5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom],.data-\[side\=left\]\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.data-\[side\=right\]\:translate-x-1[data-side=right],.data-\[side\=top\]\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x:1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x:var(--radix-toast-swipe-end-x)}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end],.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x:var(--radix-toast-swipe-move-x)}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent)/.5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-duration:.15s;animation-name:enter}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-duration:.15s;animation-name:exit}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity:0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity:0.8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale:.9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x:13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x:-13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x:13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x:-13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y:100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x:-100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x:-50%}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x:100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y:-100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y:100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x:-100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x:-50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x:100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y:-48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y:-100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{--tw-translate-y:-50%;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{--tw-translate-x:0px;content:var(--tw-content);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:focus\:bg-accent:focus[data-state=open],.data-\[state\=open\]\:hover\:bg-accent:hover[data-state=open]{background-color:hsl(var(--accent))}.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}@media (min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mt-0{margin-top:0}.sm\:max-w-sm{max-width:24rem}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.5rem*var(--tw-space-x-reverse))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:text-left{text-align:left}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y:100%}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md:has(>.day-range-end){border-bottom-right-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md:has(>.day-range-start){border-bottom-left-radius:calc(var(--radius) - 2px);border-top-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:rounded-md:has([aria-selected]){border-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-bottom-left-radius:calc(var(--radius) - 2px);border-top-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-bottom-right-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent)/.5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-bottom-right-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>span\]\:line-clamp-1>span{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y:-3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-4>svg{height:1rem;width:1rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate:90deg}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div,.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate:180deg}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-bottom:.375rem;padding-top:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-bottom:.75rem;padding-top:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{height:1rem;width:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}:root{--navy:#2e1065;--blue:#7c3aed;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;--page:#f8fafc;--green:#16a34a;--orange:#d97706;--red:#dc2626}b,h1,h2,h3,strong{font-family:Outfit,Inter,sans-serif}h1,h2,h3,p{margin:0}.muted{color:#64748b;margin-top:7px}.eyebrow,.overline{color:#64748b;font-size:11px;font-weight:700;letter-spacing:.12em;margin-bottom:8px}.loading{background:#f8fafc;display:grid;font-family:Outfit;font-size:20px;min-height:100vh;place-items:center}.login-shell{display:grid;grid-template-columns:1.08fr .92fr;min-height:100vh}.login-visual{background:linear-gradient(135deg,#0f2745f2,#0284c7d6),url(https://images.unsplash.com/photo-1544185310-0b3cf501672b?auto=format&fit=crop&w=1400&q=80) 50%/cover;color:#fff;display:flex;flex-direction:column;justify-content:center;padding:64px 10%}.brand-mark,.logo-box{border-radius:12px;box-shadow:0 10px 20px #7c3aed66;display:grid;height:44px;place-items:center;width:44px}.login-visual .overline{color:#ddd6fe;margin-top:72px}.login-visual h1{font-size:clamp(42px,5vw,72px);letter-spacing:-1px;line-height:1.02}.login-visual h1 em,.welcome-banner em{color:#c4b5fd;font-style:normal}.login-copy{color:#ede9fe;line-height:1.7;margin-top:25px;max-width:430px}.login-address{border-top:1px solid #fff3;color:#ede9fe;display:flex;font-size:11px;gap:24px;letter-spacing:.03em;margin-top:80px;padding-top:20px}.login-panel{display:grid;place-items:center}.login-panel-inner{width:min(390px,82%)}.login-panel h2{font-size:32px}.login-panel form{grid-gap:17px;display:grid;gap:17px;margin-top:30px}label{grid-gap:8px;color:#334155;display:grid;font-size:12px;font-weight:700;gap:8px}input,select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;color:#0f172a;font-size:13px;height:44px;padding:0 13px}input::placeholder{color:#94a3b8}.banner-button,.icon-button,.logout,.member-row,.mode-switch button,.nav-item,.primary,.report-tabs button,.secondary,.shortcut,.text-button{align-items:center;border:0;display:inline-flex;gap:8px;justify-content:center;transition:background .2s,transform .2s,box-shadow .2s}.primary{border-radius:8px;color:#fff;font-weight:700;padding:12px 16px}.primary:hover{box-shadow:0 8px 16px #7c3aed33}.full{width:100%}.secondary{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;color:#334155;font-weight:700;padding:11px 15px}.secondary:hover{background:#e2e8f0}.error{background:#fef2f2;border-radius:7px;color:#b91c1c;font-size:12px;padding:10px}.demo-login{border-top:1px solid #e2e8f0;margin-top:35px;padding-top:22px}.demo-login>span{color:#94a3b8;font-size:10px;font-weight:700;letter-spacing:.1em}.demo-login>div{display:flex;gap:8px;margin-top:10px}.demo-login button{border:0;border-radius:20px;font-size:12px;padding:8px 14px}.app-frame{display:flex;min-height:100vh}.sidebar{background:#2e1065;background:var(--navy);color:#cbd5e1;display:flex;flex-direction:column;flex-shrink:0;padding:24px 15px;width:245px}.side-brand{align-items:center;color:#fff;display:flex;gap:10px;padding:0 9px 35px}.side-brand small{color:#c4b5fd;display:block;font-size:9px;letter-spacing:.08em;margin-top:3px}.side-brand strong{font-size:15px}.logo-box{border-radius:9px;box-shadow:none;height:34px;width:34px}.side-label{color:#7890ab;font-size:10px;letter-spacing:.12em;padding:0 12px 12px}.sidebar nav{grid-gap:5px;display:grid;gap:5px}.nav-item{background:#0000;border-radius:8px;color:#9fb0c5;justify-content:flex-start;padding:12px;width:100%}.nav-item svg:last-child{margin-left:auto}.nav-item.active,.nav-item:hover{background:#4c1d95;color:#fff}.nav-item.active{box-shadow:inset 3px 0 #8b5cf6}.side-bottom{margin-top:auto}.no-fine{background:#3b0f7a;border:1px solid #5b21b6;border-radius:9px;color:#c4b5fd;display:flex;gap:10px;margin-bottom:20px;padding:13px}.no-fine b,.no-fine small{display:block}.no-fine b{color:#fff;font-size:12px}.no-fine small{font-size:10px;margin-top:3px}.logout{background:#0000;border-radius:8px;color:#9fb0c5;justify-content:flex-start;padding:12px;width:100%}.logout:hover{background:#3b0f7a;color:#fff}.content{flex:1 1;min-width:0}.topbar{border-bottom:1px solid #e2e8f0;height:72px;justify-content:space-between;padding:0 4%}.crumb,.topbar{align-items:center;display:flex}.crumb{color:#94a3b8;font-size:13px;gap:8px}.crumb b{color:#334155}.top-actions{align-items:center;display:flex;gap:20px}.icon-button{background:#0000;border-radius:8px;color:#64748b;height:38px;width:38px}.icon-button:hover{background:#f1f5f9}.user-chip{align-items:center;display:flex;gap:10px}.user-chip b,.user-chip small{display:block}.user-chip b{font-size:12px}.user-chip small{color:#64748b;font-size:11px;margin-top:2px}.avatar{border-radius:50%;color:#6d28d9;display:grid;font-weight:700;height:34px;place-items:center;width:34px}.main-area{margin:auto;max-width:1300px;padding:38px 4% 64px}.page-heading{align-items:end;display:flex;justify-content:space-between;margin-bottom:28px}.page-heading h2{font-size:31px}.welcome-banner{align-items:center;background:linear-gradient(115deg,#2e1065,#6d28d9);border-radius:12px;color:#fff;display:flex;justify-content:space-between;margin-bottom:22px;min-height:242px;overflow:hidden;padding:34px 40px;position:relative}.welcome-banner h1{font-size:30px;line-height:1.1}.welcome-banner p:not(.eyebrow){color:#ddd6fe;margin-top:12px}.banner-button{border-radius:8px;color:#5b21b6;font-weight:700;margin-top:20px;padding:11px 15px}.banner-art{color:#c4b5fd;display:grid;height:170px;opacity:.85;place-items:center;position:relative;width:220px}.banner-art:after,.banner-art:before{border:1px solid #c4b5fd55;border-radius:50%;content:"";height:190px;position:absolute;width:190px}.banner-art:after{height:240px;width:240px}.art-line{background:#c4b5fd55;height:1px;position:absolute;transform:rotate(-25deg);width:260px}.line-one{top:34px}.line-two{bottom:36px;transform:rotate(25deg)}.stat-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.panel,.stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:10px}.stat-card{padding:18px;position:relative}.stat-card>span{color:#64748b;display:block;font-size:12px}.stat-card strong{display:block;font-size:27px;margin-top:11px}.stat-card small{color:#94a3b8;font-size:11px}.stat-icon{border-radius:8px;display:grid;height:34px;margin-bottom:15px;place-items:center;width:34px}.stat-icon.blue{color:#7c3aed}.stat-icon.green{background:#dcfce7;color:#16a34a}.stat-icon.orange{background:#fef3c7;color:#d97706}.stat-icon.red{background:#fee2e2;color:#dc2626}.section-row{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1.12fr .88fr}.panel{padding:21px}.panel-title{align-items:start;display:flex;justify-content:space-between;margin-bottom:17px}.panel-title h3{font-size:18px}.text-button{background:none;font-size:12px;font-weight:700}.activity,.mini-transaction{align-items:center;border-top:1px solid #f1f5f9;display:flex;gap:12px;padding:13px 0}.activity>div:nth-child(2),.mini-transaction>div:nth-child(2){flex:1 1;min-width:0}.activity b,.activity span,.mini-transaction b,.mini-transaction span{display:block}.activity b,.mini-transaction b{font-size:13px}.activity span,.mini-transaction span{color:#64748b;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity time{color:#94a3b8;font-size:11px}.activity-icon{border-radius:50%;display:grid;flex-shrink:0;height:32px;place-items:center;width:32px}.activity-icon.borrow{color:#7c3aed}.activity-icon.return{background:#dcfce7;color:#16a34a}.shortcut{background:#f8fafc;border-radius:8px;color:#334155;justify-content:flex-start;margin-top:9px;padding:13px;text-align:left;width:100%}.shortcut>div{flex:1 1}.shortcut b,.shortcut small{display:block}.shortcut b{font-size:12px}.shortcut small{color:#64748b;font-size:11px;margin-top:3px}.shortcut-icon{border-radius:7px;color:#7c3aed;padding:8px}.shortcut-icon.green{background:#dcfce7;color:#16a34a}.toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:19px}.toolbar-title{font-size:18px}.searchbox{align-items:center;border:1px solid #e2e8f0;border:1px solid var(--line);border-radius:8px;color:#94a3b8;display:flex;gap:9px;height:44px;padding:0 13px;width:380px}.searchbox input{border:0;outline:0;padding:0;width:100%}.table-panel{padding:21px}.shelf-tag,.soft-badge,.status{border-radius:20px;font-size:11px;font-weight:700;padding:6px 9px}.soft-badge{align-items:center;display:flex;gap:5px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:650px;text-align:left;width:100%}th{border-bottom:1px solid #e2e8f0;color:#94a3b8;font-size:10px;letter-spacing:.08em;padding:11px 10px}td{border-bottom:1px solid #f1f5f9;color:#475569;font-size:12px;padding:13px 10px}td b{color:#0f172a;font-size:13px}.book-cell{align-items:center;display:flex;gap:10px}.book-cell span{color:#94a3b8;display:block;font-size:11px;margin-top:3px}.book-cover{border-radius:4px;display:grid;height:42px;overflow:hidden;place-items:center;width:34px}.avatar.large img,.book-cover img{height:100%;object-fit:cover;width:100%}.avatar.large img{border-radius:50%}.id-card-body .photo img,.photo img{border-radius:7px;height:100%;object-fit:cover;width:100%}.photo-box{align-items:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:10px;display:flex;gap:14px;padding:12px}.photo-preview{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#94a3b8;display:grid;flex-shrink:0;height:72px;overflow:hidden;place-items:center;width:72px}.photo-preview img{height:100%;object-fit:cover;width:100%}.photo-actions{align-items:flex-start;display:flex;flex-direction:column;gap:6px}.photo-actions .secondary{font-size:12px;padding:7px 11px}.photo-actions small{color:#94a3b8;font-size:10px}.scan-buttons{display:flex;gap:8px;margin-top:6px}.scan-buttons .secondary{font-size:12px;padding:9px 13px}.manual-row{display:flex;gap:8px;margin-top:14px}.manual-row input{flex:1 1}.manual-row .secondary{padding:0 15px}.qr-shell{grid-gap:12px;display:grid;gap:12px}.qr-reader{background:#0f172a;border-radius:10px;min-height:260px;overflow:hidden;width:100%}.qr-reader video{border-radius:10px;width:100%!important}.shelves-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.shelf-card{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--line);border-radius:12px;padding:20px}.shelf-head{align-items:start;display:flex;justify-content:space-between;margin-bottom:12px}.shelf-head h3{font-size:17px;margin-top:3px}.shelf-bar{background:#f1f5f9;border-radius:4px;height:6px;margin-bottom:4px;overflow:hidden}.shelf-bar div{background:#7c3aed;border-radius:4px;height:100%;transition:width .3s}.shelf-card small{color:#94a3b8;font-size:11px}.shelf-books{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.shelf-spine{background:#f5f3ff;border-radius:5px;color:#7c3aed;display:grid;height:62px;overflow:hidden;place-items:end;position:relative;width:46px}.shelf-spine img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%}.shelf-spine span{-webkit-line-clamp:2;-webkit-box-orient:vertical;background:linear-gradient(#0000,#000c);color:#fff;display:-webkit-box;font-size:8px;line-height:1.1;overflow:hidden;padding:3px 4px;position:relative;text-align:center;text-overflow:ellipsis;width:100%;z-index:1}.id-qr{background:#fff;border-radius:5px;height:52px;padding:3px;width:52px}.period-select{background:#f1f5f9;border-radius:7px;display:flex;gap:4px;margin-left:auto;padding:3px}.period-select button{background:#0000;border:0;border-radius:5px;color:#64748b;cursor:pointer;font-size:11px;font-weight:700;padding:6px 11px}.period-select button.active{background:#fff;box-shadow:0 1px 2px #0f172a1a;color:#7c3aed}.status.tersedia{background:#dcfce7;color:#15803d}.status.dipinjam,.status.pinjam{background:#fef3c7;color:#a16207}.status.kembali{color:#1d4ed8}@media print{.page-heading,.panel-title button,.print-btn,.report-tabs,.sidebar,.toolbar,.topbar{display:none!important}.content,.main-area{margin:0;padding:0}.id-card{box-shadow:none;break-inside:avoid;page-break-inside:avoid}}.shelf-tag{background:#ede9fe}.status{background:#dcfce7;color:#15803d}.status.dipinjam{background:#fef3c7;color:#a16207}.status.hilang{background:#fee2e2;color:#b91c1c}.danger-icon{background:#0000;border:0;border-radius:6px;color:#94a3b8;padding:8px}.danger-icon:hover{background:#fef2f2;color:#dc2626}.member-layout{grid-gap:20px;display:grid;gap:20px;grid-template-columns:.9fr 1.1fr}.member-row{background:#fff;border-bottom:1px solid #f1f5f9;justify-content:flex-start;padding:13px 4px;text-align:left;width:100%}.member-row .avatar{margin-right:10px}.member-row>div:nth-child(2){flex:1 1}.member-row b,.member-row span{display:block}.member-row b{font-size:13px}.member-row span{color:#64748b;font-size:11px;margin-top:3px}.member-row.selected{border-bottom-color:#bfdbfe;padding-left:9px}.avatar.large{height:38px;width:38px}.member-card-wrap{align-items:center;display:flex;flex-direction:column}.member-card-wrap .eyebrow{align-self:flex-start}.id-card{background:linear-gradient(130deg,#2e1065,#5b21b6);border-radius:12px;box-shadow:0 16px 28px #2e106533;color:#fff;margin-top:9px;padding:22px;width:min(100%,470px)}.id-card-body,.id-card-foot,.id-card-top{align-items:center;display:flex}.id-card-top{border-bottom:1px solid #fff3;gap:9px;padding-bottom:16px}.id-card-top>div:nth-child(2){flex:1 1}.mini-logo{background:#7c3aed;border-radius:8px;display:grid;height:32px;place-items:center;width:32px}.id-card-top b,.id-card-top small{display:block}.id-card-top b{font-size:11px}.id-card-top small{color:#ddd6fe;font-size:8px;margin-top:3px}.id-card-body{gap:16px;padding:24px 0}.photo{background:#ede9fe;border-radius:7px;color:#6d28d9;display:grid;flex-shrink:0;font:700 30px Outfit;height:87px;place-items:center;width:75px}.id-card-body span{color:#c4b5fd;font-size:9px;letter-spacing:.1em}.id-card-body h3{font-size:22px;margin:4px 0}.id-card-body p{color:#ede9fe;font-size:11px;margin-top:4px}.id-card-foot{border-top:1px solid #fff3;color:#ddd6fe;font-size:9px;justify-content:space-between;padding-top:13px}.id-card-foot b{color:#fff;font-size:10px}.print-btn{margin-top:17px}.circulation-grid{grid-gap:19px;display:grid;gap:19px;grid-template-columns:1.05fr .95fr}.circulation-panel{padding:25px}.mode-switch{background:#f1f5f9;border-radius:8px;display:flex;margin-bottom:19px;padding:4px}.mode-switch button{background:#0000;border-radius:6px;color:#64748b;flex:1 1;font-size:12px;font-weight:700;padding:10px}.mode-switch button.selected{background:#fff;box-shadow:0 1px 3px #0f172a18;color:#6d28d9}.scanner-box{align-items:center;background:#faf8ff;border:1px dashed #c4b5fd;color:#7c3aed;display:flex;flex-direction:column;height:220px;justify-content:center;overflow:hidden;position:relative;text-align:center}.scanner-box h3{color:#0f172a;font-size:18px;margin:10px 0 5px}.scanner-box p{color:#64748b;font-size:11px;margin-bottom:14px}.scan-corners{border-color:#7c3aed #7c3aed66;border-style:solid;border-width:2px;inset:28px;position:absolute}.or-line{align-items:center;color:#94a3b8;display:flex;font-size:10px;gap:12px;margin:19px 0}.or-line:after,.or-line:before{background:#e2e8f0;content:"";flex:1 1;height:1px}.circulation-panel label{margin-top:13px}.today-panel{padding:25px}.live-dot{background:#dcfce7;border-radius:12px;color:#16a34a;font-size:10px;font-weight:700;padding:5px 8px}.mini-transaction small{color:#64748b;font-size:10px}.zero-fine{background:#f0fdf4;border-radius:8px;color:#16a34a;display:flex;gap:10px;margin-top:18px;padding:13px}.zero-fine b,.zero-fine small{display:block}.zero-fine b{font-size:11px}.zero-fine small{color:#4d7c0f;font-size:10px;margin-top:3px}.report-tabs{border-bottom:1px solid #e2e8f0;display:flex;gap:8px;margin-bottom:23px}.report-tabs button{background:#0000;border-bottom:2px solid #0000;color:#64748b;font-weight:700;padding:12px 16px}.report-tabs button.active{color:#7c3aed}.report-summary{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.report-summary>div{background:#fff;border:1px solid #e2e8f0;border:1px solid var(--line);border-radius:9px;padding:18px}.report-summary small,.report-summary span{color:#64748b;display:block;font-size:11px}.report-summary b{display:block;font-size:28px;margin:7px 0}.modal-backdrop{background:#0f172a88;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:5}.modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0f172a44;max-height:90vh;overflow:auto;padding:23px;width:min(460px,100%)}.modal-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.modal-head h3{font-size:20px}.modal-form{grid-gap:14px;display:grid;gap:14px}.toast{border-radius:8px;bottom:24px;box-shadow:0 8px 25px #0f172a33;color:#fff;font-size:13px;padding:13px 17px;position:fixed;right:24px;z-index:10}.mobile-menu{background:#0000;border:0;color:#475569;display:none}@media(max-width:900px){.sidebar{width:210px}.stat-grid{grid-template-columns:repeat(2,1fr)}.circulation-grid,.member-layout,.section-row{grid-template-columns:1fr}.welcome-banner{padding:28px}.banner-art{display:none}}@media(max-width:640px){.login-shell{grid-template-columns:1fr}.login-visual{min-height:330px;padding:35px 8%}.login-visual .overline{margin-top:30px}.login-visual h1{font-size:40px}.login-address{grid-gap:4px;display:grid;gap:4px;margin-top:30px}.login-panel{padding:40px 0}.sidebar{height:100vh;left:-220px;position:fixed;z-index:3}.content{width:100%}.topbar{padding:0 18px}.mobile-menu{display:block}.crumb{font-size:12px}.user-chip>div:last-child{display:none}.main-area{padding:25px 18px}.page-heading{align-items:start;gap:14px}.page-heading h2{font-size:25px}.page-heading>.primary{font-size:0;padding:11px}.page-heading>.primary svg{margin:0}.welcome-banner h1{font-size:25px}.stat-grid{gap:9px}.stat-card{padding:13px}.stat-card strong{font-size:23px}.toolbar{align-items:flex-end;gap:10px}.searchbox{flex:1 1;width:auto}.toolbar>.primary{font-size:0;padding:12px}.toolbar>.primary svg{margin:0}.panel{padding:16px}.login-panel-inner{width:84%}.login-copy{font-size:13px}.report-summary{gap:8px}.report-summary>div{padding:12px}.report-summary b{font-size:22px}}.photo-actions small.photo-info{align-items:center;color:#047857;display:inline-flex;font-weight:600;gap:4px}.photo-actions small.photo-err{color:#dc2626;font-weight:600}.photo-actions .secondary:disabled{cursor:wait;opacity:.7}.spin{animation:photoSpin .9s linear infinite}@keyframes photoSpin{to{transform:rotate(1turn)}}.photo-preview.card-ratio{height:77px;width:66px}.photo-btn-row{display:flex;flex-wrap:wrap;gap:6px}.crop-backdrop{background:#0f172ab8;display:grid;inset:0;padding:16px;place-items:center;position:fixed;z-index:60}.crop-modal{background:#fff;border-radius:14px;box-shadow:0 30px 80px -20px #0f172a99;display:flex;flex-direction:column;max-height:96vh;overflow:auto;width:min(520px,100%)}.crop-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;padding:18px 20px 12px}.crop-head h3{color:#0f172a;font-size:18px}.crop-head p{color:#64748b;font-size:12.5px;margin-top:3px}.crop-stage{background:#0f172a;height:min(58vh,420px);position:relative;touch-action:none}.crop-area-face{border:2px solid #fff!important;box-shadow:0 0 0 9999em #0f172a9e!important}.crop-area-face:after{border:2px dashed #fffffff2;border-radius:50%;box-shadow:0 0 0 1px #0f172a59,inset 0 0 0 1px #0f172a59;height:52%;left:22%;right:22%;top:12%}.crop-area-face:after,.crop-area-face:before{content:"";pointer-events:none;position:absolute}.crop-area-face:before{border:2px dashed #ffffff8c;border-bottom:0;border-radius:50% 50% 0 0/100% 100% 0 0;bottom:-2%;height:24%;left:8%;right:8%;z-index:1}.crop-controls{grid-gap:12px;display:grid;gap:12px;padding:14px 20px 4px}.crop-zoom{align-items:center;display:flex;gap:10px}.crop-zoom input[type=range]{accent-color:#7c3aed;flex:1 1;height:28px}.crop-tools{display:flex;flex-wrap:wrap;gap:8px}.crop-tools .secondary{align-items:center;display:inline-flex;font-size:12.5px;gap:6px;padding:8px 11px}.crop-hint{color:#64748b;font-size:11.5px;margin:0}.crop-actions{border-top:1px solid #f1f5f9;display:flex;gap:10px;justify-content:flex-end;margin-top:8px;padding:14px 20px 18px}.crop-actions .primary,.crop-actions .secondary{align-items:center;display:inline-flex;gap:7px;min-height:42px;padding:0 18px}@media(max-width:560px){.crop-backdrop{padding:0;place-items:stretch}.crop-modal{border-radius:0;height:100%;max-height:100vh;width:100%}.crop-stage{flex:1 1;height:auto;min-height:300px}.crop-tools .secondary{flex:1 1;justify-content:center}.crop-actions{background:#fff;bottom:0;position:sticky}.crop-actions button{flex:1 1;justify-content:center}}.photo-switch-btn{align-items:center;display:inline-flex;gap:7px}.photo-switch-btn .dot{background:#94a3b8;border-radius:50%;flex:none;height:8px;width:8px}.photo-switch-btn.on .dot{background:#10b981;box-shadow:0 0 0 3px #d1fae5}.photo-switch-btn.off .dot{background:#ef4444;box-shadow:0 0 0 3px #fee2e2}.photo-switch-btn b{font-weight:700}.photo-switch-btn.on b{color:#047857}.photo-switch-btn.off b{color:#b91c1c}.photo-switch{grid-gap:16px;display:grid;gap:16px}.photo-switch-main{align-items:center;border:1px solid;border-radius:12px;display:flex;gap:14px;justify-content:space-between;padding:16px}.photo-switch-main.on{background:#ecfdf5;border-color:#a7f3d0}.photo-switch-main.off{background:#fef2f2;border-color:#fecaca}.photo-switch-main b{color:#0f172a;display:block;font-size:15px}.photo-switch-main small{color:#475569;display:block;font-size:12px;margin-top:3px}.switch{background:#cbd5e1;border:0;border-radius:999px;cursor:pointer;flex:none;height:30px;position:relative;transition:background .2s;width:54px}.switch span{background:#fff;border-radius:50%;box-shadow:0 2px 6px #0f172a40;height:24px;left:3px;position:absolute;top:3px;transition:transform .2s;width:24px}.switch.on{background:#10b981}.switch.on span{transform:translateX(24px)}.switch:disabled{cursor:wait;opacity:.6}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:-4px}.chip{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#334155;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:6px 11px}.chip:hover{background:#faf8ff;border-color:#ddd6fe;color:#6d28d9}.check-row{align-items:flex-start;cursor:pointer;display:flex!important;flex-direction:row!important;gap:10px}.check-row input{accent-color:#7c3aed;flex:none;height:18px;margin-top:2px;width:18px}.check-row b{color:#0f172a;display:block;font-size:13px}.check-row small{color:#64748b;display:block;font-size:11.5px;font-weight:400;margin-top:2px}.photo-locked{align-items:flex-start;background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;color:#9a3412;font-size:12.5px;margin-bottom:12px;padding:12px 14px}.photo-locked b{color:#7c2d12;display:block;font-size:13.5px}.reserve-btn.locked{background:#f1f5f9!important;border-color:#e2e8f0!important;color:#64748b!important;cursor:not-allowed}.scan-corners{pointer-events:none!important}.app-frame[data-user-role=siswa] [data-testid=add-book-button],.app-frame[data-user-role=siswa] [data-testid=add-member-button]{display:none!important}@media(max-width:640px){.sidebar{transition:left .2s}.sidebar.mobile-open{left:0}}.student-hero{flex-wrap:wrap}.student-profile{align-items:center;display:flex;flex-direction:column;flex-shrink:0;gap:10px}.student-profile-avatar{align-items:center;background:#ffffff24;border:2px solid #ffffff59;border-radius:20px;color:#fff;display:flex;height:92px;justify-content:center;overflow:hidden;width:92px}.student-profile-avatar img{height:100%;object-fit:cover;width:100%}.data-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.data-reset-zone{border-top:1px dashed #e2e8f0;display:flex;flex-direction:column;gap:10px;padding-top:14px}.reset-books-check{align-items:center;color:#334155;display:flex;font-size:14px;gap:8px}.reset-books-check input{width:auto}.danger-btn{align-items:center;align-self:flex-start;background:#dc2626;border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-weight:600;gap:7px;padding:9px 16px}.danger-btn:hover{background:#b91c1c}.danger-btn:disabled{cursor:not-allowed;opacity:.6}.reset-warn{align-items:center;color:#b45309;display:flex;gap:6px;margin:0}.photo-member-select{color:#334155;display:flex;flex-direction:column;font-size:13px;font-weight:600;gap:6px;margin-bottom:12px}.photo-member-select select{background:#fff;border:1px solid #cbd5e1;border-radius:10px;font-size:14px;font-weight:500;padding:10px 12px}.photo-card-preview{align-items:center;display:flex;flex-direction:column;gap:8px;margin-top:14px}.photo-card-preview .eyebrow{align-self:flex-start}.student-identity{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 2px #0f172a0a;display:flex;flex-wrap:wrap;gap:12px;margin:16px 0 4px;padding:12px 16px}.student-identity .identity-label{color:#0f172a;font-size:14px;font-weight:700}.student-identity select{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;color:#0f172a;font-size:14px;font-weight:600;min-width:220px;padding:9px 12px}.student-identity .identity-current{color:#0d9488;font-size:14px;font-weight:600}.student-identity .identity-hint{color:#b45309;font-size:13px}.identity-combo{min-width:260px;position:relative}.identity-combo input{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;color:#0f172a;font-size:14px;font-weight:600;padding:9px 32px 9px 12px;width:100%}.identity-combo input:focus{background:#fff;border-color:#0d9488;outline:none}.identity-clear{align-items:center;background:#e2e8f0;border:none;border-radius:50%;color:#334155;cursor:pointer;display:flex;font-size:15px;height:20px;justify-content:center;line-height:1;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px}.identity-clear:hover{background:#cbd5e1}.identity-suggest{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 10px 30px #0f172a24;left:0;max-height:260px;overflow-y:auto;padding:6px;position:absolute;right:0;top:calc(100% + 4px);z-index:40}.identity-suggest-item{background:#0000;border:none;border-radius:8px;color:#0f172a;cursor:pointer;display:block;font-size:14px;padding:9px 10px;text-align:left;width:100%}.identity-suggest-item:hover{background:#f0fdfa}.identity-suggest-item small{color:#64748b;font-weight:500}.identity-empty{color:#94a3b8;font-size:13px;padding:10px}.photo-member-select .member-results{margin-top:4px;max-height:none;position:static}.photo-member-select .member-search{font-weight:500}.searchbox input,.searchbox input:focus,.searchbox input:focus-visible,html[data-theme=dark] .searchbox input,html[data-theme=dark] .searchbox input:focus{background:#0000!important;border:0!important;box-shadow:none!important;outline:none!important}.book-thumb{background:#ede9fe;color:#7c3aed;overflow:hidden}.book-thumb img{height:100%;object-fit:cover;width:100%}.circulation-grid{position:relative;z-index:3}.circulation-panel{position:relative;z-index:2}.id-card,.swatch{--c1:#0f2745;--c2:#075985;--acc:#7dd3fc;--txt:#fff;--sub:#dbeafe;--line:#fff3;--photo:#dbeafe;--photo-ink:#0369a1}.id-card{background:linear-gradient(130deg,var(--c1),var(--c2));color:var(--txt);overflow:hidden;position:relative}.id-card:before{background:var(--acc);border-radius:50%;content:"";height:220px;opacity:.12;pointer-events:none;position:absolute;right:-60px;top:-60px;width:220px}.theme-emerald{--c1:#064e3b;--c2:#047857;--acc:#6ee7b7;--sub:#d1fae5;--photo:#d1fae5;--photo-ink:#047857}.theme-maroon{--c1:#4c0519;--c2:#9f1239;--acc:#fda4af;--sub:#ffe4e6;--photo:#ffe4e6;--photo-ink:#9f1239}.theme-sunset{--c1:#7c2d12;--c2:#ea580c;--acc:#fed7aa;--sub:#ffedd5;--photo:#ffedd5;--photo-ink:#c2410c}.theme-midnight{--c1:#0a0a0a;--c2:#262626;--acc:#fbbf24;--sub:#e5e5e5;--line:#fbbf2444;--photo:#fef3c7;--photo-ink:#92400e}.theme-light{--c1:#fff;--c2:#f1f5f9;--acc:#0284c7;--txt:#0f172a;--sub:#475569;--line:#cbd5e1;--photo:#e0f2fe;--photo-ink:#0369a1}.theme-book{--c1:#3a2416;--c2:#7a4a24;--acc:#e8c48a;--sub:#f2e3cc;--line:#e8c48a55;--photo:#f2e3cc;--photo-ink:#7a4a24}.id-card.theme-light{border:2px solid #0284c7}.id-card.theme-book{border:2px solid #e8c48a;box-shadow:0 16px 28px #3a241633}.id-card{font-family:Outfit,Inter,system-ui,sans-serif}.id-card b,.id-card h3,.id-card p,.id-card small,.id-card span,.id-card strong{font-family:inherit}.id-card.font-klasik{font-family:Georgia,Times New Roman,serif}.id-card.font-elegan{font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif}.id-card.font-mono{font-family:Courier New,ui-monospace,monospace}.id-card.logo-kanan .card-logos{order:4}.id-card.logo-tengah .id-card-top{flex-wrap:wrap;justify-content:center;text-align:center}.id-card.logo-tengah .card-school{flex:0 1 auto}.id-card.photo-kiri .id-card-body{flex-direction:row}.id-card.photo-kanan .id-card-body{flex-direction:row-reverse}.id-card.layout-portrait .id-card-body{flex-direction:column}.id-card.size-kecil .card-identity h3{font-size:18px}.id-card.size-kecil .card-identity p,.id-card.size-kecil .card-school b{font-size:10px}.id-card.size-kecil .card-identity span{font-size:8px}.id-card.size-besar .card-identity h3{font-size:28px}.id-card.size-besar .card-identity p,.id-card.size-besar .card-school b{font-size:13px}.id-card.size-besar .card-identity span{font-size:10px}.id-card .id-card-foot,.id-card .id-card-top{border-color:var(--line)}.id-card .id-card-body span,.id-card .id-card-foot,.id-card .id-card-top small{color:var(--acc)}.id-card .id-card-body p,.id-card .id-card-foot span{color:var(--sub)}.id-card .id-card-foot b,.id-card .id-card-top b,.id-card h3{color:var(--txt)}.id-card .photo{background:var(--photo);color:var(--photo-ink);overflow:hidden}.id-card .photo img{display:block;height:100%;max-height:100%;object-fit:cover;width:100%}.card-logos{align-items:center;display:flex;gap:6px}.card-logo{background:#fff;border-radius:50%;flex-shrink:0;height:38px;object-fit:contain;padding:2px;width:38px}.card-school{flex:1 1;min-width:0}.id-qr-wrap{background:#fff;border-radius:6px;display:grid;flex-shrink:0;padding:4px;place-items:center}.id-qr{display:block;height:62px;width:62px}.card-identity{flex:1 1;min-width:0}.card-identity h3{word-break:break-word}.layout-modern .id-card-body{flex-direction:row-reverse;justify-content:space-between}.layout-modern .id-card-body .photo{height:98px;width:84px}.layout-modern .id-qr{height:76px;width:76px}.layout-portrait{text-align:center;width:min(100%,320px)}.layout-portrait .id-card-body,.layout-portrait .id-card-foot,.layout-portrait .id-card-top{align-items:center;flex-direction:column;gap:10px}.layout-portrait .card-logos{justify-content:center}.layout-portrait .card-logo{height:46px;width:46px}.layout-portrait .photo{flex-shrink:0;font-size:40px;height:120px;width:104px}.layout-portrait .card-identity{width:100%}.layout-portrait .card-identity span{display:block;margin-top:4px}.layout-portrait .id-qr{height:96px;width:96px}.layout-portrait .id-card-foot{gap:4px;padding-top:12px}.layout-portrait .id-card-body{padding:18px 0}.designer{grid-gap:26px;align-items:start;display:grid;gap:26px;grid-template-columns:1fr 1fr}.designer-preview{position:sticky;top:0}.designer-controls{grid-gap:18px;display:grid;gap:18px}.control-group{grid-gap:9px;display:grid;gap:9px}.control-label{color:#334155;font-size:12px;font-weight:700}.swatches{display:flex;flex-wrap:wrap;gap:9px}.swatch{background:linear-gradient(130deg,var(--c1),var(--c2));border:3px solid #0000;border-radius:50%;color:#fff;cursor:pointer;display:grid;height:38px;place-items:center;transition:transform .15s,border-color .15s;width:38px}.swatch.theme-light{border-color:#cbd5e1;color:#0284c7}.swatch:hover{transform:scale(1.08)}.swatch.active{border-color:#0284c7;box-shadow:0 0 0 3px #bae6fd}.layout-options{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.layout-option{grid-gap:3px;background:#fff;border:1px solid #cbd5e1;border-radius:8px;cursor:pointer;display:grid;gap:3px;padding:10px 8px;text-align:left;transition:border-color .15s,background .15s}.layout-option b{color:#0f172a;font-size:12px}.layout-option small{color:#64748b;font-size:10px}.layout-option.active{background:#eff6ff;border-color:#0284c7}.pill-options{display:flex;flex-wrap:wrap;gap:8px}.pill-option{background:#fff;border:1px solid #cbd5e1;border-radius:20px;color:#475569;cursor:pointer;font-size:12px;font-weight:700;padding:8px 15px;transition:border-color .15s,background .15s,color .15s}.pill-option:hover{border-color:#94a3b8}.pill-option.active{background:#eff6ff;border-color:#0284c7;color:#0369a1}.pill-option.font-prev-klasik{font-family:Georgia,Times New Roman,serif}.pill-option.font-prev-elegan{font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif}.pill-option.font-prev-mono{font-family:Courier New,ui-monospace,monospace}.spacing-val{color:#0284c7;font-size:11px;margin-left:6px}.range-input{appearance:none;background:#e2e8f0;border-radius:4px;cursor:pointer;height:6px;outline:none;padding:0;width:100%}.range-input::-webkit-slider-thumb{appearance:none;background:#0284c7;border-radius:50%;box-shadow:0 2px 5px #0284c755;cursor:pointer;height:18px;width:18px}.range-input::-moz-range-thumb{background:#0284c7;border:0;border-radius:50%;cursor:pointer;height:18px;width:18px}.toggles{grid-gap:8px;display:grid;gap:8px}.toggle{align-items:center;color:#334155;cursor:pointer;display:flex;font-weight:600;gap:9px}.toggle input{accent-color:#0284c7;height:16px;width:16px}.photo-box.compact{padding:8px}.photo-box.compact .photo-preview{height:52px;width:52px}.photo-box.compact .photo-preview img{object-fit:contain}.modal.wide{width:min(900px,100%)}.form-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.card-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:17px}.card-actions .secondary{margin-top:0}.member-detail{grid-gap:18px;display:grid;gap:18px}.history-panel{width:100%}.history-row{align-items:center;border-top:1px solid #f1f5f9;display:flex;gap:12px;padding:12px 0}.history-row>div:nth-child(2){flex:1 1;min-width:0}.history-row b,.history-row span:not(.status){display:block}.history-row b{font-size:13px}.history-row>div span{color:#64748b;font-size:11px;margin-top:3px}.row-actions{display:flex;gap:4px;justify-content:flex-end}.warn-icon{background:#0000;border:0;border-radius:6px;color:#94a3b8;cursor:pointer;padding:8px}.warn-icon:hover{background:#fffbeb;color:#d97706}.ok-icon{background:#f0fdf4;border:0;border-radius:6px;color:#16a34a;cursor:pointer;padding:8px}.ok-icon:hover{background:#dcfce7}.toolbar-buttons{display:flex;gap:9px}.login-logos img,.side-brand .logo-img{background:#fff;border-radius:50%;height:40px;object-fit:contain;padding:2px;width:40px}.login-logos{align-items:center;display:flex;gap:12px}.login-logos img{box-shadow:0 10px 24px #0f274566;height:64px;padding:4px;width:64px}.print-header{display:none}.status.ditemukan{background:#dcfce7;color:#15803d}@media print{.print-header{align-items:center;border-bottom:2px solid #0f2745;display:flex;gap:14px;margin-bottom:14px;padding-bottom:14px}.print-header img{height:56px;object-fit:contain;width:56px}.print-header b{display:block;font-size:16px}.print-header small{color:#475569}.card-actions,.history-panel,.member-list,.report-summary{display:none!important}.id-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@media(max-width:760px){.designer{grid-template-columns:1fr}.designer-preview{position:static}.form-grid,.layout-options{grid-template-columns:1fr}.toolbar-buttons .primary,.toolbar-buttons .secondary{font-size:0;padding:12px}.toolbar-buttons svg{margin:0}}.card-identity .card-field{align-items:baseline;display:flex;gap:4px;margin-top:3px}.card-identity .card-field i{font-style:normal;min-width:3.2em;opacity:.8}.card-identity .card-field em{font-style:normal;margin-right:3px;opacity:.8}.card-identity h3.long-name{zoom:.8;line-height:1.15}@media print{.id-card .card-field[data-testid=card-class]{display:none!important}}.id-card .id-card-top .card-school,.id-card .id-card-top .card-school b,.id-card .id-card-top .card-school small{text-align:center}.id-card.fs-on .id-card-top .card-school b{font-size:11px;font-size:calc(11px*var(--k-school,1))}.id-card.fs-on.size-kecil .id-card-top .card-school b{font-size:10px;font-size:calc(10px*var(--k-school,1))}.id-card.fs-on.size-besar .id-card-top .card-school b{font-size:13px;font-size:calc(13px*var(--k-school,1))}.id-card.fs-on .id-card-top .card-school small{font-size:8px;font-size:calc(8px*var(--k-title,1))}.id-card.fs-on .id-card-body .card-identity>span{font-size:9px;font-size:calc(9px*var(--k-owner,1))}.id-card.fs-on.size-kecil .id-card-body .card-identity>span{font-size:8px;font-size:calc(8px*var(--k-owner,1))}.id-card.fs-on.size-besar .id-card-body .card-identity>span{font-size:10px;font-size:calc(10px*var(--k-owner,1))}.id-card.fs-on .id-card-body .card-identity h3{font-size:22px;font-size:calc(22px*var(--k-name,1))}.id-card.fs-on.size-kecil .id-card-body .card-identity h3{font-size:18px;font-size:calc(18px*var(--k-name,1))}.id-card.fs-on.size-besar .id-card-body .card-identity h3{font-size:28px;font-size:calc(28px*var(--k-name,1))}.id-card.fs-on .id-card-body .card-identity p{font-size:11px;font-size:calc(11px*var(--k-fields,1))}.id-card.fs-on.size-kecil .id-card-body .card-identity p{font-size:10px;font-size:calc(10px*var(--k-fields,1))}.id-card.fs-on.size-besar .id-card-body .card-identity p{font-size:13px;font-size:calc(13px*var(--k-fields,1))}.id-card.fs-on .id-card-foot span{font-size:9px;font-size:calc(9px*var(--k-address,1))}.id-card.fs-on .id-card-foot b{font-size:10px;font-size:calc(10px*var(--k-code,1))}.id-card-back.fs-on .back-head b{font-size:11px;font-size:calc(11px*var(--k-btitle,1))}.id-card-back.fs-on .back-rules{font-size:10px;font-size:calc(10px*var(--k-rules,1))}.id-card-back.fs-on.size-kecil .back-rules{font-size:9px;font-size:calc(9px*var(--k-rules,1))}.id-card-back.fs-on.size-besar .back-rules{font-size:11px;font-size:calc(11px*var(--k-rules,1))}.id-card-back.fs-on .back-web{font-size:10px;font-size:calc(10px*var(--k-web,1))}.ct-group{background:#fbfaff;border:1px solid #e9e3fb;border-radius:12px;gap:10px;padding:14px}.ct-title{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.ct-reset{align-items:center;background:#fff;border:1px solid #ddd6fe;border-radius:20px;color:#6d28d9;cursor:pointer;display:inline-flex;font-size:11px;font-weight:700;gap:5px;padding:5px 11px}.ct-reset:disabled{cursor:default;opacity:.45}.ct-side{color:#7c3aed;font-size:10px;font-weight:800;letter-spacing:.12em;margin:6px 0 0;text-transform:uppercase}.ct-row{grid-gap:7px;background:#fff;border:1px solid #eee9fb;border-radius:10px;display:grid;gap:7px;padding:10px 12px}.ct-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between}.ct-head b{color:#1e1b4b;font-size:12px}.ct-head small{font-size:10px}.ct-row input:not([type=range]){width:100%}.ct-pair{grid-gap:8px;grid-template-columns:1fr 1fr}.ct-pair,.ct-size{display:grid;gap:8px}.ct-size{grid-gap:8px;align-items:center;grid-template-columns:auto auto 1fr auto 48px}.ct-size-label{color:#64748b;font-size:11px;font-weight:600}.ct-step{background:#f5f3ff;border:1px solid #ddd6fe;border-radius:8px;color:#6d28d9;cursor:pointer;display:grid;height:28px;padding:0;place-items:center;width:28px}.ct-step:hover{background:#ede9fe}.ct-val{font-feature-settings:"tnum";color:#64748b;font-size:12px;font-variant-numeric:tabular-nums;font-weight:700;text-align:right}.ct-val.changed{color:#6d28d9}html[data-theme=dark] .ct-group{background:#1b1638;border-color:#2f2858}html[data-theme=dark] .ct-row{background:#221c45;border-color:#342c63}html[data-theme=dark] .ct-head b{color:#ede9fe}html[data-theme=dark] .ct-reset{background:#221c45;border-color:#4c3f8f;color:#c4b5fd}html[data-theme=dark] .ct-step{background:#2a2350;border-color:#4c3f8f;color:#c4b5fd}html[data-theme=dark] .ct-side{color:#c4b5fd}html[data-theme=dark] .ct-size-label,html[data-theme=dark] .ct-val{color:#a5a0c8}html[data-theme=dark] .ct-val.changed{color:#c4b5fd}.ct-size .range-input{background:#ede9fe}.ct-size .range-input::-webkit-slider-thumb{background:#7c3aed;box-shadow:0 2px 5px #7c3aed55}.ct-size .range-input::-moz-range-thumb{background:#7c3aed}.lost-banner{align-items:center;border-radius:10px;display:flex;gap:12px;padding:12px 14px}.lost-banner.warn{background:#fffbeb;border:1px solid #fde68a;color:#b45309}.lost-banner.ok{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d}.lost-banner b,.lost-banner small{display:block}.lost-banner b{color:#0f172a;font-size:14px}.lost-banner small{font-size:11px;margin-top:2px}textarea{border:1px solid #cbd5e1;border-radius:8px;color:#0f172a;font:inherit;font-size:13px;padding:10px 13px;resize:vertical}.warn-btn{background:#d97706}.warn-btn:hover{background:#b45309;box-shadow:0 8px 16px #d9770633}.bulk-print{background:#e2e8f0;display:flex;flex-direction:column;inset:0;overflow:auto;position:fixed;z-index:20}.bulk-toolbar{align-items:center;background:#fff;border-bottom:1px solid #cbd5e1;display:flex;gap:16px;justify-content:space-between;padding:16px 4%;position:sticky;top:0;z-index:2}.bulk-toolbar h3{font-size:16px}.bulk-actions{align-items:center;display:flex;gap:12px}.bulk-actions label{align-items:center;flex-direction:row;gap:8px}.bulk-actions select{height:40px}.print-sheet{grid-gap:1.5mm 3mm;align-content:start;background:#fff;box-shadow:0 10px 30px #0f172a22;display:grid;gap:1.5mm 3mm;grid-auto-rows:56mm;grid-template-columns:repeat(2,86mm);justify-content:center;margin:20px auto;min-height:297mm;padding:6mm;width:210mm}.print-sheet.portrait{gap:4mm;grid-auto-rows:86mm;grid-template-columns:repeat(3,56mm)}.print-slot{break-inside:avoid;height:56mm;overflow:hidden;page-break-inside:avoid;width:86mm}.print-sheet.portrait .print-slot{height:86mm;width:56mm}.print-slot .id-card{zoom:.6916;border-radius:14px;box-shadow:none;display:flex;flex-direction:column;height:306px;justify-content:space-between;margin:0;width:470px}.print-slot .id-card.layout-portrait{zoom:.6614;height:491px;width:320px}.print-slot .id-card-body{flex:1 1}.print-slot .layout-portrait .id-card-body{justify-content:center}@media print{@page{size:A4;margin:0}body.bulk-mode .toast,body.bulk-mode>:not(.bulk-print){display:none!important}.bulk-print{background:#fff;display:block;overflow:visible;position:static}.bulk-toolbar{display:none!important}.print-sheet{box-shadow:none;margin:0;min-height:0;padding:5mm 6mm;row-gap:1.5mm;width:auto}.print-slot .id-card{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.download-row{display:flex;gap:8px}.catalog-shelf{align-items:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;color:#047857;display:flex;font-size:11.5px;font-weight:700;gap:6px;margin-top:6px;padding:7px 9px}.catalog-shelf button{background:#047857;border:0;border-radius:6px;color:#fff;cursor:pointer;flex-shrink:0;font-size:10px;font-weight:700;margin-left:auto;padding:4px 8px;white-space:nowrap}.shelf-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.shelf-chips button{background:#fff;border:1px solid #cbd5e1;border-radius:20px;color:#334155;cursor:pointer;font-size:12px;font-weight:700;padding:7px 13px;transition:background .15s,color .15s}.shelf-chips button.active{background:#047857;border-color:#047857}.shelf-card.highlight{animation:shelfPulse 1.2s ease 2;outline:3px solid #047857;outline-offset:3px}@keyframes shelfPulse{0%,to{box-shadow:0 0 0 0 #04785700}50%{box-shadow:0 0 0 10px #04785733}}.soft-badge.warn{background:#fffbeb;color:#b45309}.activity-icon.overdue{background:#fee2e2;color:#dc2626}.overdue-row,.queue-row,.stock-row{align-items:center;border-top:1px solid #f1f5f9;display:flex;gap:12px;padding:11px 0}.overdue-row>div:nth-child(2),.queue-row>div:nth-child(2),.stock-row>div:nth-child(2){flex:1 1;min-width:0}.overdue-row b,.overdue-row span:not(.days-pill),.queue-row b,.queue-row>div span,.stock-row b,.stock-row>div span{display:block}.overdue-row b,.queue-row b,.stock-row b{font-size:13px}.overdue-row>div span,.queue-row>div span,.stock-row>div span{color:#64748b;font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-row b small{color:#64748b;font-size:11px;font-weight:600}.days-pill{background:#fee2e2;border-radius:20px;padding:5px 9px}.queue-actions{display:flex;gap:4px}.queue-done{border-top:1px dashed #e2e8f0;margin-top:14px;padding-top:10px}.muted-row{opacity:.75;padding:8px 0}.muted-row>div:first-child{flex:1 1}.overview-row{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1fr 1fr;margin-top:18px}.overdue-panel .text-button{margin-top:12px}.stocktake{padding:25px}.stock-head{grid-gap:18px;align-items:end;display:grid;gap:18px;grid-template-columns:1fr 1fr;margin-bottom:16px}.stock-progress{grid-gap:8px;display:grid;gap:8px}.stock-numbers b{font-size:22px;margin-right:8px}.stock-numbers span{color:#64748b;font-size:12px}.stock-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1.3fr .7fr;margin-top:18px}.stock-row.ok b{color:#15803d}.stock-row.warn{border-top-color:#fde68a}.tick{border:2px solid #cbd5e1;border-radius:50%;color:#fff;display:grid;flex-shrink:0;height:22px;place-items:center;width:22px}.tick.on{background:#16a34a;border-color:#16a34a}.tick.warn{background:#f59e0b;border-color:#f59e0b}.stock-summary{align-items:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;color:#15803d;display:flex;gap:10px;margin-top:14px;padding:12px}.stock-summary b,.stock-summary span{display:block}.stock-summary b{font-size:13px}.stock-summary span{font-size:11px;margin-top:2px}.stock-foot{border-top:1px solid #e2e8f0;display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:16px}.stocktake .manual-row{margin-top:12px}.stocktake .scan-buttons{display:flex;gap:10px}.shelves-toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:18px}.stock-history{display:flex;flex-wrap:wrap;gap:8px}.stock-history span{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#475569;font-size:11px;padding:6px 10px}.reserve-btn{align-items:center;background:#fff;border:1px solid #047857;border-radius:8px;color:#047857;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px;justify-content:center;margin-top:8px;padding:8px;transition:background .15s,color .15s;width:100%}.reserve-btn:hover{background:#047857}.reserve-btn:disabled{cursor:default;opacity:.5}.queue-hint{color:#64748b;font-size:11px;margin-top:6px}.my-reservations{grid-gap:12px;display:grid;gap:12px}.res-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:14px;padding:16px}.res-card>div{flex:1 1}.res-card b,.res-card span:not(.status){display:block}.res-card>div span{color:#64748b;font-size:12px;margin-top:3px}.res-card .status.menunggu{background:#fef3c7;color:#a16207}.res-card .status.dipinjamkan{background:#dcfce7;color:#15803d}.res-card .status.dibatalkan,.res-card .status.ditolak{background:#fee2e2;color:#b91c1c}@media(max-width:860px){.overview-row,.stock-grid,.stock-head{grid-template-columns:1fr}}.member-row{gap:6px}.member-row,.member-row-main{align-items:center;display:flex}.member-row-main{background:#0000;border:0;cursor:pointer;flex:1 1;min-width:0;padding:0;text-align:left}.member-row-main .avatar{margin-right:10px}.member-row-main .member-row-text{flex:1 1;min-width:0}.member-row-main b,.member-row-main span{display:block}.member-row-main b{font-size:13px}.member-row-main span{color:#64748b;font-size:11px;margin-top:3px}.member-row-actions{display:flex;flex-shrink:0;gap:2px}.account-manager{grid-gap:22px;display:grid;gap:22px}.account-section-head{align-items:center;color:#0f172a;display:flex;font-size:13px;font-weight:700;gap:8px}.account-hint{color:#64748b;font-size:11px;margin:-4px 0 2px}.account-users{grid-gap:12px;border-top:1px solid #e2e8f0;display:grid;gap:12px;padding-top:18px}.account-user-row{grid-gap:9px;border:1px solid #e2e8f0;border-radius:9px;display:grid;gap:9px;padding:12px}.account-user-info b{display:block;font-size:13px}.account-user-info small{color:#64748b;display:block;font-size:11px;margin-top:2px}.account-user-action{display:flex;gap:8px}.account-user-action input{flex:1 1}.account-btn{background:#0000;border-radius:8px;color:#9fb0c5;font-weight:600;justify-content:flex-start;margin-bottom:6px;padding:12px;width:100%}.account-btn:hover{background:#4c1d95;color:#fff}.bulk-del-list{grid-gap:8px;display:grid;gap:8px;margin:6px 0;max-height:260px;overflow:auto}.bulk-del-class{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;justify-content:space-between;padding:11px 13px;text-align:left;width:100%}.bulk-del-class:hover{background:#fef2f2;border-color:#fecaca}.bulk-del-class b{display:block;font-size:13px}.bulk-del-class small{color:#64748b;font-size:11px}.bulk-del-count{background:#fee2e2;border-radius:20px;color:#b91c1c;font-size:11px;font-weight:700;padding:5px 10px;white-space:nowrap}.import-box{grid-gap:14px;display:grid;gap:14px}.import-drop{align-items:center;border:2px dashed #cbd5e1;border-radius:10px;color:#64748b;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:26px;text-align:center;transition:border-color .15s,background .15s}.import-drop:hover{background:#faf8ff;border-color:#7c3aed;color:#6d28d9}.import-drop span{font-size:12px;font-weight:600;word-break:break-all}.import-result{background:#f8fafc;border:1px solid #e2e8f0;border-radius:9px;padding:13px}.import-result b{display:block;font-size:13px}.import-result>span{color:#475569;display:block;font-size:12px;margin-top:4px}.import-result ul{margin:9px 0 0;max-height:140px;overflow:auto;padding-left:18px}.import-result li{color:#b45309;font-size:11px;margin-bottom:3px}.preset-pill{background:#faf8ff;border-color:#ddd6fe;color:#6d28d9}.failed-rows{margin-top:10px}.failed-head{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;margin-bottom:8px}.failed-head span{color:#b45309;font-size:12px;font-weight:600}.failed-head button{font-size:12px;padding:6px 10px}.failed-table-wrap{border:1px solid #e2e8f0;border-radius:8px;max-height:260px;overflow:auto}.failed-table{border-collapse:collapse;font-size:11.5px;width:100%}.failed-table th{background:#f1f5f9;font-weight:600;padding:6px 8px;position:sticky;text-align:left;top:0}.failed-table td{border-top:1px solid #eef2f7;padding:5px 8px}.failed-table td.reason{color:#b45309}.failed-hint{color:#64748b;display:block;font-size:11px;margin-top:6px}:where(html[data-theme=dark]) .failed-table-wrap{border-color:var(--line)}:where(html[data-theme=dark]) .failed-table th{background:var(--surface-2);color:var(--ink-2)}:where(html[data-theme=dark]) .failed-table td{border-color:var(--line)}:where(html[data-theme=dark]) .failed-head span,:where(html[data-theme=dark]) .failed-table td.reason{color:#fbbf24}.import-box>*,.import-result{min-width:0}.failed-rows{min-width:0}.failed-rows,.failed-table-wrap{max-width:100%}.modal:has([data-testid=member-import]){width:min(640px,100%)}@media print{.print-hide{display:none!important}}.purge-box{grid-gap:13px;display:grid;gap:13px;min-width:0}.purge-modes{background:#f1f5f9;border-radius:10px;display:flex;gap:6px;padding:4px}.purge-modes button{background:#0000;border:0;border-radius:8px;color:#64748b;cursor:pointer;flex:1 1;font-size:12px;font-weight:700;padding:9px 8px}.purge-modes button.active{background:#fff;box-shadow:0 1px 3px #0f172a18;color:#6d28d9}.purge-range{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.purge-preview{align-items:flex-start;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;color:#b91c1c;display:flex;gap:11px;padding:12px}.purge-preview.empty{background:#f8fafc;border-color:#e2e8f0;color:#64748b}.purge-preview b,.purge-preview small{display:block}.purge-preview b{font-size:14px}.purge-preview small{color:#64748b;font-size:12px;margin-top:3px}.purge-preview small.purge-protected{color:#b45309}.purge-sent{align-items:center;color:#475569;display:flex;flex-wrap:wrap;font-size:12px;gap:6px}.link-btn{background:#0000;border:0;color:#6d28d9;cursor:pointer;font-size:12px;font-weight:600;justify-self:center}.purge-col{text-align:center;width:34px}.purge-col input{accent-color:#7c3aed;cursor:pointer;height:16px;width:16px}.purge-open{color:#dc2626!important}:where(html[data-theme=dark]) .purge-modes{background:var(--surface-2)}:where(html[data-theme=dark]) .purge-modes button.active{background:var(--surface)}:where(html[data-theme=dark]) .purge-preview{background:#450a0a55;border-color:#7f1d1d}.purge-note{color:#64748b;font-size:11px;text-align:center}.purge-actions{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}.purge-actions button{width:100%}.portal-switch{color:#64748b;font-size:12px;margin-top:18px}.portal-switch a{font-weight:700;text-decoration:none}.portal-switch a:hover{text-decoration:underline}.login-shell.student .login-visual{background:linear-gradient(135deg,#064e3bf0,#059669d1),url(https://images.unsplash.com/photo-1521587760476-6c12a4b040da?auto=format&fit=crop&w=1400&q=80) 50%/cover}.login-shell.student .login-visual h1 em{color:#ddd6fe}.login-shell.student .login-address,.login-shell.student .login-copy,.login-shell.student .overline{color:#ede9fe}.chooser{align-items:center;background:#2e1065 radial-gradient(circle at 20% 10%,#4c1d95 0,#0000 45%);color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:60px 6%;text-align:center}.chooser-head img{background:#fff;border-radius:50%;display:inline-block;height:72px;margin:0 6px 22px;object-fit:contain;padding:4px;width:72px}.chooser-head .overline{color:#c4b5fd}.chooser-head h1{font-size:clamp(36px,5vw,60px);line-height:1.05}.chooser-head h1 em{color:#c4b5fd;font-style:normal}.chooser-head .login-copy{margin:18px auto 0}.chooser-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,330px));justify-content:center;margin-top:44px;width:100%}.chooser-card{grid-gap:8px;background:#fff;border-radius:14px;color:#0f172a;display:grid;gap:8px;padding:28px 26px;position:relative;text-align:left;text-decoration:none;transition:transform .2s,box-shadow .2s}.chooser-card:hover{box-shadow:0 20px 40px #00000055;transform:translateY(-4px)}.chooser-card h2{color:#7c3aed;font-family:ui-monospace,Menlo,monospace;font-size:30px}.chooser-card.student h2{color:#7c3aed}.chooser-card p:not(.eyebrow){color:#475569;font-size:13px;line-height:1.6}.chooser-card b{align-items:center;color:#7c3aed;display:inline-flex;font-size:13px;gap:4px;margin-top:8px}.chooser-card.student b{color:#7c3aed}.chooser-icon{background:#ede9fe;border-radius:12px;color:#7c3aed;display:grid;height:48px;margin-bottom:8px;place-items:center;width:48px}.chooser-card.student .chooser-icon{background:#ede9fe;color:#7c3aed}.chooser-foot{color:#7890ab;font-size:11px;letter-spacing:.05em;margin-top:40px}.student-shell{background:#f8fafc;display:flex;flex-direction:column;min-height:100vh}.student-top{border-bottom:1px solid #e2e8f0;gap:20px;height:72px;justify-content:space-between;padding:0 4%;position:sticky;top:0;z-index:4}.student-brand,.student-top{align-items:center;display:flex}.student-brand{gap:10px}.student-brand img,.student-user img{border-radius:50%;height:40px;object-fit:contain;width:40px}.student-brand strong{display:block;font-size:13px}.student-brand small{color:#64748b;font-size:10px;letter-spacing:.06em}.student-nav{background:#f1f5f9;border-radius:10px;display:flex;gap:4px;padding:4px}.student-nav button{align-items:center;background:#0000;border:0;border-radius:8px;color:#64748b;display:inline-flex;font-size:12px;font-weight:700;gap:7px;padding:9px 14px;transition:background .15s,color .15s}.student-nav button.active{background:#fff;box-shadow:0 1px 3px #0f172a18;color:#6d28d9}.student-user{align-items:center;display:flex;gap:10px}.student-user b{display:block;font-size:12px}.student-user small{color:#64748b;font-size:10px}.student-main{flex:1 1;margin:0 auto;max-width:1200px;padding:34px 4% 60px;width:100%}.student-hero{align-items:center;background:linear-gradient(115deg,#4c1d95,#7c3aed);border-radius:14px;color:#fff;display:flex;gap:24px;justify-content:space-between;margin-bottom:26px;padding:34px 38px}.student-hero h1{font-size:clamp(24px,3vw,34px);line-height:1.1}.student-hero h1 em{color:#ddd6fe;font-style:normal}.student-hero p:not(.eyebrow){color:#ede9fe;font-size:14px;line-height:1.6;margin-top:12px;max-width:560px}.student-hero .eyebrow.light{color:#ddd6fe}.student-hero-badge{align-items:center;background:#ffffff22;border:1px solid #ffffff44;border-radius:12px;display:flex;font-weight:700;gap:10px;padding:14px 18px;white-space:nowrap}.catalog-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.catalog-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden;transition:transform .2s,box-shadow .2s}.catalog-card:hover{box-shadow:0 14px 28px #0f172a14}.catalog-cover{background:#ede9fe;color:#7c3aed;display:grid;height:180px;place-items:center}.catalog-cover img{height:100%;object-fit:cover;width:100%}.catalog-info{grid-gap:5px;display:grid;gap:5px;padding:14px;position:relative}.catalog-info>b{font-size:15px;line-height:1.3}.catalog-info small{color:#475569;font-size:12.5px}.catalog-card.has-cover{color:#fff;position:relative}.catalog-card.has-cover .catalog-cover{background:none!important;border:0;cursor:zoom-in;display:block;height:300px;padding:0;width:100%}.catalog-card.has-cover .cover-bg{filter:blur(18px) brightness(.7);height:100%;inset:0;object-fit:cover;position:absolute;transform:scale(1.15);width:100%}.catalog-card.has-cover .cover-main{display:block;height:100%;object-fit:contain;padding:12px 12px 0;position:relative;width:100%;z-index:1}.cover-zoom-hint{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f0a238c;border-radius:999px;color:#fff;display:grid;height:30px;place-items:center;position:absolute;right:10px;top:10px;width:30px;z-index:2}.catalog-card.has-cover .catalog-info{background:none;text-shadow:0 1px 2px #0009;z-index:1}.catalog-card.has-cover .catalog-info small,.catalog-card.has-cover .catalog-info>b,.catalog-card.has-cover .catalog-meta,.catalog-card.has-cover .catalog-stock{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f0a2373;border-radius:8px;color:#fff!important;justify-self:start;padding:3px 9px}.catalog-card.has-cover .catalog-stock b{color:#4ade80!important}.catalog-card.has-cover .catalog-shelf{background:#064e3bbf!important;border-color:#4ade8080!important;color:#bbf7d0!important}.catalog-card.has-cover .reserve-btn{background:#fffffff2!important;border-color:#fff!important;color:#5b21b6!important;text-shadow:none}.catalog-info .status{justify-self:start}.catalog-meta{align-items:center;color:#64748b;display:flex;font-size:11.5px;gap:8px;margin-top:4px}.student-card-wrap{align-items:center;display:flex;flex-direction:column}.student-foot{border-top:1px solid #e2e8f0;color:#94a3b8;display:flex;font-size:11px;justify-content:space-between;padding:16px 4%}.student-foot span{align-items:center;display:inline-flex;gap:4px}@media print{.student-foot,.student-hero,.student-top,.toolbar{display:none!important}}@media(max-width:860px){.chooser-grid{grid-template-columns:1fr}.student-top{flex-wrap:wrap;height:auto;padding:12px 4%}.student-nav{justify-content:space-between;order:3;width:100%}.student-nav button span{display:none}.student-nav button{flex:1 1;justify-content:center}.student-user div{display:none}.student-hero{align-items:flex-start;flex-direction:column;padding:24px}.student-foot{flex-direction:column;gap:6px}}.cover-zoom{align-items:center;animation:coverZoomIn .2s ease-out;background:#080614f0;display:flex;flex-direction:column;gap:14px;inset:0;justify-content:center;padding:56px 16px 24px;position:fixed;z-index:1000}.cover-zoom img{border-radius:10px;box-shadow:0 20px 60px #0009;max-height:78vh;max-width:100%;object-fit:contain}.cover-zoom-close{background:#ffffff1f;border:1px solid #ffffff40;border-radius:999px;color:#fff;cursor:pointer;display:grid;height:42px;place-items:center;position:absolute;right:14px;top:14px;width:42px}.cover-zoom-caption{grid-gap:2px;color:#fff;display:grid;gap:2px;text-align:center}.cover-zoom-caption b{font-size:16px}.cover-zoom-caption small{color:#d4d0e8;font-size:13px}@keyframes coverZoomIn{0%{opacity:0}to{opacity:1}}.visit-top{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1.6fr .7fr;margin-bottom:20px}.visit-kiosk{background:#fff}.visit-kiosk:fullscreen{overflow:auto;padding:40px}.visit-kiosk-body{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1.1fr}.visit-scan-area{grid-gap:12px;align-content:start;display:grid;gap:12px}.visit-scan-idle{align-items:center;background:#faf8ff;border:1px dashed #c4b5fd;border-radius:10px;color:#7c3aed;display:flex;flex-direction:column;gap:6px;justify-content:center;min-height:240px;padding:20px;text-align:center}.visit-scan-idle b{color:#0f172a;font-size:16px;margin-top:6px}.visit-scan-idle span{color:#64748b;font-size:12px;max-width:240px}.visit-cam{grid-gap:8px;display:grid;gap:8px}.visit-qr-reader{background:#0f172a;border-radius:10px;min-height:240px;overflow:hidden;width:100%}.visit-qr-reader video{border-radius:10px;height:auto!important;width:100%!important}.visit-scan-side{grid-gap:14px;align-content:start;display:grid;gap:14px}.visit-code-form{grid-gap:10px;align-items:end;display:grid;gap:10px;grid-template-columns:1fr auto}.visit-code-form input{font-size:15px;height:48px}.visit-code-form .primary{height:48px}.visit-result{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;color:#475569;display:flex;gap:14px;min-height:110px;padding:18px;transition:background .25s,border-color .25s}.visit-result>div{min-width:0}.visit-result small{display:block;font-size:10px;font-weight:700;letter-spacing:.12em;opacity:.85}.visit-result b{color:#0f172a;display:block;font-size:19px;line-height:1.2;margin:4px 0}.visit-result span{display:block;font-size:12px}.visit-result.idle b{font-size:14px}.visit-result.masuk{animation:visitPop .35s ease;background:#f0fdf4;border-color:#86efac;color:#15803d}.visit-result.keluar{animation:visitPop .35s ease;background:#f5f3ff;border-color:#93c5fd;color:#1d4ed8}.visit-result.sudah_keluar,.visit-result.sudah_masuk{background:#fffbeb;border-color:#fcd34d;color:#b45309}.visit-result.error{animation:visitShake .35s ease;background:#fef2f2;border-color:#fca5a5;color:#b91c1c}@keyframes visitPop{0%{opacity:.4;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes visitShake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.visit-stats{grid-gap:12px;align-content:start;display:grid;gap:12px;grid-template-columns:1fr 1fr}.visit-stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px}.visit-stat small,.visit-stat span{color:#64748b;display:block;font-size:11px}.visit-stat strong{color:#0f172a;display:block;font-family:Outfit,Inter,sans-serif;font-size:26px;margin:6px 0 2px}.visit-stat.big{background:linear-gradient(120deg,#2e1065,#6d28d9);border:0;grid-column:1/-1}.visit-stat.big small,.visit-stat.big span{color:#ddd6fe}.visit-stat.big strong{color:#fff;font-size:40px}.visit-auto{align-items:center;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;color:#b45309;cursor:pointer;display:flex;gap:10px;grid-column:1/-1;padding:13px;text-align:left}.visit-auto>div{flex:1 1}.visit-auto b{color:#92400e;display:block;font-size:13px}.visit-auto small{color:#b45309;font-size:11px}.visit-auto:hover{background:#fef3c7}.visit-list-head{flex-wrap:wrap;gap:12px}.visit-filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.visit-filters input[type=date]{height:38px}.avatar.guest{background:#fef3c7;color:#b45309}.avatar img{border-radius:50%;height:100%;object-fit:cover;width:100%}.status.keluar{background:#ede9fe;color:#6d28d9}.status.habis{background:#f1f5f9;color:#475569}.stat-grid.five{grid-template-columns:repeat(5,1fr)}.stock-cell{grid-gap:5px;display:grid;gap:5px;min-width:120px}.stock-cell b{font-size:13px}.stock-cell small{color:#94a3b8;font-size:11px}.stock-meter{background:#f1f5f9;border-radius:4px;height:5px;overflow:hidden}.stock-meter div{background:#16a34a;border-radius:4px;height:100%}.stock-meter.low div{background:#d97706}.stock-meter.empty div{background:#dc2626}.catalog-stock{color:#334155;font-size:12px;font-weight:600;margin-top:4px}.catalog-stock b{color:#15803d}.qr-label{grid-gap:8px;border:1px dashed #cbd5e1;border-radius:10px;display:grid;gap:8px;justify-items:center;padding:18px;text-align:center}.qr-label img{height:170px;width:170px}.qr-label b{font-size:15px}.qr-label small{color:#64748b;font-size:11px}.stock-input-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:auto 1fr auto}.stock-input-row input{font-size:18px;font-weight:700;text-align:center}.stock-input-row button{height:44px;padding:0;width:44px}.stats-head{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:18px}.stats-kpis{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin-bottom:18px}.kpi{grid-gap:3px;background:#fff;border:1px solid var(--line);border-radius:10px;display:grid;gap:3px;padding:17px}.kpi small{color:#64748b;font-size:11px}.kpi b{color:#0f172a;font-family:Outfit,Inter,sans-serif;font-size:26px}.kpi em{color:#94a3b8;font-size:11px;font-style:normal}.kpi-icon{border-radius:8px;display:grid;height:34px;margin-bottom:8px;place-items:center;width:34px}.kpi-icon.blue{background:#ede9fe;color:#7c3aed}.kpi-icon.green{background:#dcfce7;color:#16a34a}.kpi-icon.orange{background:#fef3c7;color:#d97706}.kpi-icon.violet{background:#ede9fe;color:#7c3aed}.stats-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1.4fr .9fr;margin-bottom:18px}.pct-list>div{grid-gap:9px;align-items:center;color:#475569;display:grid;font-size:12px;gap:9px;grid-template-columns:10px 1fr auto 34px}.pct-list i{border-radius:3px;display:block;height:10px;width:10px}.pct-list b{color:#0f172a}.pct-list small{color:#94a3b8;text-align:right}.class-bars{grid-gap:12px;display:grid;gap:12px}.class-bar{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:150px 1fr 52px}.class-bar-label b{display:block;font-size:13px}.class-bar-label span{color:#94a3b8;font-size:11px}.class-bar-track{background:#f1f5f9;border-radius:6px;height:9px;overflow:hidden}.class-bar-track div{background:#7c3aed;border-radius:6px;height:100%;transition:width .5s ease}.class-bar em{color:#0f172a;font-size:13px;font-style:normal;font-weight:700;text-align:right}.inline-pct{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:1fr 48px;min-width:160px}.inline-pct span{color:#0f172a;font-weight:700;text-align:right}.report-tabs{flex-wrap:wrap}@media(max-width:1100px){.visit-top{grid-template-columns:1fr}.visit-stats{grid-template-columns:repeat(4,1fr)}.visit-stat.big{grid-column:auto}.stat-grid.five{grid-template-columns:repeat(3,1fr)}}@media(max-width:900px){.stats-grid,.visit-kiosk-body{grid-template-columns:1fr}.stats-kpis{grid-template-columns:repeat(2,1fr)}.visit-stats{grid-template-columns:1fr 1fr}.visit-auto,.visit-stat.big{grid-column:1/-1}}@media(max-width:640px){.class-bar{grid-template-columns:100px 1fr 46px}.stat-grid.five{grid-template-columns:repeat(2,1fr)}}.shelf-admin-bar{align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;display:flex;font-size:13px;gap:12px;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.shelf-admin-bar span{color:#64748b}.shelf-head-right{align-items:center;display:flex;gap:2px}.shelf-head-right .danger-icon,.shelf-head-right .ok-icon{padding:6px}.shelf-tag.mint{background:#dcfce7;color:#15803d}.shelf-tag.amber{background:#fef3c7;color:#b45309}.shelf-tag.rose{background:#ffe4e6;color:#be123c}.shelf-tag.violet{background:#ede9fe;color:#6d28d9}button.danger{align-items:center;background:#dc2626;border:0;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-weight:600;gap:7px;justify-content:center;padding:11px 16px}button.danger:hover{background:#b91c1c}button.danger:disabled{cursor:not-allowed;opacity:.55}button.danger.full{width:100%}.leaderboard{grid-gap:18px;display:grid;gap:18px}.lb-hero{align-items:flex-end;background:linear-gradient(120deg,#2e1065,#6d28d9 60%,#b45309 140%);border-radius:14px;color:#fff;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;overflow:hidden;padding:24px 26px;position:relative}.lb-hero:after{background:radial-gradient(circle,#fbbf2459,#0000 70%);border-radius:50%;content:"";height:200px;position:absolute;right:-40px;top:-40px;width:200px}.lb-hero h2{font-family:Outfit,Inter,sans-serif;font-size:24px;line-height:1.2;margin:6px 0;max-width:560px}.lb-hero p{color:#ddd6fe;font-size:13px;margin:0}.lb-hero-actions,.lb-hero-text{position:relative;z-index:1}.lb-hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.lb-hero-actions select{background:#fff;border-radius:8px;color:#0f172a;height:40px;min-width:160px}.lb-me{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;color:#475569;display:flex;font-size:13px;gap:10px;padding:12px 16px}.lb-me.in{background:#fffbeb;border-color:#fcd34d;color:#92400e}.lb-empty{align-items:center;color:#94a3b8;display:flex;flex-direction:column;gap:6px;padding:40px;text-align:center}.lb-empty b{color:#0f172a}.lb-empty span{font-size:12px}.lb-podium{align-items:flex-end;display:flex;gap:16px;justify-content:center;padding:10px 0 0}.lb-step{align-items:center;animation:lbRise .6s ease both;display:flex;flex-direction:column;gap:4px;text-align:center;width:200px}.lb-step.silver{animation-delay:.1s}.lb-step.bronze{animation-delay:.2s}@keyframes lbRise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.lb-step b{color:#0f172a;font-size:14px;margin-top:6px}.lb-step small{color:#64748b;font-size:11px}.lb-medal{align-items:center;border-radius:20px;display:flex;font-size:12px;font-weight:800;gap:4px;margin-bottom:6px;padding:3px 10px}.lb-step.gold .lb-medal{background:#fef3c7;color:#b45309}.lb-step.silver .lb-medal{background:#f1f5f9;color:#475569}.lb-step.bronze .lb-medal{background:#ffedd5;color:#9a3412}.lb-avatar{background:#ede9fe;border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0f172a1f;color:#6d28d9;display:grid;flex-shrink:0;font-weight:800;overflow:hidden;place-items:center}.lb-avatar img{height:100%;object-fit:cover;width:100%}.lb-step.gold .lb-avatar{border-color:#f59e0b}.lb-step.silver .lb-avatar{border-color:#94a3b8}.lb-step.bronze .lb-avatar{border-color:#c2410c}.lb-score{margin-top:4px}.lb-score strong{color:#0f172a;font-family:Outfit,Inter,sans-serif;font-size:22px;margin-right:4px}.lb-score span{color:#64748b;font-size:11px}.lb-block{border-radius:10px 10px 0 0;color:#fff;display:grid;font-family:Outfit,Inter,sans-serif;font-size:26px;font-weight:800;margin-top:8px;place-items:center;width:100%}.lb-step.gold .lb-block{background:linear-gradient(180deg,#f59e0b,#d97706);height:110px}.lb-step.silver .lb-block{background:linear-gradient(180deg,#94a3b8,#64748b);height:80px}.lb-step.bronze .lb-block{background:linear-gradient(180deg,#ea580c,#9a3412);height:60px}.lb-step.me b{color:#7c3aed}.lb-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1fr 1fr}.lb-list{grid-gap:6px;display:grid;gap:6px}.lb-row{grid-gap:12px;align-items:center;border-radius:10px;display:grid;gap:12px;grid-template-columns:30px 36px 1fr auto;padding:8px 10px;transition:background .2s}.lb-row:hover{background:#f8fafc}.lb-row.me{background:#f5f3ff;outline:1px solid #bfdbfe}.lb-rank{background:#f1f5f9;border-radius:50%;color:#475569;display:grid;font-size:12px;font-weight:800;height:28px;place-items:center;width:28px}.lb-rank.gold{background:#fef3c7;color:#b45309}.lb-rank.silver{background:#e2e8f0;color:#334155}.lb-rank.bronze{background:#ffedd5;color:#9a3412}.lb-who b{display:block;font-size:13px}.lb-who small{color:#94a3b8;font-size:11px}.lb-num{text-align:right}.lb-num b{color:#0f172a;display:block;font-size:16px}.lb-num small{color:#94a3b8;font-size:10px}.lb-row .lb-avatar{border-width:2px}@media(max-width:900px){.lb-grid{grid-template-columns:1fr}.lb-podium{gap:8px}.lb-step{width:31%}.lb-hero h2{font-size:19px}}.visit-cam-frame{background:#0f172a;border-radius:10px;overflow:hidden;position:relative}.visit-cam-frame .visit-qr-reader{border-radius:0}.visit-qr-reader{border:0!important}.visit-qr-reader #qr-shaded-region,.visit-qr-reader img[alt="Info icon"]{pointer-events:none}.visit-cam-hit{align-items:center;animation:visitHitIn .14s ease-out;color:#fff;display:flex;flex-direction:column;gap:4px;inset:0;justify-content:center;padding:18px;position:absolute;text-align:center;z-index:5}.visit-cam-hit.ok{background:#059669ed}.visit-cam-hit.warn{background:#d97706ed}.visit-cam-hit.bad{background:#dc2626ed}.visit-cam-hit small{font-size:11px;font-weight:800;letter-spacing:.14em;margin-top:6px;opacity:.95}.visit-cam-hit b{font-size:22px;line-height:1.2;max-width:95%;overflow-wrap:anywhere}.visit-cam-hit span{font-size:13px;opacity:.9}.visit-cam-bar{animation-fill-mode:forwards;animation-name:visitBar;animation-timing-function:linear;background:#ffffffd9;bottom:0;height:5px;left:0;position:absolute;transform-origin:left;width:100%}@keyframes visitBar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes visitHitIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}.visit-cam-status{align-items:center;color:#64748b;display:flex;font-size:12px;font-weight:600;gap:8px;padding:2px}.visit-cam-status .dot{background:#94a3b8;border-radius:50%;flex:none;height:9px;width:9px}.visit-cam-status.ready{color:#047857}.visit-cam-status.ready .dot{animation:visitPulse 1.6s infinite;background:#10b981;box-shadow:0 0 0 0 #10b98199}.visit-cam-status.wait{color:#b45309}.visit-cam-status.wait .dot{background:#f59e0b}@keyframes visitPulse{0%{box-shadow:0 0 0 0 #10b9818c}70%{box-shadow:0 0 0 8px #10b98100}to{box-shadow:0 0 0 0 #10b98100}}.visit-search-wrap{min-width:0;position:relative}.visit-search-input{align-items:center;display:flex;position:relative}.visit-search-input>svg{color:#94a3b8;left:13px;pointer-events:none;position:absolute}.visit-search-input input{padding-left:38px!important;padding-right:34px!important;width:100%}.visit-search-clear{background:#f1f5f9;border:0;border-radius:50%;color:#475569;cursor:pointer;display:grid;height:24px;place-items:center;position:absolute;right:8px;width:24px}.visit-suggest{border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 18px 40px -12px #0f172a47;margin:0;max-height:340px;padding:6px;top:calc(100% + 6px);z-index:30}.visit-suggest button{background:#fff;border-radius:9px;color:#0f172a;cursor:pointer;font:inherit;padding:9px 10px}.visit-suggest button.active,.visit-suggest button:hover{background:#faf8ff}.visit-suggest .avatar{flex:none;font-size:13px;height:34px;width:34px}.visit-suggest-text{flex:1 1;min-width:0}.visit-suggest-text b{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.visit-suggest-text span{color:#64748b;display:block;font-size:11.5px}.visit-suggest em{align-items:center;border-radius:999px;display:inline-flex;font-size:11px;font-style:normal;font-weight:700;gap:4px;padding:5px 8px;white-space:nowrap}.visit-suggest em.in{background:#ecfdf5;color:#047857}.visit-suggest em.out{background:#ede9fe;color:#6d28d9}.visit-list-search{align-items:center;display:flex;position:relative}.visit-list-search>svg{color:#94a3b8;left:11px;pointer-events:none;position:absolute}.visit-list-search input{height:38px;padding-left:33px!important;padding-right:30px!important;width:220px}.visit-list-search button{background:#f1f5f9;border:0;border-radius:50%;color:#475569;cursor:pointer;display:grid;height:22px;place-items:center;position:absolute;right:6px;width:22px}@media(max-width:640px){.visit-code-form{grid-template-columns:1fr}.visit-code-form .primary,.visit-filters,.visit-list-search,.visit-list-search input{width:100%}.visit-cam-hit b{font-size:20px}}.visit-purpose{grid-gap:8px;display:grid;gap:8px}.visit-purpose-label{align-items:baseline;color:#334155;display:flex;flex-wrap:wrap;font-size:12px;font-weight:700;gap:8px}.visit-purpose-label small{color:#94a3b8;font-size:11px;font-weight:500}.visit-purpose-chips{display:flex;flex-wrap:wrap;gap:6px}.visit-purpose-chips button{background:#fff;border:1px solid #ddd6fe;border-radius:999px;color:#5b21b6;cursor:pointer;font-size:12px;font-weight:700;padding:7px 13px;transition:background .15s,color .15s,border-color .15s,box-shadow .15s}.visit-purpose-chips button:hover:not(:disabled){background:#f5f3ff;border-color:#c4b5fd}.visit-purpose-chips button.active{background:#7c3aed;border-color:#7c3aed;box-shadow:0 6px 14px -8px #7c3aedcc;color:#fff}.visit-purpose-chips button:disabled{cursor:not-allowed;opacity:.55}.visit-purpose-chips button:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.visit-result em{color:inherit;font-style:normal;font-weight:700}.visit-purpose-select{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#0f172a;font-size:12px;height:34px;max-width:210px;min-width:150px;padding:0 8px}html[data-theme=dark] .visit-purpose-label{color:#e2e8f0;color:var(--ink-2,#e2e8f0)}html[data-theme=dark] .visit-purpose-chips button{background:#1e1b2e;background:var(--surface,#1e1b2e);border-color:#a78bfa4d;color:#c4b5fd}html[data-theme=dark] .visit-purpose-chips button.active{background:#7c3aed;border-color:#7c3aed;color:#fff}html[data-theme=dark] .visit-purpose-select{background:#26223a;background:var(--surface-2,#26223a);border-color:#3b3552;border-color:var(--line,#3b3552);color:#f1f5f9;color:var(--ink,#f1f5f9)}@media print{.visit-purpose-select{appearance:none;background:none;border:0;padding:0}}.visit-purpose-other{animation:poIn .18s ease;background:#fff;border:1px solid #c4b5fd;border-radius:10px;color:#0f172a;font-size:13px;height:42px;padding:0 12px}.visit-purpose-other:focus{border-color:#7c3aed;outline:2px solid #7c3aed;outline-offset:1px}@keyframes poIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}html[data-theme=dark] .visit-purpose-other{background:#26223a;background:var(--surface-2,#26223a);border-color:#a78bfa66;color:#f1f5f9;color:var(--ink,#f1f5f9)}.lb-wrap{display:flex;flex-direction:column;gap:14px}.lb-switch{align-self:flex-start;border:1px solid #7c3aed38;border-radius:14px;gap:4px;padding:4px}.lb-switch,.lb-switch>button{background:#f5f3ff;display:inline-flex}.lb-switch>button{align-items:center;border:0;border-radius:10px;box-shadow:none;color:#6d28d9;cursor:pointer;font-size:13px;font-weight:700;gap:7px;height:38px;padding:0 16px;transition:background .15s,color .15s,box-shadow .15s}.lb-switch>button:hover{background:#ede9fe}.lb-switch>button.active,.lb-switch>button.active:hover{background:#7c3aed;box-shadow:0 6px 14px -6px #7c3aedb3;color:#fff}.lb-switch>button:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}@media(max-width:520px){.lb-switch{align-self:stretch}.lb-switch>button{flex:1 1;font-size:12px;justify-content:center;padding:0 10px}}html[data-theme=dark] .lb-switch{background:#1f1a38;border-color:#a78bfa4d}html[data-theme=dark] .lb-switch>button{background:#1f1a38;color:#c4b5fd}html[data-theme=dark] .lb-switch>button:hover{background:#2a2350}html[data-theme=dark] .lb-switch>button.active{background:#7c3aed;color:#fff}.visit-kiosk-tools{align-items:center;display:flex;gap:8px}.sound-ctl{position:relative}.sound-ctl .icon-button.muted{background:#fff5f5;border-color:#fecaca;color:#b91c1c}.sound-pop{grid-gap:10px;animation:soundPop .18s ease-out;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:#ffffffeb;border:1px solid #ddd6fe;border-radius:14px;box-shadow:0 18px 40px -18px #2e106573;display:grid;gap:10px;max-width:calc(100vw - 32px);padding:14px;position:absolute;right:0;top:calc(100% + 8px);width:300px;z-index:100}@keyframes soundPop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sound-pop-head{align-items:center;display:flex;gap:10px;justify-content:space-between}.sound-pop-head b{color:#2e1065;display:block;font-size:14px}.sound-pop-head small{color:#64748b;font-size:11.5px}.sound-switch{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#64748b;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:7px;min-height:32px;padding:4px 10px 4px 4px}.sound-switch i{background:#cbd5e1;border-radius:999px;height:18px;position:relative;transition:opacity .15s ease;width:30px}.sound-switch i:after{background:#fff;border-radius:50%;content:"";height:14px;left:2px;position:absolute;top:2px;transition:transform .18s ease;width:14px}.sound-switch.on{background:#f5f3ff;border-color:#ddd6fe;color:#6d28d9}.sound-switch.on i{background:#7c3aed}.sound-switch.on i:after{transform:translateX(12px)}.sound-sample:focus-visible,.sound-switch:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.sound-samples{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.sound-sample{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;display:flex;gap:8px;min-height:44px;padding:9px 10px;text-align:left;transition:transform .15s ease}.sound-sample:hover{transform:translateY(-1px)}.sound-sample:active{transform:translateY(0) scale(.98)}.sound-sample b{color:#0f172a;display:block;font-size:12.5px}.sound-sample small{color:#64748b;font-size:10.5px}.sound-sample.s-masuk svg{color:#16a34a}.sound-sample.s-keluar svg{color:#7c3aed}.sound-sample.s-sudah_masuk svg{color:#d97706}.sound-sample.s-error svg{color:#dc2626}.sound-note{color:#64748b;font-size:11px;line-height:1.45;margin:0}html[data-theme=dark] .sound-pop{background:#16132beb;border-color:#4c1d95}html[data-theme=dark] .sound-pop-head b{color:#ede9fe}html[data-theme=dark] .sound-sample{background:#1f1a38;border-color:#3b3366}html[data-theme=dark] .sound-sample b{color:#e2e8f0}html[data-theme=dark] .sound-switch{background:#1f1a38;border-color:#3b3366;color:#cbd5e1}html[data-theme=dark] .sound-switch.on{background:#251d4a;color:#ddd6fe}html[data-theme=dark] .sound-ctl .icon-button.muted{background:#2a1218;border-color:#7f1d1d;color:#fca5a5}html[data-theme=dark] .sound-note,html[data-theme=dark] .sound-pop-head small,html[data-theme=dark] .sound-sample small{color:#a5b4c8}.lb-audience-bar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.lb-audience-bar>span{color:#64748b;font-size:12.5px;font-weight:600}.lb-switch.lb-audience>button.active{background:#0f766e;box-shadow:0 6px 14px -6px #0f766eb3}.lb-switch.lb-audience>button:not(.active){color:#0f766e}.lb-switch.lb-audience{background:#f0fdfa;border-color:#0f766e40}.lb-switch.lb-audience>button{background:#f0fdfa}.lb-switch.lb-audience>button:hover{background:#ccfbf1}.lb-switch.lb-audience>button.active,.lb-switch.lb-audience>button.active:hover{background:#0f766e;color:#fff}html[data-theme=dark] .lb-switch.lb-audience{background:#0d2522;border-color:#2dd4bf4d}html[data-theme=dark] .lb-switch.lb-audience>button{background:#0d2522;color:#5eead4}html[data-theme=dark] .lb-switch.lb-audience>button.active,html[data-theme=dark] .lb-switch.lb-audience>button.active:hover{background:#0f766e;color:#fff}html[data-theme=dark] .lb-switch.lb-audience>button:not(.active):hover{background:#12332f}html[data-theme=dark] .lb-audience-bar>span{color:#94a3b8}.lb-grid.single{grid-template-columns:minmax(0,1fr)}@media print{.lb-audience-bar{display:none!important}body.report-print .lb-grid.single{grid-template-columns:minmax(0,1fr)!important}}.cam-shell{background:#0f172a;border-radius:10px;min-height:260px;overflow:hidden;position:relative;width:100%}.cam-host,.cam-video{width:100%}.cam-video video{border-radius:10px;display:block;object-fit:cover;width:100%!important}.cam-overlay{align-items:center;color:#cbd5e1;display:flex;flex-direction:column;font-size:13px;gap:12px;inset:0;justify-content:center;line-height:1.5;padding:22px;position:absolute;text-align:center}.cam-overlay.error-state{background:#0f172a}.cam-overlay.error-state p{color:#fecaca;max-width:320px}.cam-switch{align-items:center;background:#ffffffe6;border:0;border-radius:20px;bottom:10px;box-shadow:0 4px 12px #0f172a40;color:#2e1065;display:inline-flex;font-size:12px;font-weight:700;gap:6px;padding:8px 12px;position:absolute;right:10px;transition:transform .2s}.cam-switch:hover{transform:translateY(-1px)}.qr-shell .manual-row{margin-top:10px}.settings-page{grid-gap:16px;display:grid;gap:16px;max-width:860px}.setting-row{align-items:flex-start;display:flex;gap:18px;padding:24px}.setting-icon{background:#fee2e2;border-radius:10px;color:#dc2626;display:grid;flex-shrink:0;height:44px;place-items:center;transition:background-color .2s,color .2s;width:44px}.setting-icon.on{background:#dcfce7;color:#16a34a}.setting-text{flex:1 1}.setting-text h3{font-size:18px}.setting-note{background:#faf8ff;border-radius:8px;color:#6d28d9;font-size:12px;margin-top:10px;padding:9px 11px}.setting-control{align-items:flex-end;display:flex;flex-direction:column;gap:12px}.report-overview{grid-gap:4px;display:grid;gap:4px}.ro-filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.ro-date{font-size:11px}.ro-date input{height:38px}.ro-actions{margin-left:auto}.ro-range{color:#64748b;font-size:12px;margin:4px 0 14px}.ro-charts{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1fr 1fr;margin-bottom:18px}.top-list{grid-gap:4px;display:grid;gap:4px;list-style:none;margin:0;padding:0}.top-list li{align-items:center;border-top:1px solid #f1f5f9;display:flex;gap:12px;padding:10px 4px}.top-rank{background:#f1f5f9;border-radius:50%;color:#475569;display:grid;flex-shrink:0;font-size:12px;font-weight:700;height:26px;place-items:center;width:26px}.top-rank.r1{background:#fef3c7;color:#a16207}.top-rank.r2{background:#e2e8f0;color:#334155}.top-rank.r3{background:#ffedd5;color:#c2410c}.top-main{flex:1 1;min-width:0}.top-main b,.top-main small{display:block}.top-main b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-main small{color:#94a3b8;font-size:11px;margin-top:2px}.top-list em{color:#6d28d9;font-size:11px;font-style:normal;font-weight:700;white-space:nowrap}.photo-locked{align-items:center;background:#fef2f2;border-radius:8px;color:#b91c1c;display:flex;font-size:12px;font-weight:600;gap:10px;padding:10px 12px}.photo-uploading{color:#6d28d9;font-size:11px}.profile-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.profile-actions{grid-gap:12px;display:grid;gap:12px;margin-top:16px}@media(max-width:900px){.profile-grid,.ro-charts{grid-template-columns:1fr}.ro-actions{margin-left:0}.setting-row{flex-direction:column}.setting-control{align-items:center;flex-direction:row}}@media print{.cam-shell,.ro-filters{display:none!important}.report-overview .report-summary{display:grid!important}.ro-charts{grid-template-columns:1fr 1fr}.report-overview .panel{break-inside:avoid;page-break-inside:avoid}}.report-tabs{overflow-x:auto;scrollbar-width:thin}.report-tabs button{flex-shrink:0;white-space:nowrap}.side-switch{align-self:flex-start;margin-bottom:10px;width:min(100%,260px)}.id-card-back{aspect-ratio:86/56;border-radius:12px;box-shadow:0 16px 28px #2e106533;color:#fff;color:var(--txt,#fff);display:flex;flex-direction:column;margin-top:9px;padding:18px 22px;width:min(100%,470px)}.id-card-back.layout-portrait{aspect-ratio:56/86;width:min(100%,320px)}.back-head{align-items:center;border-bottom:1px solid #fff3;border-bottom:1px solid var(--line,#fff3);display:flex;gap:10px;padding-bottom:10px}.back-head img{background:#fff;border-radius:6px;height:28px;object-fit:contain;padding:2px;width:28px}.back-head b{color:#c4b5fd;color:var(--acc,#c4b5fd);flex:1 1;font-size:11px;letter-spacing:.08em;text-align:center}.back-rules{grid-gap:3px;align-content:start;color:#ede9fe;color:var(--sub,#ede9fe);display:grid;flex:1 1;font-size:10px;gap:3px;line-height:1.45;list-style:decimal outside;margin:10px 0 6px;overflow:hidden;padding-left:16px}.back-rules li::marker{color:#c4b5fd;color:var(--acc,#c4b5fd);font-weight:700}.size-kecil .back-rules{font-size:9px}.size-besar .back-rules{font-size:11px}.back-web{align-items:center;border-top:1px solid #fff3;border-top:1px solid var(--line,#fff3);color:#c4b5fd;color:var(--acc,#c4b5fd);display:flex;font-size:10px;font-weight:700;gap:6px;justify-content:center;letter-spacing:.02em;padding-top:8px}.back-controls textarea{border:1px solid #cbd5e1;border-radius:8px;color:#0f172a;font:inherit;font-size:13px;font-weight:400;min-height:120px;padding:10px 13px;resize:vertical}.back-controls{grid-gap:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:grid;gap:10px;padding:14px}.print-sheet.back-side{direction:rtl}.print-sheet.back-side .print-slot{direction:ltr}.print-slot .id-card-back{aspect-ratio:auto;padding:22px 26px}.bulk-hint{background:#faf8ff;border-radius:8px;color:#6d28d9;font-size:12px;margin:12px auto 0;max-width:210mm;padding:9px 12px}@media print{.bulk-hint,.side-switch{display:none!important}}.duplex-page{padding-top:10mm;position:relative}.sheet-label{color:#6d28d9;direction:ltr;font-size:11px;font-weight:700;left:6mm;letter-spacing:.04em;position:absolute;top:3mm}@media print{.sheet-label{display:none!important}.duplex-page{box-sizing:border-box;break-after:page;height:297mm;min-height:297mm;overflow:hidden;padding:5mm 6mm;page-break-after:always}[data-testid=duplex-sheets]>div:last-child>.duplex-page:last-child{break-after:auto;page-break-after:auto}}.cam-detail{color:#94a3b8;font-family:monospace;font-size:10px}.cam-feedback{align-items:center;animation:camPop .18s ease-out;color:#fff;display:flex;flex-direction:column;gap:6px;inset:0;justify-content:center;padding:20px;position:absolute;text-align:center;z-index:3}.cam-feedback.ok{background:#16a34ae6}.cam-feedback.fail{background:#dc2626e6}.cam-feedback.busy{background:#2e106599}.cam-feedback b{font-size:20px;line-height:1.2}.cam-feedback span{font-size:13px;opacity:.95}.cam-cooldown{animation:camBar 1s linear forwards;background:#fffc;bottom:0;height:5px;left:0;position:absolute;transform-origin:left;width:100%}@keyframes camBar{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes camPop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.visit-search-label{position:relative}.visit-suggest{background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 28px #0f172a26;font-weight:400;left:0;list-style:none;margin:4px 0 0;max-height:300px;overflow:auto;padding:4px;position:absolute;right:0;top:100%;z-index:6}.visit-suggest.empty{color:#64748b;font-size:12px;padding:12px}.visit-suggest button{align-items:center;background:#0000;border:0;border-radius:7px;color:#334155;display:flex;gap:10px;padding:8px;text-align:left;transition:background-color .15s;width:100%}.visit-suggest button.active{background:#f5f3ff;color:#6d28d9}.sug-avatar{background:#ede9fe;border-radius:50%;color:#6d28d9;display:grid;flex-shrink:0;font-weight:700;height:32px;overflow:hidden;place-items:center;width:32px}.sug-avatar img{height:100%;object-fit:cover;width:100%}.sug-text{flex:1 1;min-width:0}.sug-text b,.sug-text small{display:block}.sug-text b{font-size:13px}.sug-text small{color:#64748b;font-size:11px}.cropper-wrap{grid-gap:12px;display:grid;gap:12px}.cropper-stage{background:#0f172a;border-radius:10px;height:min(60vh,380px);overflow:hidden;position:relative;touch-action:none;width:100%}.cropper-hint{color:#64748b;font-size:12px;gap:6px}.cropper-hint,.cropper-zoom{align-items:center;display:flex}.cropper-zoom{color:#6d28d9;gap:10px}.cropper-zoom input{accent-color:#7c3aed;border:0;flex:1 1;height:auto;padding:0}.cropper-actions{display:flex;gap:10px;justify-content:flex-end}.photo-chip{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;color:#475569;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:7px;margin-top:10px;padding:7px 12px;transition:background-color .2s,border-color .2s,transform .15s;white-space:nowrap}.photo-chip:hover{transform:translateY(-1px)}.photo-chip:disabled{cursor:wait;opacity:.6}.photo-chip .chip-dot{background:#94a3b8;border-radius:50%;height:8px;transition:background-color .2s,box-shadow .2s;width:8px}.photo-chip b{font-weight:800;transition:color .2s}.photo-chip.on{background:#f0fdf4;border-color:#bbf7d0}.photo-chip.on .chip-dot{background:#22c55e;box-shadow:0 0 0 3px #22c55e33}.photo-chip.on b{color:#15803d}.photo-chip.off{background:#fef2f2;border-color:#fecaca}.photo-chip.off .chip-dot{background:#ef4444;box-shadow:0 0 0 3px #ef444433}.photo-chip.off b{color:#b91c1c}@media(max-width:640px){.toolbar{align-items:flex-start;flex-wrap:wrap}.toolbar>div:first-child{flex:1 1 100%}.toolbar-buttons{flex-wrap:wrap}}.overdue-report{grid-gap:4px;display:grid;gap:4px;grid-template-columns:minmax(0,1fr)}.overdue-report>*{min-width:0}.stat-grid.three{grid-template-columns:repeat(3,1fr)}.pct-list{grid-gap:8px;display:grid;gap:8px;list-style:none;margin:0;padding:0}.pct-list li{grid-gap:10px;align-items:center;display:grid;font-size:12px;gap:10px;grid-template-columns:minmax(70px,1fr) minmax(60px,2fr) auto}.pct-name{color:#334155;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pct-bar{background:#f1f5f9;border-radius:99px;height:8px;overflow:hidden}.pct-bar i{background:linear-gradient(90deg,#f97316,#dc2626);border-radius:99px;display:block;height:100%}.pct-value{font-feature-settings:"tnum";color:#64748b;font-variant-numeric:tabular-nums}.days-pill,.pct-value{font-size:11px;white-space:nowrap}.days-pill{background:#fef2f2;border-radius:99px;color:#b91c1c;display:inline-block;font-weight:700;padding:2px 8px}@media(max-width:640px){.ro-filters{align-items:stretch;gap:8px}.ro-filters .period-select{flex:1 1 100%;overflow-x:auto;scrollbar-width:none}.ro-filters .period-select::-webkit-scrollbar{display:none}.ro-filters .period-select button{flex:1 0 auto;font-size:12px;padding:8px 10px;white-space:nowrap}.ro-date{flex-basis:calc(50% - 4px);flex-grow:1;flex-shrink:1;min-width:0}.ro-date input{font-size:13px;height:40px;width:100%}.app-frame .ro-filters .ro-actions{grid-gap:8px;display:grid;flex:1 1 100%;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-left:0}.app-frame .ro-filters .ro-actions button{font-size:12px;justify-content:center;min-width:0;padding:10px 6px;width:100%}.app-frame .overdue-report .ro-filters .download-row{grid-gap:8px;display:grid;flex:1 1 100%;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch}.app-frame .overdue-report .ro-filters .download-row>button{font-size:12px;min-width:0;padding:0 8px;width:100%}.ro-range{font-size:11px;line-height:1.5;margin:2px 0 12px}.stat-grid,.stat-grid.five,.stat-grid.three{gap:9px;grid-template-columns:repeat(2,1fr)}.stat-grid.three .stat-card:last-child{grid-column:1/-1}.stat-card{padding:13px}.stat-card>span{font-size:11px}.stat-card strong{font-size:20px}.stat-card small{font-size:10px;line-height:1.35}.report-summary{gap:8px;grid-template-columns:1fr}.report-summary>div{padding:12px}.ro-charts{gap:12px;grid-template-columns:1fr}.ro-charts .panel{padding:12px}.ro-charts .panel-title h3{font-size:14px}.top-list li{gap:9px;padding:9px 2px}.top-main b{font-size:12px}.top-list em{font-size:10px}.pct-list li{font-size:11px;gap:7px;grid-template-columns:minmax(56px,1fr) minmax(40px,1.4fr) auto}.report-tabs{gap:6px}.report-tabs button{font-size:12px;padding:7px 10px}}@media(max-width:380px){.stat-grid,.stat-grid.five,.stat-grid.three{grid-template-columns:1fr}.stat-grid.three .stat-card:last-child{grid-column:auto}}.bio-gate{grid-gap:14px;display:grid;gap:14px}.bio-head{align-items:center;display:flex;flex-direction:column;gap:10px;padding:6px 0 2px;text-align:center}.bio-icon{background:#f1f5f9;border-radius:50%;color:#94a3b8;display:grid;height:64px;place-items:center;transition:background-color .25s,color .25s,box-shadow .25s;width:64px}.bio-icon.on{background:#ede9fe;box-shadow:0 0 0 6px #7c3aed1a;color:#7c3aed}.bio-gate .text-button{align-items:center;background:none;border:0;color:#6d28d9;cursor:pointer;display:inline-flex;font-size:12px;gap:6px;justify-self:center;padding:6px}.bio-password{grid-gap:10px;display:grid;gap:10px}.bio-password label{grid-gap:6px;color:#475569;display:grid;font-size:12px;font-weight:600;gap:6px}.bio-password input{border:1px solid #e2e8f0;border-radius:8px;font-size:14px;height:44px;padding:0 12px}.bio-password input:focus{border-color:#a78bfa;outline:2px solid #c4b5fd}@media(max-width:520px){.bio-icon{height:56px;width:56px}.bio-gate{gap:12px}}:root{--v50:#f5f3ff;--v100:#ede9fe;--v200:#ddd6fe;--v300:#c4b5fd;--v400:#a78bfa;--v500:#8b5cf6;--v600:#7c3aed;--v700:#6d28d9;--v800:#5b21b6;--v900:#4c1d95;--v950:#2e1065;--page:#f7f7fb;--line:#e9e8f3;--line-strong:#dcdbea;--ink:#16132b;--ink-2:#3b3854;--muted:#6b6880;--muted-2:#9a97ad;--blue:var(--v600);--navy:var(--v950);--r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:22px;--sh-sm:0 1px 2px #16132b0d,0 1px 1px #16132b08;--sh-md:0 12px 28px -16px #2e106547;--sh-lg:0 30px 70px -30px #2e106573;--grad:linear-gradient(125deg,#4c1d95,#6d28d9 45%,#8b5cf6)}body{-webkit-font-smoothing:antialiased;background:#f7f7fb;background:var(--page);color:#16132b;color:var(--ink);font-family:Plus Jakarta Sans,Inter,sans-serif}b,h1,h2,h3,strong{font-family:Plus Jakarta Sans,Outfit,Inter,sans-serif;letter-spacing:-.01em}h1,h2{font-weight:800;letter-spacing:-.025em}b,h3,strong{font-weight:700}.eyebrow,.overline{color:#7c3aed;color:var(--v600);font-weight:800;letter-spacing:.14em}.eyebrow.light{color:#ddd6fe;color:var(--v200)}.muted{color:#6b6880;color:var(--muted)}::selection{background:#ddd6fe;background:var(--v200);color:#2e1065;color:var(--v950)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #7c3aed;outline:2px solid var(--v600);outline-offset:2px}.loading{background:#f7f7fb;background:var(--page);color:#7c3aed;color:var(--v600)}.primary{background:#7c3aed;background:var(--v600);border-radius:10px;border-radius:var(--r-sm);box-shadow:0 10px 20px -12px #7c3aedb3;transition:background .2s,transform .2s,box-shadow .2s}.primary:hover{background:#6d28d9;background:var(--v700);box-shadow:0 16px 28px -14px #6d28d9b3;transform:translateY(-1px)}.primary:active{transform:translateY(0)}.primary:disabled{box-shadow:none;opacity:.6;transform:none}.secondary{background:#fff;border:1px solid #dcdbea;border:1px solid var(--line-strong);border-radius:10px;border-radius:var(--r-sm);color:#3b3854;color:var(--ink-2);transition:background .2s,border-color .2s,color .2s}.secondary:hover{background:#f5f3ff;background:var(--v50);border-color:#ddd6fe;border-color:var(--v200);color:#5b21b6;color:var(--v800)}.text-button{color:#7c3aed;color:var(--v600)}.text-button:hover{color:#5b21b6;color:var(--v800)}.icon-button{border-radius:10px;border-radius:var(--r-sm)}.icon-button:hover{background:#f5f3ff;background:var(--v50);color:#7c3aed;color:var(--v600)}input,select,textarea{border:1px solid #dcdbea;border:1px solid var(--line-strong);border-radius:10px;border-radius:var(--r-sm);transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:#a78bfa;border-color:var(--v400);box-shadow:0 0 0 4px #7c3aed1f;outline:none}label{color:#3b3854;color:var(--ink-2)}.searchbox{background:#fff;border:1px solid #dcdbea;border:1px solid var(--line-strong);border-radius:999px;padding:0 16px;transition:border-color .2s,box-shadow .2s}.searchbox:focus-within{border-color:#a78bfa;border-color:var(--v400);box-shadow:0 0 0 4px #7c3aed1f}.searchbox input:focus{box-shadow:none}.error{border-radius:10px;border-radius:var(--r-sm)}.sidebar{background:#fff;border-right:1px solid #e9e8f3;border-right:1px solid var(--line);color:#3b3854;color:var(--ink-2)}.side-brand{color:#16132b;color:var(--ink)}.side-brand small{color:#7c3aed;color:var(--v600)}.side-label{color:#9a97ad;color:var(--muted-2)}.nav-item{border-radius:12px;color:#6b6880;color:var(--muted);font-weight:600;transition:background .2s,color .2s}.nav-item:hover{background:#f5f3ff;background:var(--v50);color:#5b21b6;color:var(--v800)}.nav-item.active{background:#7c3aed;background:var(--v600);box-shadow:0 10px 22px -12px #7c3aedbf;color:#fff}.nav-item.active svg{color:#fff}.no-fine{background:#f5f3ff;background:var(--v50);border:1px solid #ede9fe;border:1px solid var(--v100);border-radius:14px;border-radius:var(--r-md);color:#6d28d9;color:var(--v700)}.no-fine b{color:#4c1d95;color:var(--v900)}.no-fine small{color:#6d28d9;color:var(--v700)}.logout{border-radius:12px;color:#6b6880;color:var(--muted)}.logout:hover{background:#fef2f2;color:#b91c1c}.topbar{background:#fff;border-bottom:1px solid #e9e8f3;border-bottom:1px solid var(--line)}.crumb b{color:#16132b;color:var(--ink)}.avatar{background:#ede9fe;background:var(--v100);color:#5b21b6;color:var(--v800)}.student-hero,.welcome-banner{background:linear-gradient(125deg,#4c1d95,#6d28d9 45%,#8b5cf6);background:var(--grad);border-radius:22px;border-radius:var(--r-xl);box-shadow:0 12px 28px -16px #2e106547;box-shadow:var(--sh-md);overflow:hidden;position:relative}.student-hero:after,.welcome-banner:after{background:radial-gradient(circle,#ffffff2e,#fff0 70%);border-radius:50%;content:"";height:320px;pointer-events:none;position:absolute;right:-80px;top:-90px;width:320px}.student-hero>*,.welcome-banner>*{position:relative;z-index:1}.login-visual h1 em,.student-hero h1 em,.welcome-banner em{color:#f5d0fe}.student-hero p:not(.eyebrow),.welcome-banner p:not(.eyebrow){color:#ede9fe}.banner-button{background:#fff;border-radius:999px;box-shadow:0 10px 24px -12px #0006;color:#6d28d9;color:var(--v700);padding:11px 18px}.banner-button:hover{transform:translateY(-1px)}.banner-art{color:#ede9fe}.art-line,.banner-art:after,.banner-art:before{border-color:#ffffff47}.art-line{background:#ffffff47}.panel,.stat-card{border:1px solid #e9e8f3;border:1px solid var(--line);border-radius:18px;border-radius:var(--r-lg);box-shadow:0 1px 2px #16132b0d,0 1px 1px #16132b08;box-shadow:var(--sh-sm)}.stat-card{transition:transform .2s,box-shadow .2s}.stat-card:hover{box-shadow:0 12px 28px -16px #2e106547;box-shadow:var(--sh-md);transform:translateY(-2px)}.stat-card strong{letter-spacing:-.02em}.stat-icon{border-radius:12px}.stat-icon.blue{background:#ede9fe;background:var(--v100);color:#6d28d9;color:var(--v700)}.panel-title h3{color:#16132b;color:var(--ink)}.shortcut{background:#f7f7fb;background:var(--page);border:1px solid #0000;border-radius:14px;border-radius:var(--r-md);transition:background .2s,border-color .2s}.shortcut:hover{background:#f5f3ff;background:var(--v50);border-color:#ede9fe;border-color:var(--v100)}.shortcut-icon{border-radius:10px}.activity-icon.borrow,.shortcut-icon{background:#ede9fe;background:var(--v100);color:#6d28d9;color:var(--v700)}th{border-bottom:1px solid #e9e8f3;border-bottom:1px solid var(--line);color:#9a97ad;color:var(--muted-2);font-weight:700}td{border-bottom:1px solid #f1f0f7;color:#3b3854;color:var(--ink-2)}tbody tr{transition:background .15s}tbody tr:hover td{background:#faf9ff}.book-cover{background:#ede9fe;background:var(--v100);border-radius:6px;color:#7c3aed;color:var(--v600)}.soft-badge{border:1px solid #ede9fe;border:1px solid var(--v100)}.shelf-tag,.soft-badge{background:#f5f3ff;background:var(--v50);color:#6d28d9;color:var(--v700)}.shelf-tag,.status{border-radius:999px}.status.kembali{background:#ede9fe;background:var(--v100);color:#5b21b6;color:var(--v800)}.report-tabs{border-bottom:1px solid #e9e8f3;border-bottom:1px solid var(--line);gap:4px}.report-tabs button{border-radius:10px 10px 0 0;color:#6b6880;color:var(--muted);transition:color .2s,background .2s}.report-tabs button:hover{background:#f5f3ff;background:var(--v50);color:#6d28d9;color:var(--v700)}.report-tabs button.active{border-bottom-color:#7c3aed;border-bottom-color:var(--v600);color:#6d28d9;color:var(--v700)}.mode-switch,.student-nav{background:#f1f0f7;border-radius:12px}.mode-switch button,.student-nav button{border-radius:9px}.mode-switch button.selected,.student-nav button.active{background:#fff;box-shadow:0 1px 2px #16132b14,0 4px 10px -6px #2e106540;color:#6d28d9;color:var(--v700)}.member-row.selected{background:#f5f3ff;background:var(--v50);border-bottom-color:#ddd6fe;border-bottom-color:var(--v200)}.modal-backdrop{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);background:#16132b8c}.modal{animation:themeModalIn .18s ease-out;border:1px solid #e9e8f3;border:1px solid var(--line);border-radius:22px;border-radius:var(--r-xl);box-shadow:0 30px 70px -30px #2e106573;box-shadow:var(--sh-lg)}.modal-head h3{color:#16132b;color:var(--ink)}.toast{background:#2e1065;background:var(--v950);border-radius:14px;border-radius:var(--r-md);box-shadow:0 30px 70px -30px #2e106573;box-shadow:var(--sh-lg)}@keyframes themeModalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.login-visual{background:linear-gradient(135deg,#2e1065ed,#7c3aedc2),url(https://images.unsplash.com/photo-1544185310-0b3cf501672b?auto=format&fit=crop&w=1400&q=80) 50%/cover}.login-shell.student .login-visual{background:linear-gradient(135deg,#4c1d95ed,#8b5cf6bd),url(https://images.unsplash.com/photo-1521587760476-6c12a4b040da?auto=format&fit=crop&w=1400&q=80) 50%/cover}.login-shell.student .overline,.login-visual .overline{color:#e9d5ff}.login-address,.login-copy,.login-shell.student .login-address,.login-shell.student .login-copy{color:#ede9fe}.login-panel{background:#fff}.login-panel h2{letter-spacing:-.02em}.brand-mark,.logo-box{background:#7c3aed;background:var(--v600);box-shadow:0 10px 20px -8px #7c3aed99}.demo-login button{background:#f5f3ff;background:var(--v50);border:1px solid #ede9fe;border:1px solid var(--v100);color:#6d28d9;color:var(--v700)}.portal-switch a{color:#7c3aed;color:var(--v600)}.chooser{background:radial-gradient(900px 500px at 15% 0,#ede9fe 0,#ede9fe00 60%),radial-gradient(800px 500px at 100% 100%,#f3e8ff 0,#f3e8ff00 60%),#f7f7fb;background:radial-gradient(900px 500px at 15% 0,#ede9fe 0,#ede9fe00 60%),radial-gradient(800px 500px at 100% 100%,#f3e8ff 0,#f3e8ff00 60%),var(--page);color:#16132b;color:var(--ink)}.chooser-head .overline{color:#7c3aed;color:var(--v600)}.chooser-head h1{color:#16132b;color:var(--ink);letter-spacing:-.03em}.chooser-head h1 em{color:#7c3aed;color:var(--v600)}.chooser-head .login-copy{color:#6b6880;color:var(--muted)}.chooser-head img{box-shadow:0 8px 20px -10px #2e106566}.chooser-card,.chooser-head img{border:1px solid #e9e8f3;border:1px solid var(--line)}.chooser-card{border-radius:22px;border-radius:var(--r-xl);box-shadow:0 1px 2px #16132b0d,0 1px 1px #16132b08;box-shadow:var(--sh-sm)}.chooser-card:hover{border-color:#ddd6fe;border-color:var(--v200);box-shadow:0 30px 70px -30px #2e106573;box-shadow:var(--sh-lg)}.chooser-card h2{color:#6d28d9;color:var(--v700);font-family:Plus Jakarta Sans,Outfit,sans-serif;font-weight:800}.chooser-card b,.chooser-card.student b,.chooser-card.student h2{color:#7c3aed;color:var(--v600)}.chooser-card.student .chooser-icon,.chooser-icon{background:#ede9fe;background:var(--v100);border-radius:14px;color:#6d28d9;color:var(--v700)}.chooser-foot{color:#9a97ad;color:var(--muted-2)}.student-shell{background:#f7f7fb;background:var(--page)}.student-top{background:#fff;border-bottom:1px solid #e9e8f3;border-bottom:1px solid var(--line)}.student-brand strong{color:#16132b;color:var(--ink)}.student-hero-badge{background:#ffffff29;border-color:#ffffff59;color:#fff}.catalog-card{border:1px solid #e9e8f3;border:1px solid var(--line);border-radius:18px;border-radius:var(--r-lg);box-shadow:0 1px 2px #16132b0d,0 1px 1px #16132b08;box-shadow:var(--sh-sm)}.catalog-card:hover{border-color:#ddd6fe;border-color:var(--v200);box-shadow:0 12px 28px -16px #2e106547;box-shadow:var(--sh-md);transform:translateY(-3px)}.catalog-cover{background:#f5f3ff;background:var(--v50);color:#8b5cf6;color:var(--v500)}.shelf-chips button{border-color:#dcdbea;border-color:var(--line-strong);border-radius:999px}.shelf-chips button:hover{border-color:#c4b5fd;border-color:var(--v300);color:#6d28d9;color:var(--v700)}.shelf-chips button.active{background:#7c3aed;background:var(--v600);color:#fff}.reserve-btn,.shelf-chips button.active{border-color:#7c3aed;border-color:var(--v600)}.reserve-btn{border-radius:10px;border-radius:var(--r-sm);color:#6d28d9;color:var(--v700)}.reserve-btn:hover{background:#7c3aed;background:var(--v600);color:#fff}.student-foot{border-top:1px solid #e9e8f3;border-top:1px solid var(--line);color:#9a97ad;color:var(--muted-2)}@media (prefers-reduced-motion:reduce){.catalog-card,.chooser-card,.modal,.nav-item,.primary,.secondary,.stat-card{animation:none!important;transform:none!important;transition:none!important}}.sidebar-backdrop{display:none}@media(max-width:640px){.sidebar{box-shadow:0 30px 70px -30px #2e106573;box-shadow:var(--sh-lg)}.sidebar-backdrop{animation:themeFade .15s ease-out;background:#16132b73;display:block;inset:0;position:fixed;z-index:2}}@keyframes themeFade{0%{opacity:0}to{opacity:1}}@media screen{:where(html[data-theme=dark]) body{background:var(--surface-2);color:var(--ink)}:where(html[data-theme=dark]) .eyebrow,:where(html[data-theme=dark]) .overline{color:var(--muted)}:where(html[data-theme=dark]) .loading{background:var(--surface-2)}:where(html[data-theme=dark]) label{color:var(--ink-2)}:where(html[data-theme=dark]) input,:where(html[data-theme=dark]) select{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink)}:where(html[data-theme=dark]) .secondary{background:var(--sunk);border:1px solid var(--line-strong);color:var(--ink-2)}:where(html[data-theme=dark]) .secondary:hover{background:var(--sunk)}:where(html[data-theme=dark]) .error{background:#ef44441a;color:#f87171}:where(html[data-theme=dark]) .demo-login{border-top:1px solid var(--line)}:where(html[data-theme=dark]) .demo-login button{background:#8b5cf624}:where(html[data-theme=dark]) .crumb b{color:var(--ink-2)}:where(html[data-theme=dark]) .icon-button{color:var(--muted)}:where(html[data-theme=dark]) .icon-button:hover{background:var(--sunk)}:where(html[data-theme=dark]) .user-chip small{color:var(--muted)}:where(html[data-theme=dark]) .avatar{color:#c4b5fd}:where(html[data-theme=dark]) .panel,:where(html[data-theme=dark]) .stat-card{background:var(--surface)}:where(html[data-theme=dark]) .stat-card>span{color:var(--muted)}:where(html[data-theme=dark]) .stat-icon.blue{color:#a78bfa}:where(html[data-theme=dark]) .stat-icon.green{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .stat-icon.orange{background:#f59e0b29;color:#fbbf24}:where(html[data-theme=dark]) .stat-icon.red{background:#ef444429;color:#f87171}:where(html[data-theme=dark]) .activity,:where(html[data-theme=dark]) .mini-transaction{border-top:1px solid var(--line)}:where(html[data-theme=dark]) .activity span,:where(html[data-theme=dark]) .mini-transaction span{color:var(--muted)}:where(html[data-theme=dark]) .activity-icon.borrow{color:#a78bfa}:where(html[data-theme=dark]) .activity-icon.return{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .shortcut{background:var(--surface-2);color:var(--ink-2)}:where(html[data-theme=dark]) .shortcut:hover{background:#8b5cf624}:where(html[data-theme=dark]) .shortcut small{color:var(--muted)}:where(html[data-theme=dark]) .shortcut-icon{color:#a78bfa}:where(html[data-theme=dark]) .shortcut-icon.green{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .soft-badge{background:#8b5cf624}:where(html[data-theme=dark]) td{color:var(--ink-2)}:where(html[data-theme=dark]) td b{color:var(--ink)}:where(html[data-theme=dark]) .photo-box{background:var(--surface-2);border:1px dashed var(--line-strong)}:where(html[data-theme=dark]) .photo-preview{background:var(--surface);border:1px solid var(--line)}:where(html[data-theme=dark]) .shelf-card{background:var(--surface)}:where(html[data-theme=dark]) .shelf-bar{background:var(--sunk)}:where(html[data-theme=dark]) .shelf-spine{background:#8b5cf624;color:#a78bfa}:where(html[data-theme=dark]) .period-select{background:var(--sunk)}:where(html[data-theme=dark]) .period-select button{color:var(--muted)}:where(html[data-theme=dark]) .period-select button.active{background:var(--surface);color:#a78bfa}:where(html[data-theme=dark]) .status.tersedia{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .status.dipinjam,:where(html[data-theme=dark]) .status.pinjam{background:#f59e0b29;color:#fcd34d}:where(html[data-theme=dark]) .status.kembali{color:#c4b5fd}:where(html[data-theme=dark]) .shelf-tag{background:#8b5cf633}:where(html[data-theme=dark]) .status{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .status.dipinjam{background:#f59e0b29;color:#fcd34d}:where(html[data-theme=dark]) .status.hilang{background:#ef444429;color:#f87171}:where(html[data-theme=dark]) .danger-icon:hover{background:#ef44441a;color:#f87171}:where(html[data-theme=dark]) .member-row{background:var(--surface);border-bottom:1px solid var(--line)}:where(html[data-theme=dark]) .member-row span{color:var(--muted)}:where(html[data-theme=dark]) .member-row.selected{background:#8b5cf624;border-bottom-color:#a78bfa59}:where(html[data-theme=dark]) .photo{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) .mode-switch{background:var(--sunk)}:where(html[data-theme=dark]) .mode-switch button{color:var(--muted)}:where(html[data-theme=dark]) .mode-switch button.selected{background:var(--surface);color:#c4b5fd}:where(html[data-theme=dark]) .scanner-box{background:#8b5cf614;border:1px dashed #a78bfa73;color:#a78bfa}:where(html[data-theme=dark]) .scanner-box h3{color:var(--ink)}:where(html[data-theme=dark]) .scanner-box p{color:var(--muted)}:where(html[data-theme=dark]) .or-line:after,:where(html[data-theme=dark]) .or-line:before{background:var(--sunk)}:where(html[data-theme=dark]) .live-dot{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .mini-transaction small{color:var(--muted)}:where(html[data-theme=dark]) .zero-fine{background:#22c55e1a;color:#4ade80}:where(html[data-theme=dark]) .zero-fine small{color:#a3e635}:where(html[data-theme=dark]) .report-tabs button{color:var(--muted)}:where(html[data-theme=dark]) .report-tabs button.active{color:#a78bfa}:where(html[data-theme=dark]) .report-summary>div{background:var(--surface)}:where(html[data-theme=dark]) .report-summary small,:where(html[data-theme=dark]) .report-summary span{color:var(--muted)}:where(html[data-theme=dark]) .modal{background:var(--surface)}:where(html[data-theme=dark]) .mobile-menu{color:var(--ink-2)}:where(html[data-theme=dark]) .photo-actions small.photo-info{color:#34d399}:where(html[data-theme=dark]) .photo-actions small.photo-err{color:#f87171}:where(html[data-theme=dark]) .crop-modal{background:var(--surface)}:where(html[data-theme=dark]) .crop-head h3{color:var(--ink)}:where(html[data-theme=dark]) .crop-head p{color:var(--muted)}:where(html[data-theme=dark]) .crop-area-face{border:2px solid var(--surface)!important}:where(html[data-theme=dark]) .crop-hint{color:var(--muted)}:where(html[data-theme=dark]) .crop-actions{border-top:1px solid var(--line)}@media (max-width:560px){:where(html[data-theme=dark]) .crop-actions{background:var(--surface)}}:where(html[data-theme=dark]) .photo-switch-btn.on .dot{box-shadow:0 0 0 3px #10b98140}:where(html[data-theme=dark]) .photo-switch-btn.off .dot{box-shadow:0 0 0 3px #ef444440}:where(html[data-theme=dark]) .photo-switch-btn.on b{color:#34d399}:where(html[data-theme=dark]) .photo-switch-btn.off b{color:#f87171}:where(html[data-theme=dark]) .photo-switch-main.on{background:#22c55e1a;border-color:#22c55e59}:where(html[data-theme=dark]) .photo-switch-main.off{background:#ef44441a;border-color:#ef444459}:where(html[data-theme=dark]) .photo-switch-main b{color:var(--ink)}:where(html[data-theme=dark]) .photo-switch-main small{color:var(--ink-2)}:where(html[data-theme=dark]) .switch{background:#3a3460}:where(html[data-theme=dark]) .chip{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}:where(html[data-theme=dark]) .chip:hover{background:#8b5cf614;border-color:#a78bfa59;color:#c4b5fd}:where(html[data-theme=dark]) .check-row b{color:var(--ink)}:where(html[data-theme=dark]) .check-row small{color:var(--muted)}:where(html[data-theme=dark]) .photo-locked{background:#f973161a;border:1px solid #f9731659;color:#fdba74}:where(html[data-theme=dark]) .photo-locked b{color:#fed7aa}:where(html[data-theme=dark]) .reserve-btn.locked{background:var(--sunk)!important;border-color:var(--line)!important;color:var(--muted)!important}:where(html[data-theme=dark]) .data-reset-zone{border-top:1px dashed var(--line)}:where(html[data-theme=dark]) .reset-books-check{color:var(--ink-2)}:where(html[data-theme=dark]) .reset-warn{color:#fbbf24}:where(html[data-theme=dark]) .photo-member-select{color:var(--ink-2)}:where(html[data-theme=dark]) .photo-member-select select{background:var(--surface);border:1px solid var(--line-strong)}:where(html[data-theme=dark]) .student-identity{background:var(--surface);border:1px solid var(--line)}:where(html[data-theme=dark]) .student-identity .identity-label{color:var(--ink)}:where(html[data-theme=dark]) .student-identity select{background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink)}:where(html[data-theme=dark]) .student-identity .identity-current{color:#2dd4bf}:where(html[data-theme=dark]) .student-identity .identity-hint{color:#fbbf24}:where(html[data-theme=dark]) .identity-combo input{background:var(--surface-2);border:1px solid var(--line-strong);color:var(--ink)}:where(html[data-theme=dark]) .identity-combo input:focus{background:var(--surface)}:where(html[data-theme=dark]) .identity-clear{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .identity-clear:hover{background:#3a3460}:where(html[data-theme=dark]) .identity-suggest{background:var(--surface);border:1px solid var(--line)}:where(html[data-theme=dark]) .identity-suggest-item{color:var(--ink)}:where(html[data-theme=dark]) .identity-suggest-item:hover{background:#14b8a61f}:where(html[data-theme=dark]) .identity-suggest-item small{color:var(--muted)}:where(html[data-theme=dark]) .control-label{color:var(--ink-2)}:where(html[data-theme=dark]) .layout-option{background:var(--surface);border:1px solid var(--line-strong)}:where(html[data-theme=dark]) .layout-option b{color:var(--ink)}:where(html[data-theme=dark]) .layout-option small{color:var(--muted)}:where(html[data-theme=dark]) .layout-option.active{background:#8b5cf624}:where(html[data-theme=dark]) .pill-option{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2)}:where(html[data-theme=dark]) .pill-option.active{background:#8b5cf624;color:#7dd3fc}:where(html[data-theme=dark]) .range-input{background:var(--sunk)}:where(html[data-theme=dark]) .toggle{color:var(--ink-2)}:where(html[data-theme=dark]) .history-row{border-top:1px solid var(--line)}:where(html[data-theme=dark]) .history-row>div span{color:var(--muted)}:where(html[data-theme=dark]) .warn-icon:hover{background:#f59e0b1a;color:#fbbf24}:where(html[data-theme=dark]) .ok-icon{background:#22c55e1a;color:#4ade80}:where(html[data-theme=dark]) .ok-icon:hover{background:#22c55e29}:where(html[data-theme=dark]) .status.ditemukan{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .lost-banner.warn{background:#f59e0b1a;border:1px solid #f59e0b59;color:#fbbf24}:where(html[data-theme=dark]) .lost-banner.ok{background:#22c55e1a;border:1px solid #22c55e59;color:#4ade80}:where(html[data-theme=dark]) .lost-banner b{color:var(--ink)}:where(html[data-theme=dark]) textarea{border:1px solid var(--line-strong);color:var(--ink)}:where(html[data-theme=dark]) .bulk-toolbar{background:var(--surface);border-bottom:1px solid var(--line-strong)}:where(html[data-theme=dark]) .catalog-shelf{background:#22c55e1a;border:1px solid #22c55e59;color:#34d399}:where(html[data-theme=dark]) .shelf-chips button{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink-2)}:where(html[data-theme=dark]) .soft-badge.warn{background:#f59e0b1a;color:#fbbf24}:where(html[data-theme=dark]) .activity-icon.overdue{background:#ef444429;color:#f87171}:where(html[data-theme=dark]) .overdue-row,:where(html[data-theme=dark]) .queue-row,:where(html[data-theme=dark]) .stock-row{border-top:1px solid var(--line)}:where(html[data-theme=dark]) .overdue-row>div span,:where(html[data-theme=dark]) .queue-row>div span,:where(html[data-theme=dark]) .stock-row>div span{color:var(--muted)}:where(html[data-theme=dark]) .queue-row b small{color:var(--muted)}:where(html[data-theme=dark]) .days-pill{background:#ef444429;color:#f87171}:where(html[data-theme=dark]) .queue-done{border-top:1px dashed var(--line)}:where(html[data-theme=dark]) .stock-numbers span{color:var(--muted)}:where(html[data-theme=dark]) .stock-row.ok b{color:#4ade80}:where(html[data-theme=dark]) .stock-row.warn{border-top-color:#f59e0b59}:where(html[data-theme=dark]) .tick{border:2px solid var(--line-strong)}:where(html[data-theme=dark]) .stock-summary{background:#22c55e1a;border:1px solid #22c55e59;color:#4ade80}:where(html[data-theme=dark]) .stock-foot{border-top:1px solid var(--line)}:where(html[data-theme=dark]) .stock-history span{background:var(--surface);border:1px solid var(--line);color:var(--ink-2)}:where(html[data-theme=dark]) .reserve-btn{background:var(--surface);color:#34d399}:where(html[data-theme=dark]) .queue-hint{color:var(--muted)}:where(html[data-theme=dark]) .res-card{background:var(--surface);border:1px solid var(--line)}:where(html[data-theme=dark]) .res-card>div span{color:var(--muted)}:where(html[data-theme=dark]) .res-card .status.menunggu{background:#f59e0b29;color:#fcd34d}:where(html[data-theme=dark]) .res-card .status.dipinjamkan{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .res-card .status.dibatalkan,:where(html[data-theme=dark]) .res-card .status.ditolak{background:#ef444429;color:#f87171}:where(html[data-theme=dark]) .member-row-main span{color:var(--muted)}:where(html[data-theme=dark]) .account-section-head{color:var(--ink)}:where(html[data-theme=dark]) .account-hint{color:var(--muted)}:where(html[data-theme=dark]) .account-users{border-top:1px solid var(--line)}:where(html[data-theme=dark]) .account-user-row{border:1px solid var(--line)}:where(html[data-theme=dark]) .account-user-info small{color:var(--muted)}:where(html[data-theme=dark]) .bulk-del-class{background:var(--surface);border:1px solid var(--line)}:where(html[data-theme=dark]) .bulk-del-class:hover{background:#ef44441a;border-color:#ef444459}:where(html[data-theme=dark]) .bulk-del-class small{color:var(--muted)}:where(html[data-theme=dark]) .bulk-del-count{background:#ef444429;color:#f87171}:where(html[data-theme=dark]) .import-drop{border:2px dashed var(--line-strong);color:var(--muted)}:where(html[data-theme=dark]) .import-drop:hover{background:#8b5cf614;color:#c4b5fd}:where(html[data-theme=dark]) .import-result{background:var(--surface-2);border:1px solid var(--line)}:where(html[data-theme=dark]) .import-result>span{color:var(--ink-2)}:where(html[data-theme=dark]) .import-result li{color:#fbbf24}:where(html[data-theme=dark]) .preset-pill{background:#8b5cf614;border-color:#a78bfa59;color:#c4b5fd}:where(html[data-theme=dark]) .portal-switch{color:var(--muted)}:where(html[data-theme=dark]) .chooser-card{background:var(--surface);color:var(--ink)}:where(html[data-theme=dark]) .chooser-card h2{color:#a78bfa}:where(html[data-theme=dark]) .chooser-card.student h2{color:#a78bfa}:where(html[data-theme=dark]) .chooser-card p:not(.eyebrow){color:var(--ink-2)}:where(html[data-theme=dark]) .chooser-card b{color:#a78bfa}:where(html[data-theme=dark]) .chooser-card.student b{color:#a78bfa}:where(html[data-theme=dark]) .chooser-icon{background:#8b5cf633;color:#a78bfa}:where(html[data-theme=dark]) .chooser-card.student .chooser-icon{background:#8b5cf633;color:#a78bfa}:where(html[data-theme=dark]) .student-shell{background:var(--surface-2)}:where(html[data-theme=dark]) .student-top{border-bottom:1px solid var(--line)}:where(html[data-theme=dark]) .student-brand small{color:var(--muted)}:where(html[data-theme=dark]) .student-nav{background:var(--sunk)}:where(html[data-theme=dark]) .student-nav button{color:var(--muted)}:where(html[data-theme=dark]) .student-nav button.active{background:var(--surface);color:#c4b5fd}:where(html[data-theme=dark]) .student-user small{color:var(--muted)}:where(html[data-theme=dark]) .catalog-card{background:var(--surface);border:1px solid var(--line)}:where(html[data-theme=dark]) .catalog-cover{background:#8b5cf633;color:#a78bfa}:where(html[data-theme=dark]) .catalog-info small{color:#d4d0e8}:where(html[data-theme=dark]) .catalog-meta{color:#b8b2d6}:where(html[data-theme=dark]) .student-foot{border-top:1px solid var(--line)}:where(html[data-theme=dark]) .visit-kiosk{background:var(--surface)}:where(html[data-theme=dark]) .visit-scan-idle{background:#8b5cf614;border:1px dashed #a78bfa73;color:#a78bfa}:where(html[data-theme=dark]) .visit-scan-idle b{color:var(--ink)}:where(html[data-theme=dark]) .visit-scan-idle span{color:var(--muted)}:where(html[data-theme=dark]) .visit-result{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}:where(html[data-theme=dark]) .visit-result b{color:var(--ink)}:where(html[data-theme=dark]) .visit-result.masuk{background:#22c55e1a;border-color:#22c55e73;color:#4ade80}:where(html[data-theme=dark]) .visit-result.keluar{background:#8b5cf624;border-color:#a78bfa73;color:#c4b5fd}:where(html[data-theme=dark]) .visit-result.sudah_keluar,:where(html[data-theme=dark]) .visit-result.sudah_masuk{background:#f59e0b1a;border-color:#f59e0b73;color:#fbbf24}:where(html[data-theme=dark]) .visit-result.error{background:#ef44441a;border-color:#ef444473;color:#f87171}:where(html[data-theme=dark]) .visit-stat{background:var(--surface)}:where(html[data-theme=dark]) .visit-stat small,:where(html[data-theme=dark]) .visit-stat span{color:var(--muted)}:where(html[data-theme=dark]) .visit-stat strong{color:var(--ink)}:where(html[data-theme=dark]) .visit-auto{background:#f59e0b1a;border:1px solid #f59e0b59;color:#fbbf24}:where(html[data-theme=dark]) .visit-auto b{color:#fcd34d}:where(html[data-theme=dark]) .visit-auto small{color:#fbbf24}:where(html[data-theme=dark]) .visit-auto:hover{background:#f59e0b29}:where(html[data-theme=dark]) .avatar.guest{background:#f59e0b29;color:#fbbf24}:where(html[data-theme=dark]) .status.keluar{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) .status.habis{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .stock-meter{background:var(--sunk)}:where(html[data-theme=dark]) .catalog-stock{color:var(--ink-2)}:where(html[data-theme=dark]) .catalog-stock b{color:#4ade80}:where(html[data-theme=dark]) .qr-label{border:1px dashed var(--line-strong)}:where(html[data-theme=dark]) .qr-label small{color:var(--muted)}:where(html[data-theme=dark]) .kpi{background:var(--surface)}:where(html[data-theme=dark]) .kpi small{color:var(--muted)}:where(html[data-theme=dark]) .kpi b{color:var(--ink)}:where(html[data-theme=dark]) .kpi-icon.blue{background:#8b5cf633;color:#a78bfa}:where(html[data-theme=dark]) .kpi-icon.green{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .kpi-icon.orange{background:#f59e0b29;color:#fbbf24}:where(html[data-theme=dark]) .kpi-icon.violet{background:#8b5cf633;color:#a78bfa}:where(html[data-theme=dark]) .pct-list>div{color:var(--ink-2)}:where(html[data-theme=dark]) .pct-list b{color:var(--ink)}:where(html[data-theme=dark]) .class-bar-track{background:var(--sunk)}:where(html[data-theme=dark]) .class-bar em{color:var(--ink)}:where(html[data-theme=dark]) .inline-pct span{color:var(--ink)}:where(html[data-theme=dark]) .shelf-admin-bar{background:var(--surface)}:where(html[data-theme=dark]) .shelf-admin-bar span{color:var(--muted)}:where(html[data-theme=dark]) .shelf-tag.mint{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .shelf-tag.amber{background:#f59e0b29;color:#fbbf24}:where(html[data-theme=dark]) .shelf-tag.rose{background:#f43f5e29;color:#fb7185}:where(html[data-theme=dark]) .shelf-tag.violet{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) .lb-me{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}:where(html[data-theme=dark]) .lb-me.in{background:#f59e0b1a;border-color:#f59e0b73;color:#fcd34d}:where(html[data-theme=dark]) .lb-empty b{color:var(--ink)}:where(html[data-theme=dark]) .lb-step b{color:var(--ink)}:where(html[data-theme=dark]) .lb-step small{color:var(--muted)}:where(html[data-theme=dark]) .lb-step.gold .lb-medal{background:#f59e0b29;color:#fbbf24}:where(html[data-theme=dark]) .lb-step.silver .lb-medal{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .lb-step.bronze .lb-medal{background:#f9731629;color:#fdba74}:where(html[data-theme=dark]) .lb-score strong{color:var(--ink)}:where(html[data-theme=dark]) .lb-score span{color:var(--muted)}:where(html[data-theme=dark]) .lb-step.me b{color:#a78bfa}:where(html[data-theme=dark]) .lb-row:hover{background:var(--surface-2)}:where(html[data-theme=dark]) .lb-row.me{background:#8b5cf624;outline:1px solid #a78bfa59}:where(html[data-theme=dark]) .lb-rank{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .lb-rank.gold{background:#f59e0b29;color:#fbbf24}:where(html[data-theme=dark]) .lb-rank.silver{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .lb-rank.bronze{background:#f9731629;color:#fdba74}:where(html[data-theme=dark]) .lb-num b{color:var(--ink)}:where(html[data-theme=dark]) .visit-cam-status{color:var(--muted)}:where(html[data-theme=dark]) .visit-cam-status.ready{color:#34d399}:where(html[data-theme=dark]) .visit-cam-status.wait{color:#fbbf24}:where(html[data-theme=dark]) .visit-search-clear{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .visit-suggest{border:1px solid var(--line)}:where(html[data-theme=dark]) .visit-suggest button{background:var(--surface);color:var(--ink)}:where(html[data-theme=dark]) .visit-suggest button.active,:where(html[data-theme=dark]) .visit-suggest button:hover{background:#8b5cf614}:where(html[data-theme=dark]) .visit-suggest-text span{color:var(--muted)}:where(html[data-theme=dark]) .visit-suggest em.in{background:#22c55e1a;color:#34d399}:where(html[data-theme=dark]) .visit-suggest em.out{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) .visit-list-search button{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .setting-icon{background:#ef444429;color:#f87171}:where(html[data-theme=dark]) .setting-icon.on{background:#22c55e29;color:#4ade80}:where(html[data-theme=dark]) .setting-note{background:#8b5cf614;color:#c4b5fd}:where(html[data-theme=dark]) .ro-range{color:var(--muted)}:where(html[data-theme=dark]) .top-list li{border-top:1px solid var(--line)}:where(html[data-theme=dark]) .top-rank{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .top-rank.r1{background:#f59e0b29;color:#fcd34d}:where(html[data-theme=dark]) .top-rank.r2{background:var(--sunk);color:var(--ink-2)}:where(html[data-theme=dark]) .top-rank.r3{background:#f9731629;color:#fdba74}:where(html[data-theme=dark]) .top-list em{color:#c4b5fd}:where(html[data-theme=dark]) .photo-locked{background:#ef44441a;color:#f87171}:where(html[data-theme=dark]) .photo-uploading{color:#c4b5fd}:where(html[data-theme=dark]) .back-controls textarea{border:1px solid var(--line-strong);color:var(--ink)}:where(html[data-theme=dark]) .back-controls{background:var(--surface-2);border:1px solid var(--line)}:where(html[data-theme=dark]) .bulk-hint{background:#8b5cf614;color:#c4b5fd}:where(html[data-theme=dark]) .sheet-label{color:#c4b5fd}:where(html[data-theme=dark]) .visit-suggest{background:var(--surface);border:1px solid var(--line-strong)}:where(html[data-theme=dark]) .visit-suggest.empty{color:var(--muted)}:where(html[data-theme=dark]) .visit-suggest button{color:var(--ink-2)}:where(html[data-theme=dark]) .visit-suggest button.active{background:#8b5cf624;color:#c4b5fd}:where(html[data-theme=dark]) .sug-avatar{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) .sug-text small{color:var(--muted)}:where(html[data-theme=dark]) .cropper-hint{color:var(--muted)}:where(html[data-theme=dark]) .cropper-zoom{color:#c4b5fd}:where(html[data-theme=dark]) .photo-chip{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2)}:where(html[data-theme=dark]) .photo-chip.on{background:#22c55e1a;border-color:#22c55e59}:where(html[data-theme=dark]) .photo-chip.on b{color:#4ade80}:where(html[data-theme=dark]) .photo-chip.off{background:#ef44441a;border-color:#ef444459}:where(html[data-theme=dark]) .photo-chip.off b{color:#f87171}:where(html[data-theme=dark]) .eyebrow,:where(html[data-theme=dark]) .overline{color:#a78bfa}:where(html[data-theme=dark]) ::selection{color:#ede9fe}:where(html[data-theme=dark]) .loading{color:#a78bfa}:where(html[data-theme=dark]) .secondary{background:var(--surface)}:where(html[data-theme=dark]) .secondary:hover{background:#8b5cf61f;border-color:#a78bfa66;color:#ddd6fe}:where(html[data-theme=dark]) .text-button{color:#a78bfa}:where(html[data-theme=dark]) .text-button:hover{color:#ddd6fe}:where(html[data-theme=dark]) .icon-button:hover{background:#8b5cf61f;color:#a78bfa}:where(html[data-theme=dark]) .searchbox{background:var(--surface)}:where(html[data-theme=dark]) .sidebar{background:var(--surface)}:where(html[data-theme=dark]) .side-brand small{color:#a78bfa}:where(html[data-theme=dark]) .nav-item:hover{background:#8b5cf61f;color:#ddd6fe}:where(html[data-theme=dark]) .no-fine{background:#8b5cf61f;border:1px solid #a78bfa40;color:#c4b5fd}:where(html[data-theme=dark]) .no-fine b{color:#ede9fe}:where(html[data-theme=dark]) .no-fine small{color:#c4b5fd}:where(html[data-theme=dark]) .logout:hover{background:#ef44441a;color:#f87171}:where(html[data-theme=dark]) .topbar{background:var(--surface)}:where(html[data-theme=dark]) .avatar{background:#8b5cf633;color:#ddd6fe}:where(html[data-theme=dark]) .stat-icon.blue{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) .shortcut:hover{background:#8b5cf61f;border-color:#a78bfa40}:where(html[data-theme=dark]) .shortcut-icon{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) .activity-icon.borrow{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) td{border-bottom:1px solid var(--line)}:where(html[data-theme=dark]) tbody tr:hover td{background:#8b5cf612}:where(html[data-theme=dark]) .book-cover{background:#8b5cf633;color:#a78bfa}:where(html[data-theme=dark]) .soft-badge{background:#8b5cf61f;border:1px solid #a78bfa40;color:#c4b5fd}:where(html[data-theme=dark]) .shelf-tag{background:#8b5cf61f;color:#c4b5fd}:where(html[data-theme=dark]) .status.kembali{background:#8b5cf633;color:#ddd6fe}:where(html[data-theme=dark]) .report-tabs button:hover{background:#8b5cf61f;color:#c4b5fd}:where(html[data-theme=dark]) .report-tabs button.active{color:#c4b5fd}:where(html[data-theme=dark]) .mode-switch,:where(html[data-theme=dark]) .student-nav{background:var(--sunk)}:where(html[data-theme=dark]) .mode-switch button.selected,:where(html[data-theme=dark]) .student-nav button.active{background:var(--surface);color:#c4b5fd}:where(html[data-theme=dark]) .member-row.selected{background:#8b5cf61f;border-bottom-color:#a78bfa66}:where(html[data-theme=dark]) .login-panel{background:var(--surface)}:where(html[data-theme=dark]) .demo-login button{background:#8b5cf61f;border:1px solid #a78bfa40;color:#c4b5fd}:where(html[data-theme=dark]) .portal-switch a{color:#a78bfa}:where(html[data-theme=dark]) .chooser-head .overline{color:#a78bfa}:where(html[data-theme=dark]) .chooser-head h1 em{color:#a78bfa}:where(html[data-theme=dark]) .chooser-card:hover{border-color:#a78bfa66}:where(html[data-theme=dark]) .chooser-card h2{color:#c4b5fd}:where(html[data-theme=dark]) .chooser-card b,:where(html[data-theme=dark]) .chooser-card.student b,:where(html[data-theme=dark]) .chooser-card.student h2{color:#a78bfa}:where(html[data-theme=dark]) .chooser-card.student .chooser-icon,:where(html[data-theme=dark]) .chooser-icon{background:#8b5cf633;color:#c4b5fd}:where(html[data-theme=dark]) .student-top{background:var(--surface)}:where(html[data-theme=dark]) .catalog-card:hover{border-color:#a78bfa66}:where(html[data-theme=dark]) .catalog-cover{background:#8b5cf61f}:where(html[data-theme=dark]) .shelf-chips button:hover{color:#c4b5fd}:where(html[data-theme=dark]) .reserve-btn{color:#c4b5fd}}html[data-theme=dark]{--page:#0f0c1d;--surface:#17132b;--surface-2:#120f23;--sunk:#221c3d;--raised:#1d1835;--line:#2a2447;--line-strong:#3b3461;--ink:#eeebfb;--ink-2:#cfc9e8;--muted:#a49dc3;--muted-2:#7f78a1;--sh-sm:0 1px 2px #00000059;--sh-md:0 14px 30px -16px #000000b3;--sh-lg:0 30px 70px -30px #000000d9;--grad:linear-gradient(125deg,#2e1065,#4c1d95 50%,#6d28d9);color-scheme:dark}.theme-toggle{background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--v700);cursor:pointer;display:inline-grid;flex-shrink:0;height:40px;place-items:center;transition:background-color .2s,color .2s,border-color .2s,transform .15s;width:40px}.theme-toggle:hover{background:var(--v50);border-color:var(--v200);transform:translateY(-1px)}.theme-toggle:active{transform:translateY(0)}.theme-toggle:focus-visible{outline:2px solid var(--v600);outline-offset:2px}.theme-toggle-icon{animation:themeIconIn .22s ease-out;display:grid;place-items:center}.theme-toggle.floating{align-items:center;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#ffffffe0;border-radius:999px;box-shadow:0 10px 26px -14px #2e106580;display:inline-flex;font-size:12.5px;font-weight:700;gap:8px;height:42px;padding:0 14px 0 12px;position:fixed;right:16px;top:16px;width:auto;z-index:50}@keyframes themeIconIn{0%{opacity:0;transform:rotate(-60deg) scale(.7)}to{opacity:1;transform:none}}@media(max-width:640px){.theme-toggle{height:44px;width:44px}.theme-toggle.floating{height:44px;padding:0 12px;right:12px;top:12px}.theme-toggle.floating .theme-toggle-text{display:none}}@media print{.theme-toggle{display:none!important}}@media(max-width:640px){.student-user>img{display:none}.student-user{gap:6px}}@media screen{html[data-theme=dark] .theme-toggle{background:var(--raised);border-color:var(--line-strong);color:#fcd34d}html[data-theme=dark] .theme-toggle:hover{background:var(--sunk);border-color:#a78bfa73}html[data-theme=dark] .theme-toggle.floating{background:#17132bd9;box-shadow:0 10px 26px -12px #000c;color:#fcd34d}html[data-theme=dark] .theme-toggle.floating .theme-toggle-text{color:var(--ink)}html[data-theme=dark] .loading,html[data-theme=dark] .student-shell,html[data-theme=dark] body{background:var(--page)}html[data-theme=dark] ::selection{background:#6d28d9;color:#fff}:where(html[data-theme=dark]) :is(h1,h2,h3,strong){color:var(--ink)}html[data-theme=dark] .id-card h3,html[data-theme=dark] .lb-hero h2,html[data-theme=dark] .login-visual h1,html[data-theme=dark] .student-hero h1,html[data-theme=dark] .visit-stat.big strong,html[data-theme=dark] .welcome-banner h1{color:#fff}html[data-theme=dark] input::placeholder,html[data-theme=dark] textarea::placeholder{color:var(--muted-2)}html[data-theme=dark] textarea{background:var(--surface);color:var(--ink)}html[data-theme=dark] input:focus,html[data-theme=dark] select:focus,html[data-theme=dark] textarea:focus{border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf638}html[data-theme=dark] select option{background:var(--surface);color:var(--ink)}html[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.8)}html[data-theme=dark] .primary{box-shadow:0 10px 22px -12px #8b5cf6bf}html[data-theme=dark] .secondary{background:var(--raised);border-color:var(--line-strong);color:var(--ink-2)}html[data-theme=dark] .secondary:hover{background:#8b5cf629;border-color:#a78bfa73;color:#ede9fe}html[data-theme=dark] .banner-button{background:#fff;color:#5b21b6}html[data-theme=dark] .sidebar{background:var(--surface);border-right-color:var(--line)}html[data-theme=dark] .side-brand{color:var(--ink)}html[data-theme=dark] .nav-item{color:var(--muted)}html[data-theme=dark] .nav-item:hover{background:#8b5cf624;color:#ede9fe}html[data-theme=dark] .nav-item.active{background:#7c3aed;color:#fff}html[data-theme=dark] .logout:hover{background:#ef444424;color:#fca5a5}html[data-theme=dark] .student-top,html[data-theme=dark] .topbar{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#17132be0;border-bottom-color:var(--line)}html[data-theme=dark] .mobile-menu{color:var(--ink-2)}html[data-theme=dark] .logo-img,html[data-theme=dark] .student-brand img,html[data-theme=dark] .student-user img{background:#fff;border-radius:50%}html[data-theme=dark] .stat-card:hover{border-color:#a78bfa59;box-shadow:0 18px 34px -18px #000000e6}html[data-theme=dark] tbody tr:hover td{background:#8b5cf612}html[data-theme=dark] td b{color:var(--ink)}html[data-theme=dark] .mode-switch,html[data-theme=dark] .period-select,html[data-theme=dark] .student-nav{background:var(--sunk)}html[data-theme=dark] .mode-switch button.selected,html[data-theme=dark] .period-select button.active,html[data-theme=dark] .student-nav button.active{background:var(--raised);box-shadow:0 1px 2px #00000080,inset 0 0 0 1px #a78bfa4d;color:#ddd6fe}html[data-theme=dark] .report-tabs button.active{border-bottom-color:#a78bfa;color:#c4b5fd}html[data-theme=dark] .member-row.selected{background:#8b5cf624}html[data-theme=dark] .status.keluar,html[data-theme=dark] .status.kembali{background:#8b5cf633;color:#ddd6fe}html[data-theme=dark] .scanner-box h3,html[data-theme=dark] .visit-scan-idle b{color:var(--ink)}html[data-theme=dark] .crop-modal,html[data-theme=dark] .modal{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:#17132bf5;border-color:var(--line-strong)}html[data-theme=dark] .modal-backdrop{background:#05030cb3}html[data-theme=dark] .toast{background:#2e1065;border:1px solid #a78bfa59;color:#f5f3ff}html[data-theme=dark] .identity-suggest,html[data-theme=dark] .visit-suggest{background:var(--raised);border-color:var(--line-strong)}html[data-theme=dark] .visit-suggest button{background:#0000}html[data-theme=dark] .visit-suggest button.active,html[data-theme=dark] .visit-suggest button:hover{background:#8b5cf629}html[data-theme=dark] .login-panel{background:var(--page)}html[data-theme=dark] .login-visual{background:linear-gradient(135deg,#120a28f2,#4c1d95d1),url(https://images.unsplash.com/photo-1544185310-0b3cf501672b?auto=format&fit=crop&w=1400&q=80) 50%/cover}html[data-theme=dark] .login-shell.student .login-visual{background:linear-gradient(135deg,#180c34f2,#6d28d9c7),url(https://images.unsplash.com/photo-1521587760476-6c12a4b040da?auto=format&fit=crop&w=1400&q=80) 50%/cover}html[data-theme=dark] .login-logos img{background:#fff}html[data-theme=dark] .chooser{background:radial-gradient(900px 500px at 15% 0,#6d28d959 0,#6d28d900 60%),radial-gradient(800px 500px at 100% 100%,#4c1d9559 0,#4c1d9500 60%),var(--page)}html[data-theme=dark] .chooser-head h1 em{color:#c4b5fd}html[data-theme=dark] .chooser-card{background:var(--surface);border-color:var(--line)}html[data-theme=dark] .chooser-card:hover{border-color:#a78bfa80;box-shadow:0 26px 60px -28px #7c3aed99}html[data-theme=dark] .chooser-card p:not(.eyebrow){color:var(--muted)}html[data-theme=dark] .chooser-card h2,html[data-theme=dark] .chooser-card.student h2{color:#c4b5fd}html[data-theme=dark] .catalog-card{background:var(--surface);border-color:var(--line)}html[data-theme=dark] .catalog-card:hover{border-color:#a78bfa73;box-shadow:0 18px 34px -18px #000000e6}html[data-theme=dark] .catalog-cover{background:#8b5cf61f;color:#a78bfa}html[data-theme=dark] .shelf-chips button{background:var(--raised);border-color:var(--line-strong);color:var(--ink-2)}html[data-theme=dark] .shelf-chips button.active{background:#7c3aed;border-color:#7c3aed;color:#fff}html[data-theme=dark] .reserve-btn{background:#0000;border-color:#8b5cf6;color:#c4b5fd}html[data-theme=dark] .reserve-btn:hover{background:#7c3aed;color:#fff}html[data-theme=dark] .student-hero .reserve-btn{background:#fff;border-color:#fff;color:#5b21b6}html[data-theme=dark] .student-hero .reserve-btn:hover{background:#ede9fe;color:#4c1d95}html[data-theme=dark] .student-hero .reserve-btn.locked{background:#ffffff2e!important;border-color:#ffffff59!important;color:#ede9fe!important}html[data-theme=dark] .recharts-cartesian-grid line{stroke:#2a2447}html[data-theme=dark] .recharts-cartesian-axis-tick text,html[data-theme=dark] .recharts-text{fill:#a49dc3}html[data-theme=dark] .recharts-cartesian-axis-line,html[data-theme=dark] .recharts-cartesian-axis-tick-line{stroke:#3b3461}html[data-theme=dark] .recharts-default-tooltip{background:#1d1835!important;border-color:#3b3461!important;color:#eeebfb}html[data-theme=dark] .recharts-tooltip-label{color:#eeebfb}html[data-theme=dark] .recharts-legend-item-text{color:#cfc9e8!important}html[data-theme=dark] .recharts-tooltip-cursor{fill:#8b5cf61f}html[data-theme=dark] .lb-avatar{border-color:var(--surface)}html[data-theme=dark] .lb-row.me{background:#8b5cf624;outline-color:#a78bfa59}html[data-theme=dark] .lb-empty b,html[data-theme=dark] .lb-num b,html[data-theme=dark] .lb-score strong,html[data-theme=dark] .lb-step b{color:var(--ink)}html[data-theme=dark] .lb-step.me b{color:#c4b5fd}html[data-theme=dark] .bulk-print{background:#0b0916}html[data-theme=dark] .bulk-toolbar{background:var(--surface);border-bottom-color:var(--line)}html[data-theme=dark] .bulk-toolbar h3,html[data-theme=dark] .bulk-toolbar label{color:var(--ink)}html[data-theme=dark] .sidebar-backdrop{background:#05030ca6}html.theme-anim .catalog-card,html.theme-anim .chooser-card,html.theme-anim .login-panel,html.theme-anim .panel,html.theme-anim .sidebar,html.theme-anim .stat-card,html.theme-anim .student-top,html.theme-anim .topbar,html.theme-anim body{transition:background-color .25s ease,border-color .25s ease,color .25s ease}}@media (prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle-icon{animation:none!important;transition:none!important}}@media screen{.app-frame{--g-bg:#ffffffa8;--g-bg-strong:#ffffffd1;--g-border:#ffffffe6;--g-ring:#7c3aed1a;--g-shadow:0 1px 0 #ffffffe6 inset,0 18px 40px -24px #4c1d9559;--g-shadow-hover:0 1px 0 #ffffffe6 inset,0 26px 50px -24px #4c1d9573;--g-grad:linear-gradient(135deg,#8b5cf6,#7c3aed 45%,#6d28d9);--g-ease:cubic-bezier(.2,.8,.2,1);background:radial-gradient(700px 480px at 8% -6%,#c4b5fd8c,#0000 62%),radial-gradient(640px 520px at 100% 12%,#f0abfc52,#0000 60%),radial-gradient(760px 560px at 55% 110%,#a78bfa4d,#0000 60%),#f6f4fd;background-attachment:fixed;gap:0}.app-frame .sidebar{align-self:flex-start;backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);background:var(--g-bg);border:1px solid var(--g-border);border-radius:26px;box-shadow:var(--g-shadow),0 0 0 1px var(--g-ring);height:calc(100vh - 28px);margin:14px 0 14px 14px;overflow-y:auto;padding:22px 14px;position:sticky;top:14px;width:252px}.app-frame .side-brand{padding:4px 8px 28px}.app-frame .side-brand .logo-img{border-radius:12px;box-shadow:0 8px 18px -10px #4c1d9580}.app-frame .side-label{font-size:10px;font-weight:800;letter-spacing:.16em;padding:0 12px 10px}.app-frame .sidebar nav{gap:4px}.app-frame .nav-item{border-radius:14px;color:var(--muted);height:44px;padding:0 14px;position:relative;transition:background-color .25s var(--g-ease),color .25s,transform .25s var(--g-ease),box-shadow .25s}.app-frame .nav-item:hover{background:#7c3aed14;color:var(--v800);transform:translateX(3px)}.app-frame .nav-item.active{background:var(--g-grad);box-shadow:inset 0 1px 0 #ffffff59,0 12px 24px -12px #6d28d9cc;color:#fff;transform:none}.app-frame .nav-item.active svg:last-child{opacity:.8}.app-frame .side-bottom{grid-gap:4px;border-top:1px solid #7c3aed1a;display:grid;gap:4px;padding-top:14px}.app-frame .logout{border-radius:14px;height:44px;padding:0 14px}.app-frame .content{padding:14px 14px 0}.app-frame .topbar{backdrop-filter:blur(22px) saturate(160%);-webkit-backdrop-filter:blur(22px) saturate(160%);background:var(--g-bg);border:1px solid var(--g-border);border-radius:20px;box-shadow:var(--g-shadow),0 0 0 1px var(--g-ring);height:64px;padding:0 14px 0 22px;position:sticky;top:14px;z-index:4}.app-frame .top-actions{gap:12px}.app-frame .user-chip{background:#ffffffb3;border:1px solid var(--g-border);border-radius:999px;box-shadow:0 0 0 1px var(--g-ring);padding:5px 14px 5px 5px}.app-frame .avatar{background:var(--g-grad);color:#fff}.app-frame .theme-toggle{background:#ffffffbf;border-color:var(--g-border);border-radius:14px;box-shadow:0 0 0 1px var(--g-ring)}.app-frame .main-area{padding:34px 3% 64px}.app-frame .page-heading h2{font-size:34px;letter-spacing:-.03em}.app-frame .panel,.app-frame .report-summary>div,.app-frame .stat-card{background:var(--g-bg-strong);border:1px solid var(--g-border);border-radius:22px;box-shadow:var(--g-shadow),0 0 0 1px var(--g-ring)}.app-frame .stat-card{overflow:hidden;padding:20px;transition:transform .3s var(--g-ease),box-shadow .3s var(--g-ease)}.app-frame .stat-card:hover{box-shadow:var(--g-shadow-hover),0 0 0 1px #7c3aed2e;transform:translateY(-4px)}.app-frame .stat-card strong{font-size:30px;font-weight:800}.app-frame .stat-icon{border-radius:14px;box-shadow:inset 0 1px 0 #fffc;height:40px;width:40px}.app-frame .panel{padding:24px}.app-frame .welcome-banner{border-radius:28px;box-shadow:0 30px 60px -30px #4c1d95b3,inset 0 1px 0 #ffffff40}.app-frame .shortcut{background:#7c3aed0a;border:1px solid #7c3aed0f;border-radius:16px;transition:background-color .25s,border-color .25s,transform .25s var(--g-ease)}.app-frame .shortcut:hover{background:#7c3aed17;border-color:#7c3aed2e;transform:translateX(4px)}.app-frame .shortcut-icon{border-radius:12px}.app-frame .primary{background:var(--g-grad);border-radius:999px;box-shadow:inset 0 1px 0 #ffffff59,0 12px 24px -12px #6d28d9d9;font-weight:700;height:44px;letter-spacing:.01em;padding:0 20px;transition:transform .25s var(--g-ease),box-shadow .25s var(--g-ease),filter .25s}.app-frame .primary:hover{background:var(--g-grad);box-shadow:inset 0 1px 0 #ffffff59,0 18px 30px -12px #6d28d9e6;filter:brightness(1.08);transform:translateY(-2px)}.app-frame .primary:active{transform:translateY(0) scale(.98)}.app-frame .primary:disabled{filter:grayscale(.3);opacity:.6;transform:none}.app-frame .primary.full{height:48px}.app-frame .secondary{background:#ffffffbf;border:1px solid #7c3aed29;border-radius:999px;box-shadow:inset 0 1px 0 #fff,0 6px 14px -10px #4c1d9566;color:var(--ink-2);font-weight:700;height:42px;padding:0 18px;transition:background-color .25s,border-color .25s,color .25s,transform .25s var(--g-ease)}.app-frame .secondary:hover{background:#fff;border-color:#7c3aed61;color:var(--v700);transform:translateY(-2px)}.app-frame .secondary:active{transform:scale(.98)}.app-frame .banner-button{border-radius:999px;height:44px;padding:0 20px;transition:transform .25s var(--g-ease),box-shadow .25s}.app-frame .banner-button:hover{box-shadow:0 16px 30px -12px #00000073;transform:translateY(-2px)}.app-frame .text-button{border-radius:999px;padding:6px 10px;transition:background-color .2s,color .2s}.app-frame .text-button:hover{background:#7c3aed14}.app-frame .danger-icon,.app-frame .icon-button{border-radius:12px;display:inline-grid;height:36px;padding:0;place-items:center;transition:background-color .2s,color .2s,transform .2s var(--g-ease);width:36px}.app-frame .danger-icon:hover,.app-frame .icon-button:hover{transform:translateY(-1px)}.app-frame .row-actions{gap:4px}.app-frame .toolbar-buttons{gap:8px}.app-frame input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),.app-frame select,.app-frame textarea{background:#ffffffd9;border-color:#7c3aed29;border-radius:14px}.app-frame .searchbox{background:#ffffffd9;border:1px solid #7c3aed29;border-radius:999px;box-shadow:0 6px 16px -12px #4c1d9559;height:46px}.app-frame .searchbox input{background:#0000!important;border:0!important}.app-frame th{background:#7c3aed0a;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}.app-frame thead th:first-child{border-radius:12px 0 0 12px}.app-frame thead th:last-child{border-radius:0 12px 12px 0}.app-frame th{border-bottom:0}.app-frame tbody tr:hover td{background:#7c3aed0d}.app-frame .shelf-tag,.app-frame .soft-badge,.app-frame .status{border-radius:999px}.app-frame .report-tabs{background:#fff9;border-bottom:0;border:1px solid var(--g-border);border-radius:999px;box-shadow:0 0 0 1px var(--g-ring);max-width:100%;overflow-x:auto;padding:5px;width:fit-content}.app-frame .report-tabs button{border-bottom:0;border-radius:999px;padding:10px 18px;white-space:nowrap}.app-frame .report-tabs button.active{background:var(--g-grad);box-shadow:0 10px 20px -12px #6d28d9d9;color:#fff}.app-frame .mode-switch{background:#7c3aed12;border-radius:999px;padding:5px}.app-frame .mode-switch button{border-radius:999px}.app-frame .member-row{background:#0000;border-radius:14px;margin-bottom:2px}.app-frame .member-row:hover{background:#7c3aed0d}.app-frame .scanner-box{border-radius:20px}.app-frame .modal-backdrop{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#1e104659}.app-frame .modal{backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#ffffffeb;border:1px solid var(--g-border);border-radius:26px;box-shadow:0 40px 80px -30px #2e10658c;padding:26px}.app-frame .toast{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#2e1065eb;border-radius:999px;padding:13px 22px}.app-frame .main-area>*{animation:glassUp .5s var(--g-ease) both}.app-frame .main-area>:nth-child(2){animation-delay:.06s}.app-frame .stat-grid>*{animation:glassUp .5s var(--g-ease) both}.app-frame .stat-grid>:nth-child(2){animation-delay:.05s}.app-frame .stat-grid>:nth-child(3){animation-delay:.1s}.app-frame .stat-grid>:nth-child(4){animation-delay:.15s}.app-frame .stat-grid>:nth-child(5){animation-delay:.2s}html[data-theme=dark] .app-frame{--g-bg:#17132b9e;--g-bg-strong:#1a1530c7;--g-border:#a78bfa24;--g-ring:#00000040;--g-shadow:0 1px 0 #ffffff0a inset,0 22px 44px -26px #000000d9;--g-shadow-hover:0 1px 0 #ffffff0f inset,0 30px 56px -26px #000000f2;background:radial-gradient(700px 480px at 8% -6%,#6d28d959,#0000 62%),radial-gradient(640px 520px at 100% 12%,#c026d329,#0000 60%),radial-gradient(760px 560px at 55% 110%,#5b21b647,#0000 60%),#0d0a1a;background-attachment:fixed}html[data-theme=dark] .app-frame .sidebar,html[data-theme=dark] .app-frame .topbar{background:var(--g-bg);border-color:var(--g-border)}html[data-theme=dark] .app-frame .panel,html[data-theme=dark] .app-frame .report-summary>div,html[data-theme=dark] .app-frame .stat-card{background:var(--g-bg-strong);border-color:var(--g-border)}html[data-theme=dark] .app-frame .member-row:hover,html[data-theme=dark] .app-frame .nav-item:hover,html[data-theme=dark] .app-frame .text-button:hover{background:#a78bfa1a;color:#ddd6fe}html[data-theme=dark] .app-frame .nav-item.active{color:#fff}html[data-theme=dark] .app-frame .side-bottom{border-top-color:#a78bfa1f}html[data-theme=dark] .app-frame .theme-toggle,html[data-theme=dark] .app-frame .user-chip{background:#221c3db3;border-color:var(--g-border)}html[data-theme=dark] .app-frame .secondary{background:#221c3db3;border-color:#a78bfa38;box-shadow:0 6px 14px -10px #000c;color:var(--ink-2)}html[data-theme=dark] .app-frame .secondary:hover{background:#2e2652e6;border-color:#a78bfa73;color:#ede9fe}html[data-theme=dark] .app-frame .shortcut{background:#a78bfa0f;border-color:#a78bfa1a}html[data-theme=dark] .app-frame .shortcut:hover{background:#a78bfa1f;border-color:#a78bfa40}html[data-theme=dark] .app-frame .searchbox,html[data-theme=dark] .app-frame input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]),html[data-theme=dark] .app-frame select,html[data-theme=dark] .app-frame textarea{background:#120f23bf;border-color:#a78bfa33}html[data-theme=dark] .app-frame tbody tr:hover td,html[data-theme=dark] .app-frame th{background:#a78bfa12}html[data-theme=dark] .app-frame .report-tabs{background:#17132b99;border-color:var(--g-border)}html[data-theme=dark] .app-frame .report-tabs button.active{color:#fff}html[data-theme=dark] .app-frame .mode-switch{background:#a78bfa14}html[data-theme=dark] .app-frame .modal{background:#17132beb;border-color:var(--g-border)}html[data-theme=dark] .app-frame .modal-backdrop{background:#05030c99}.app-frame :is(.circulation-grid,.section-row,.member-layout,.overview-row,.stat-grid)>*{min-width:0}.app-frame select{max-width:100%;min-width:0}@media(max-width:900px){.app-frame .sidebar{width:224px}}@media(max-width:640px){.app-frame .sidebar{background:var(--g-bg-strong);height:calc(100vh - 20px);left:-260px;margin:0;position:fixed;top:10px;z-index:6}.app-frame .sidebar.mobile-open{left:10px}.app-frame .content{padding:10px 10px 0}.app-frame .topbar{border-radius:18px;height:58px;padding:0 10px 0 14px;top:10px}.app-frame .user-chip{background:#0000;border:0;box-shadow:none;padding:3px}.app-frame .main-area{padding:22px 6px 48px}.app-frame .page-heading h2{font-size:26px}.app-frame .panel{border-radius:18px;padding:16px}.app-frame .stat-card{border-radius:18px;padding:14px}.app-frame .stat-card strong{font-size:24px}.app-frame .page-heading>.primary,.app-frame .toolbar>.primary{padding:0;width:44px}}}@keyframes glassUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.app-frame *{animation:none!important;transition:none!important}}.field-label{grid-gap:8px;color:var(--ink-2);display:grid;font-size:12px;font-weight:700;gap:8px;margin-top:13px}.member-search{position:relative}.member-search .searchbox{width:100%}.member-results{animation:glassUp .18s ease-out;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:#fffffff5;border:1px solid #7c3aed29;border-radius:18px;box-shadow:0 24px 48px -20px #2e106573;left:0;max-height:320px;overflow:auto;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:3}.member-picked,.member-results button{align-items:center;background:#0000;border:0;border-radius:12px;color:var(--ink);display:flex;gap:10px;padding:8px 10px;text-align:left;width:100%}.member-results button.active{background:#7c3aed17}.member-picked b,.member-results b{display:block;font-size:13px}.member-picked small,.member-results small{color:var(--muted);display:block;font-size:11px;font-weight:500;margin-top:2px}.member-picked .avatar,.member-results .avatar{background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff;flex-shrink:0;font-size:13px;height:32px;width:32px}.member-empty{color:var(--muted);font-size:12px;font-weight:500;padding:12px}.member-picked{background:#7c3aed0f;border:1px solid #7c3aed38;border-radius:16px;padding:8px 8px 8px 10px}.member-picked>div:nth-child(2){flex:1 1;min-width:0}@media screen{html[data-theme=dark] .member-results{background:#17132bf5;border-color:#a78bfa33}html[data-theme=dark] .member-results button.active{background:#a78bfa24}html[data-theme=dark] .member-picked{background:#a78bfa14;border-color:#a78bfa40}html[data-theme=dark] .field-label{color:var(--ink-2)}}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),select{padding-left:16px;padding-right:16px}select{padding-right:36px}textarea{padding:12px 16px}.app-frame input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),.app-frame select{height:46px}.searchbox{gap:10px;padding-left:16px!important;padding-right:16px!important}.searchbox input{height:100%;padding:0!important}.visit-search-input input{padding-left:40px!important;padding-right:36px!important}.visit-list-search input{padding-left:36px!important;padding-right:32px!important}.class-list{grid-gap:8px;display:grid;gap:8px}.class-search{margin-bottom:2px;width:100%}.class-summary{color:var(--muted);font-size:11.5px;font-weight:600;margin:2px 4px 4px}.class-empty{padding:10px 4px}.class-group{background:#ffffff8c;border:1px solid #7c3aed1f;border-radius:16px;overflow:hidden;transition:border-color .25s,box-shadow .25s}.class-group.open{border-color:#7c3aed47;box-shadow:0 12px 26px -20px #4c1d9580}.class-head{align-items:center;background:#0000;border:0;color:var(--ink);display:flex;gap:12px;padding:11px 14px;text-align:left;transition:background-color .2s;width:100%}.class-head:hover{background:#7c3aed0f}.class-icon{background:#7c3aed1a;border-radius:11px;color:#7c3aed;display:grid;flex-shrink:0;height:34px;place-items:center;width:34px}.class-group.open .class-icon{background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff}.class-name{flex:1 1;min-width:0}.class-name small{color:var(--muted);display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.class-name b{display:block;font-size:14px;margin-top:1px}.class-count{background:#7c3aed1a;border-radius:999px;color:#6d28d9;font-size:11px;font-weight:700;padding:4px 10px;white-space:nowrap}.class-chevron{color:var(--muted);transition:transform .25s}.class-group.open .class-chevron{transform:rotate(180deg)}.class-body{animation:glassUp .2s ease-out;border-top:1px solid #7c3aed1a;padding:4px 8px 8px}@media screen{html[data-theme=dark] .class-group{background:#17132b80;border-color:#a78bfa29}html[data-theme=dark] .class-group.open{border-color:#a78bfa52}html[data-theme=dark] .class-head:hover{background:#a78bfa14}html[data-theme=dark] .class-count,html[data-theme=dark] .class-icon{background:#a78bfa24;color:#c4b5fd}html[data-theme=dark] .class-body{border-top-color:#a78bfa24}}.class-head-row{align-items:center;display:flex;gap:6px;padding-right:10px}.class-head-row .class-head{flex:1 1;min-width:0}.photo-filter{display:flex;flex-wrap:wrap;gap:6px;margin:2px 2px 0}.photo-filter button{align-items:center;background:#fff;border:1px solid #e2e8f0;border:1px solid var(--line,#e2e8f0);border-radius:999px;color:#475569;cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:700;gap:5px;padding:6px 12px;transition:background .15s,color .15s,border-color .15s}.photo-filter button:hover:not(:disabled){border-color:#c4b5fd;color:#6d28d9}.photo-filter button.active{background:#7c3aed;border-color:#7c3aed;color:#fff}.photo-filter button.warn b{background:#fef3c7;border-radius:999px;color:#b45309;font-size:11px;padding:0 7px}.photo-filter button.warn.active{background:#d97706;border-color:#d97706;color:#fff}.photo-filter button.warn.active b{background:#ffffff40;color:#fff}.photo-filter button:disabled{cursor:not-allowed;opacity:.5}.no-photo-text{color:#b45309;font-weight:700}.photo-done-text{color:#15803d;font-weight:700}.class-photo-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:10.5px;font-weight:700;gap:4px;padding:4px 9px;white-space:nowrap}.class-photo-badge.missing{background:#fef3c7;border:1px solid #fde68a;color:#b45309}.class-photo-badge.done{background:#dcfce7;border:1px solid #bbf7d0;color:#15803d}.avatar.no-photo{outline:2px dashed #f59e0b;outline-offset:1px}.member-row-text em.no-photo-tag{align-items:center;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;color:#b45309;display:inline-flex;font-size:10px;font-style:normal;font-weight:700;gap:3px;margin-top:4px;padding:2px 6px;width:fit-content}html[data-theme=dark] .photo-filter button{background:#1e1b2e;background:var(--surface,#1e1b2e);border-color:#3b3552;border-color:var(--line,#3b3552);color:#cbd5e1;color:var(--ink-2,#cbd5e1)}html[data-theme=dark] .photo-filter button.active{background:#7c3aed;border-color:#7c3aed;color:#fff}html[data-theme=dark] .photo-filter button.warn.active{background:#d97706;border-color:#d97706}html[data-theme=dark] .photo-filter button.warn b{background:#f59e0b2e;color:#fcd34d}html[data-theme=dark] .class-photo-badge.missing,html[data-theme=dark] .member-row-text em.no-photo-tag{background:#f59e0b24;border-color:#f59e0b59;color:#fcd34d}html[data-theme=dark] .class-photo-badge.done{background:#22c55e24;border-color:#22c55e4d;color:#86efac}html[data-theme=dark] .no-photo-text{color:#fcd34d}html[data-theme=dark] .photo-done-text{color:#86efac}@media(max-width:640px){.class-photo-badge{font-size:0;padding:5px}.class-photo-badge svg{margin:0}}.report-bar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:23px}.report-bar .report-tabs{flex:1 1 auto;margin-bottom:0;min-width:0}.report-print-btn{flex-shrink:0}.app-frame .download-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.app-frame .download-row>button{font-size:13px;height:42px;justify-content:center;min-width:104px;padding:0 18px}@media screen{.app-frame .report-bar .report-tabs{border:1px solid #7c3aed2e;border-radius:22px;box-shadow:inset 0 1px 0 #ffffffe6,0 10px 24px -18px #4c1d9566;display:flex;flex-wrap:wrap;gap:4px;overflow:visible;padding:6px;width:auto}.app-frame .report-bar .report-tabs button{border-radius:16px;padding:10px 18px}html[data-theme=dark] .app-frame .report-bar .report-tabs{border-color:#a78bfa47;box-shadow:0 10px 24px -18px #000c}}.print-sign{display:none}@media print{body.report-print{background:#fff!important;font-size:10pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}body.report-print .app-frame{background:#fff!important;display:block!important;min-height:0}body.report-print .download-row,body.report-print .leaderboard-actions,body.report-print .modal-backdrop,body.report-print .page-heading,body.report-print .period-select,body.report-print .report-bar,body.report-print .ro-filters,body.report-print .sidebar,body.report-print .toast,body.report-print .topbar,body.report-print button{display:none!important}body.report-print .content,body.report-print .main-area{margin:0!important;max-width:none!important;padding:0!important;width:100%!important}body.report-print *{animation:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;text-shadow:none!important;transition:none!important}body.report-print .main-area>*{opacity:1!important;transform:none!important}body.report-print .print-header{align-items:center;border-bottom:2.5px double #1e293b;display:flex!important;gap:12px;margin-bottom:14px;padding-bottom:10px}body.report-print .print-header>div{flex:1 1;text-align:center}body.report-print .print-header img{height:54px;object-fit:contain;width:54px}body.report-print .print-header b{color:#0f172a;display:block;font-size:13pt;letter-spacing:.02em}body.report-print .print-header small{color:#334155;display:block;font-size:9pt;margin-top:3px}body.report-print .print-header .print-title{color:#0f172a;display:block;font-size:11pt;font-weight:700;margin-top:6px;text-transform:uppercase}body.report-print .panel,body.report-print .report-summary>div,body.report-print .stat-card{background:#fff!important;border:1px solid #cbd5e1!important;border-radius:6px!important;color:#0f172a!important;padding:10px 12px!important}body.report-print .report-summary{grid-gap:8px;display:grid!important;gap:8px;grid-template-columns:repeat(3,1fr);margin-bottom:12px}body.report-print .report-summary b{font-size:16pt!important;margin:3px 0!important}body.report-print .stat-grid{grid-gap:8px!important;display:grid!important;gap:8px!important;grid-template-columns:repeat(5,1fr)!important;margin-bottom:10px}body.report-print .stat-grid:not(.five){grid-template-columns:repeat(4,1fr)!important}body.report-print .stat-card strong{font-size:15pt!important}body.report-print .stat-icon{display:none!important}body.report-print .ro-charts{grid-gap:8px!important;display:grid!important;gap:8px!important;grid-template-columns:1fr 1fr!important;margin-bottom:8px}body.report-print .panel,body.report-print .ro-charts>*{break-inside:avoid;page-break-inside:avoid}body.report-print .table-panel{border:0!important;break-inside:auto;padding:0!important;page-break-inside:auto}body.report-print .panel-title{margin-bottom:8px}body.report-print .panel-title h3{font-size:11pt}body.report-print .eyebrow{font-size:7.5pt}body.report-print .table-wrap{max-height:none!important;overflow:visible!important}body.report-print table{border-collapse:collapse!important;font-size:8.5pt!important;min-width:0!important;table-layout:auto;width:100%!important}body.report-print thead{display:table-header-group}body.report-print tr{break-inside:avoid;page-break-inside:avoid}body.report-print th{background:#eef2f7!important;border:1px solid #94a3b8!important;border-radius:0!important;color:#0f172a!important;font-size:7.5pt!important;padding:5px 6px!important;position:static!important}body.report-print td{background:#fff!important;border:1px solid #cbd5e1!important;color:#0f172a!important;padding:4px 6px!important;vertical-align:top}body.report-print .status{background:none!important;border:0!important;color:#0f172a!important;font-weight:600;padding:0!important}body.report-print .print-sign{break-inside:avoid;display:flex!important;justify-content:flex-end;margin-top:22px;page-break-inside:avoid}body.report-print .print-sign>div{grid-gap:3px;display:grid;font-size:10pt;gap:3px;min-width:220px;text-align:center}body.report-print .print-sign b{font-weight:600;margin-top:56px}}body.report-print .main-area{box-sizing:border-box!important;margin:0!important;padding:0!important}body.report-print.print-portrait .main-area{max-width:186mm!important;width:186mm!important}body.report-print.print-landscape .main-area{max-width:273mm!important;width:273mm!important}body.report-print .main-area *{min-width:0}body.report-print .recharts-tooltip-wrapper{display:none!important}body.report-print.print-portrait .stat-grid,body.report-print.print-portrait .stat-grid:not(.five){grid-template-columns:repeat(3,1fr)!important}body.report-print.print-portrait .stats-kpis{grid-gap:8px!important;display:grid!important;gap:8px!important;grid-template-columns:repeat(2,1fr)!important}body.report-print.print-portrait .lb-grid,body.report-print.print-portrait .ro-charts,body.report-print.print-portrait .stats-grid{grid-gap:8px!important;display:grid!important;gap:8px!important;grid-template-columns:minmax(0,1fr)!important}body.report-print.print-landscape .stat-grid{grid-template-columns:repeat(5,1fr)!important}body.report-print.print-landscape .stat-grid:not(.five){grid-template-columns:repeat(4,1fr)!important}body.report-print.print-landscape .stats-kpis{grid-gap:8px!important;display:grid!important;gap:8px!important;grid-template-columns:repeat(4,1fr)!important}body.report-print.print-landscape .lb-grid,body.report-print.print-landscape .ro-charts{grid-gap:8px!important;display:grid!important;gap:8px!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}body.report-print.print-landscape .stats-grid{grid-gap:8px!important;display:grid!important;gap:8px!important;grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr)!important}body.report-print.print-landscape .panel div:has(>.recharts-responsive-container){height:190px!important}@media print{body.report-print .content,body.report-print .main-area{overflow:visible!important}body.report-print .main-area{max-width:100%!important;width:100%!important}body.report-print td,body.report-print th{overflow-wrap:anywhere;white-space:normal!important;word-break:break-word}body.report-print td *{white-space:normal!important}body.report-print td .inline-pct span{white-space:nowrap!important}body.report-print .lb-hero{background:#fff!important;border:1px solid #cbd5e1!important;color:#0f172a!important;padding:10px 12px!important}body.report-print .lb-hero:after{display:none!important}body.report-print .lb-hero h2{color:#0f172a!important;max-width:none!important}body.report-print .lb-hero .eyebrow,body.report-print .lb-hero p{color:#334155!important}body.report-print .lb-hero-actions{display:none!important}body.report-print.print-portrait{font-size:9.5pt}body.report-print.print-portrait table{font-size:8pt!important}body.report-print.print-portrait th{font-size:7pt!important;padding:4px 5px!important}body.report-print.print-portrait td{padding:3px 5px!important}body.report-print.print-portrait .report-summary b{font-size:14pt!important}body.report-print.print-portrait .print-header b{font-size:12pt}body.report-print.print-portrait .print-header img{height:46px;width:46px}body.report-print.print-landscape{font-size:10pt}body.report-print.print-landscape table{font-size:9pt!important}}.qrb-controls{background:#fff;border:1px solid #e2e8f0;border-radius:14px;display:flex;flex-direction:column;gap:12px;margin:16px auto 0;max-width:210mm;padding:14px 16px;width:calc(100% - 32px)}.qrb-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.qrb-seg{background:#f5f3ff;border:1px solid #7c3aed38;border-radius:12px;display:inline-flex;gap:4px;padding:4px}.qrb-seg>button{background:#f5f3ff;border:0;border-radius:9px;box-shadow:none;color:#6d28d9;cursor:pointer;font-size:13px;font-weight:700;height:36px;padding:0 14px}.qrb-seg>button:hover{background:#ede9fe}.qrb-seg>button.active,.qrb-seg>button.active:hover{background:#7c3aed;box-shadow:0 6px 14px -6px #7c3aedb3;color:#fff}.qrb-field{align-items:center;color:#334155;display:flex;flex-direction:row;font-size:13px;font-weight:600;gap:8px}.qrb-field select{height:38px;min-width:150px}.qrb-check{align-items:center;color:#334155;cursor:pointer;display:flex;flex-direction:row;font-size:13px;font-weight:600;gap:7px}.qrb-check input{accent-color:#7c3aed;height:16px;width:16px}.qrb-picker{display:flex;flex-direction:column;gap:10px}.qrb-picker-head{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.qrb-picker-head .searchbox{flex:1 1;min-width:200px}.qrb-list{grid-gap:6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));max-height:280px;overflow:auto;padding:6px}.qrb-item{align-items:flex-start;background:#fff;border:1px solid #e2e8f0;border-radius:9px;box-shadow:none;color:#64748b;cursor:pointer;display:flex;gap:9px;padding:9px 10px;text-align:left;transition:border-color .15s,background .15s}.qrb-item:hover{border-color:#c4b5fd}.qrb-item.on{background:#f5f3ff;border-color:#7c3aed;color:#7c3aed}.qrb-item svg{flex-shrink:0;margin-top:1px}.qrb-item-text{display:flex;flex-direction:column;min-width:0}.qrb-item-text b{color:#0f172a;font-size:13px}.qrb-item-text b,.qrb-item-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qrb-item-text small{color:#64748b;font-size:11px}.qrb-empty{grid-column:1/-1;padding:16px;text-align:center}.qrb-controls .bulk-hint{margin:0;max-width:none}.qrb-none{padding:40px 16px;text-align:center}.qrb-sheet{grid-gap:0;align-content:start;box-shadow:0 10px 30px #0f172a22;display:grid;gap:0;grid-auto-rows:46.5mm;grid-template-columns:repeat(4,48mm);margin:20px auto;min-height:297mm;padding:6mm 5mm;width:210mm}.qrb-label,.qrb-sheet{background:#fff;box-sizing:border-box;justify-content:center}.qrb-label{align-items:center;border:1px dashed #cbd5e1;break-inside:avoid;color:#0f172a;display:flex;flex-direction:column;gap:1.5mm;overflow:hidden;padding:2.5mm 3mm;page-break-inside:avoid;text-align:center}.qrb-qr{flex-shrink:0;height:27mm!important;width:27mm!important}.qrb-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#0f172a;display:-webkit-box;font-size:8.5pt;font-weight:700;line-height:1.2;max-width:100%;overflow:hidden;word-break:break-word}.qrb-meta{color:#475569;font-size:7pt;line-height:1.2}@media(max-width:640px){.qrb-field{width:100%}.qrb-field select{flex:1 1}.qrb-sheet{zoom:.45}}html[data-theme=dark] .qrb-controls{background:#1a1630;background:var(--surface,#1a1630);border-color:#a78bfa40}html[data-theme=dark] .qrb-seg{background:#1f1a38;border-color:#a78bfa4d}html[data-theme=dark] .qrb-seg>button{background:#1f1a38;color:#c4b5fd}html[data-theme=dark] .qrb-seg>button:hover{background:#2a2350}html[data-theme=dark] .qrb-seg>button.active{background:#7c3aed;color:#fff}html[data-theme=dark] .qrb-check,html[data-theme=dark] .qrb-field{color:#e2e0f5}html[data-theme=dark] .qrb-list{background:#15122a;border-color:#a78bfa33}html[data-theme=dark] .qrb-item{background:#1f1a38;border-color:#a78bfa33;color:#a5a0c8}html[data-theme=dark] .qrb-item.on{background:#7c3aed38;border-color:#8b5cf6;color:#c4b5fd}html[data-theme=dark] .qrb-item-text b{color:#f1effa}html[data-theme=dark] .qrb-item-text small{color:#a5a0c8}html[data-theme=dark] .qrb-label,html[data-theme=dark] .qrb-sheet{background:#fff!important;color:#0f172a!important}html[data-theme=dark] .qrb-title{color:#0f172a!important}html[data-theme=dark] .qrb-meta{color:#475569!important}@media print{.qrb-controls,.qrb-none{display:none!important}.qrb-sheet{zoom:1;box-shadow:none;break-after:page;height:297mm;margin:0;min-height:0;padding:6mm 5mm;page-break-after:always;width:210mm}.qrb-sheet:last-child{break-after:auto;page-break-after:auto}.qrb-label{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.restore-progress{display:flex;flex-direction:column;gap:6px;margin-top:10px}.restore-progress-track{background:#ede9fe;border-radius:999px;height:10px;overflow:hidden}.restore-progress-track>div{background:linear-gradient(90deg,#7c3aed,#a855f7);border-radius:999px;height:100%;transition:width .3s ease}.restore-progress-track>div.busy{animation:restoreStripe 1s linear infinite;background:repeating-linear-gradient(45deg,#7c3aed 0 12px,#a855f7 12px 24px);background-size:34px 34px}@keyframes restoreStripe{to{background-position:34px 0}}.restore-progress.done .restore-progress-track>div{background:#16a34a}.restore-progress.error .restore-progress-track{background:#fee2e2}.restore-progress.error .account-hint{color:#b91c1c;font-weight:600}html[data-theme=dark] .restore-progress-track{background:#8b5cf633}html[data-theme=dark] .restore-progress.error .account-hint{color:#fca5a5}.id-card.font-shrikhand{font-family:Shrikhand,Georgia,serif}.id-card.font-anton{font-family:Anton,Impact,Arial Narrow,sans-serif;letter-spacing:.02em}.id-card.font-adumu{font-family:Adumu,Impact,sans-serif;letter-spacing:.02em}.id-card.font-elmessiri{font-family:El Messiri,Georgia,serif}.id-card.font-dmsans{font-family:DM Sans,Inter,system-ui,sans-serif}.id-card .ff-modern{font-family:Outfit,Inter,system-ui,sans-serif!important}.id-card .ff-klasik{font-family:Georgia,Times New Roman,serif!important}.id-card .ff-elegan{font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif!important}.id-card .ff-mono{font-family:Courier New,ui-monospace,monospace!important}.id-card .ff-shrikhand{font-family:Shrikhand,Georgia,serif!important}.id-card .ff-anton{font-family:Anton,Impact,sans-serif!important;letter-spacing:.02em}.id-card .ff-adumu{font-family:Adumu,Impact,sans-serif!important;letter-spacing:.02em}.id-card .ff-elmessiri{font-family:El Messiri,Georgia,serif!important}.id-card .ff-dmsans{font-family:DM Sans,Inter,sans-serif!important}.id-card .card-field em,.id-card .card-field i{font-family:inherit}.font-prev-modern span{font-family:Outfit,Inter,sans-serif}.font-prev-klasik span{font-family:Georgia,Times New Roman,serif}.font-prev-elegan span{font-family:Palatino Linotype,Palatino,Georgia,serif}.font-prev-mono span{font-family:Courier New,monospace}.font-prev-shrikhand span{font-family:Shrikhand,serif}.font-prev-anton span{font-family:Anton,Impact,sans-serif}.font-prev-adumu span{font-family:Adumu,Impact,sans-serif}.font-prev-elmessiri span{font-family:El Messiri,serif}.font-prev-dmsans span{font-family:DM Sans,sans-serif}.id-card.fs-on{--fbase:11px}.id-card.fs-on.size-kecil{--fbase:10px}.id-card.fs-on.size-besar{--fbase:13px}.id-card.fs-on .id-card-body .card-identity p.card-field-class{font-size:calc(var(--fbase)*1);font-size:calc(var(--fbase)*var(--k-class,1))}.id-card.fs-on .id-card-body .card-identity p.card-field-nis{font-size:calc(var(--fbase)*1);font-size:calc(var(--fbase)*var(--k-nis,1))}.id-card.fs-on .id-card-body .photo{font-size:30px;font-size:calc(30px*var(--photo-k,1));height:87px;height:calc(87px*var(--photo-k,1));width:75px;width:calc(75px*var(--photo-k,1))}.id-card.fs-on.layout-modern .id-card-body .photo{height:98px;height:calc(98px*var(--photo-k,1));width:84px;width:calc(84px*var(--photo-k,1))}.id-card.fs-on.layout-portrait .id-card-body .photo{font-size:40px;font-size:calc(40px*var(--photo-k,1));height:120px;height:calc(120px*var(--photo-k,1));width:104px;width:calc(104px*var(--photo-k,1))}.id-card.shape-kotak .photo,.id-card.shape-kotak .photo img{border-radius:0!important}.id-card.shape-membulat .photo,.id-card.shape-membulat .photo img{border-radius:9px!important}.id-card.shape-bulat .photo,.id-card.shape-bulat .photo img{border-radius:50%!important}.id-card.fs-on.shape-bulat .id-card-body .photo{height:75px;height:calc(75px*var(--photo-k,1))}.id-card.fs-on.shape-bulat.layout-modern .id-card-body .photo{height:84px;height:calc(84px*var(--photo-k,1))}.id-card.fs-on.shape-bulat.layout-portrait .id-card-body .photo{height:104px;height:calc(104px*var(--photo-k,1))}.id-card.photo-atas .id-card-body{align-items:center;flex-direction:column;gap:10px;text-align:center}.id-card.photo-atas .card-identity{width:100%}.id-card.photo-atas .card-identity .card-field{justify-content:center}.id-card.photo-atas .card-identity .card-field i{min-width:0}.print-slot .id-card.photo-atas .id-card-body{gap:6px;padding:8px 0}.print-slot .id-card.fs-on.photo-atas .id-card-body .photo{height:66px;height:calc(66px*var(--photo-k,1));width:58px;width:calc(58px*var(--photo-k,1))}.print-slot .id-card.fs-on.photo-atas.shape-bulat .id-card-body .photo{height:58px;height:calc(58px*var(--photo-k,1))}.bulk-print .id-card .card-field-class,.bulk-print .id-card .card-field[data-testid=card-class]{display:none!important}.designer.dz{gap:22px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dz .designer-preview{grid-gap:10px;align-content:start;display:grid;gap:10px}.dz .designer-preview .id-card,.dz-note{margin-top:0}.dz-note{font-size:11px}.dz .designer-controls{display:flex;flex-direction:column;gap:12px;min-width:0}.dz-tabs{grid-gap:4px;background:#f1f5f9;border-radius:10px;display:grid;gap:4px;grid-template-columns:repeat(4,1fr);padding:4px}.dz-tabs button{align-items:center;background:#0000;border:0;border-radius:7px;color:#64748b;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px;justify-content:center;padding:9px 6px;white-space:nowrap}.dz-tabs button.active{background:#fff;box-shadow:0 1px 3px #0f172a1a;color:#6d28d9}.dz-pane{grid-gap:14px;align-content:start;display:grid;gap:14px;max-height:min(58vh,560px);overflow:auto;padding:2px 4px 2px 0}.dz-field{grid-gap:7px;display:grid;gap:7px}.dz-field .control-label small{font-weight:500}.dz-grid2{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.dz-seg{display:flex;flex-wrap:wrap;gap:6px}.dz-seg .pill-option{padding:7px 12px}.layout-option.active,.pill-option.active{background:#f5f3ff;border-color:#7c3aed;color:#6d28d9}.dz-wrap{gap:6px}.dz-wrap .pill-option{padding:7px 12px}.dz .layout-options{gap:6px}.dz .layout-option{padding:8px}.dz-fonts{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr))}.dz-font{grid-gap:1px;background:#fff;border:1px solid #e2e8f0;border-radius:9px;cursor:pointer;display:grid;gap:1px;justify-items:center;padding:7px 6px;transition:border-color .15s,background .15s}.dz-font span{color:#1e1b4b;font-size:19px;line-height:1.15}.dz-font small{color:#64748b;font-size:10px;line-height:1.2;text-align:center}.dz-font:hover{border-color:#c4b5fd}.dz-font.active{background:#f5f3ff;border-color:#7c3aed;box-shadow:0 0 0 2px #ede9fe}.dz-toggles{gap:8px;grid-template-columns:1fr 1fr}.dz-toggles .toggle{font-size:12px}.dz-toggles .toggle input{accent-color:#7c3aed}.dz-box{grid-gap:12px;background:#fbfaff;border:1px solid #ede9fe;border-radius:12px;display:grid;gap:12px;padding:12px}.dz-box-title{color:#7c3aed;font-size:10px;font-weight:800;letter-spacing:.12em;margin:0;text-transform:uppercase}.dz-range{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto auto}.dz-range .range-input{background:#ede9fe;min-width:0;width:100%}.dz-range .range-input::-webkit-slider-thumb{background:#7c3aed}.dz-range .range-input::-moz-range-thumb{background:#7c3aed}.dz-logos{grid-template-columns:1fr}.dz-logos .photo-box{margin:0}.dz-footer{border-top:1px solid #f1f5f9;display:flex;gap:8px;justify-content:flex-end;padding-top:12px}.dz-footer .primary{flex:1 1}.dz .ct-group{grid-gap:8px;background:#0000;border:0;display:grid;gap:8px;padding:0}.dz .ct-title{align-items:center;display:flex;gap:8px;justify-content:space-between}.dz .ct-title small{font-size:11px;margin:0}.dz .ct-row{gap:6px;padding:9px 10px}.dz .ct-row.is-hidden{background:#f8fafc;opacity:.6}.dz .ct-row textarea{border:1px solid #cbd5e1;border-radius:8px;font:inherit;font-size:13px;padding:8px 11px;resize:vertical;width:100%}.dz .ct-row input:not([type=checkbox]){height:36px}.ct-show{align-items:center;color:#64748b!important;cursor:pointer;display:inline-flex!important;font-size:11px!important;font-weight:600!important;gap:5px;grid-template-columns:none!important;margin-left:auto}.ct-show input{accent-color:#7c3aed;height:15px!important;width:15px}.ct-tools{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto}.ct-font{font-size:12px!important;height:34px!important;min-width:0;padding:0 8px!important}.ct-stepper{align-items:center;display:inline-flex;gap:4px}.ct-stepper .ct-step{height:30px;width:30px}.ct-stepper .ct-val,.dz-range .ct-val{background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;height:30px;min-width:52px;padding:0 6px}.ct-step:disabled,.ct-val:disabled{cursor:default;opacity:.45}html[data-theme=dark] .dz-tabs{background:#1b1638}html[data-theme=dark] .dz-tabs button{color:#a5a0c8}html[data-theme=dark] .dz-tabs button.active{background:#2a2350;color:#ddd6fe}html[data-theme=dark] .dz-font{background:#221c45;border-color:#342c63}html[data-theme=dark] .dz-font span{color:#ede9fe}html[data-theme=dark] .dz-font.active{background:#2f2762;border-color:#8b5cf6;box-shadow:none}html[data-theme=dark] .dz-box{background:#1b1638;border-color:#2f2858}html[data-theme=dark] .dz-footer{border-color:#2f2858}html[data-theme=dark] .dz .ct-row.is-hidden{background:#1b1638}html[data-theme=dark] .ct-stepper .ct-val,html[data-theme=dark] .dz-range .ct-val{background:#221c45;border-color:#342c63}html[data-theme=dark] .dz .ct-row textarea{background:#1b1638;border-color:#342c63;color:#ede9fe}@media(max-width:760px){.designer.dz{grid-template-columns:1fr}.dz .designer-preview{position:static}.dz-pane{max-height:none;overflow:visible}.dz-tabs button{font-size:11px;padding:8px 4px}.dz-tabs button svg{display:none}.dz-grid2,.dz-toggles{grid-template-columns:1fr}.dz-fonts{grid-template-columns:repeat(3,minmax(0,1fr))}.dz-footer{background:#fff;bottom:-23px;padding-bottom:6px;position:sticky}html[data-theme=dark] .dz-footer{background:#17132e}}.offline-bar{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;margin-bottom:16px;padding:10px 14px;transition:background .25s,border-color .25s}.offline-bar.is-offline{background:#fffbeb;border-color:#fcd34d}.offline-bar.is-syncing{background:#f5f3ff;border-color:#c4b5fd}.ob-main{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.ob-icon{background:#dcfce7;border-radius:9px;color:#15803d;display:grid;flex-shrink:0;height:32px;place-items:center;width:32px}.is-offline .ob-icon{background:#fef3c7;color:#b45309}.is-syncing .ob-icon{background:#ede9fe;color:#6d28d9}.ob-text{grid-gap:2px;display:grid;flex:1 1;gap:2px;min-width:180px}.ob-text b{align-items:center;color:#14532d;display:flex;font-size:13px;gap:7px}.is-offline .ob-text b{color:#92400e}.is-syncing .ob-text b{color:#5b21b6}.ob-text small{color:#475569;font-size:11.5px}.ob-dot{background:#22c55e;border-radius:50%;box-shadow:0 0 0 3px #22c55e33;display:inline-block;height:8px;width:8px}.is-offline .ob-dot{animation:obPulse 1.6s infinite;background:#f59e0b;box-shadow:0 0 0 3px #f59e0b33}.is-syncing .ob-dot{background:#8b5cf6;box-shadow:0 0 0 3px #8b5cf633}@keyframes obPulse{50%{opacity:.35}}.ob-chip{align-items:center;background:#fef3c7;border-radius:20px;color:#92400e;display:inline-flex;font-size:11px;font-weight:700;gap:5px;padding:5px 10px}.ob-actions{align-items:center;display:flex;gap:8px}.ob-link{align-items:center;background:#0000;border:0;color:#6d28d9;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:4px;padding:6px 4px}.ob-link .rot{transform:rotate(180deg)}.ob-btn{align-items:center;background:#7c3aed;border:0;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:6px;padding:8px 12px}.ob-btn:disabled{cursor:default;opacity:.55}.spin{animation:obSpin 1s linear infinite}@keyframes obSpin{to{transform:rotate(1turn)}}.ob-list{grid-gap:6px;border-top:1px dashed #e2e8f0;display:grid;gap:6px;margin-top:10px;max-height:380px;overflow:auto;padding-top:8px}.ob-item{grid-gap:10px;align-items:center;background:#fff;border:1px solid #eef2f7;border-radius:8px;display:grid;font-size:12px;gap:10px;grid-template-columns:auto 1fr auto auto;padding:7px 10px}.ob-item em{background:#f5f3ff;border-radius:6px;color:#6d28d9;font-size:10px;font-style:normal;font-weight:800;letter-spacing:.06em;padding:3px 7px;text-transform:uppercase}.ob-item span{color:#334155;min-width:0;overflow:hidden;text-overflow:ellipsis}.ob-item time{color:#94a3b8;font-size:11px}.ob-item.bad em{background:#fee2e2;color:#b91c1c}.ob-item.bad i{color:#b91c1c;font-style:normal}.ob-empty{color:#64748b;font-size:12px;margin:0}.ob-dropped{grid-gap:6px;display:grid;gap:6px;margin-top:4px}.ob-dropped-head{align-items:center;color:#b91c1c;display:flex;font-size:12px;justify-content:space-between}.ob-dropped-head b{align-items:center;display:inline-flex;gap:6px}.ob-section-head{align-items:center;color:#5b21b6;display:flex;font-size:12px;justify-content:space-between}.ob-section-head small{color:#94a3b8;font-size:11px}.ob-hint{color:#64748b;font-size:11.5px;line-height:1.45;margin:0}.ob-meta{color:#94a3b8;display:block;font-size:10.5px;margin-top:2px}.ob-item.bad{background:snow;border-color:#fecaca;grid-template-columns:auto 1fr auto}.ob-item-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.ob-mini{align-items:center;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:7px;color:#6d28d9;cursor:pointer;display:inline-flex;font-size:11px;font-weight:700;gap:4px;min-height:30px;padding:6px 9px;transition:transform .15s ease,opacity .15s ease;white-space:nowrap}.ob-mini:hover:not(:disabled){transform:translateY(-1px)}.ob-mini:active:not(:disabled){transform:translateY(0)}.ob-mini:focus-visible{outline:2px solid #7c3aed;outline-offset:2px}.ob-mini:disabled{cursor:default;opacity:.5}.ob-mini.danger{background:#fff5f5;border-color:#fecaca;color:#b91c1c}.ob-mini.danger.confirm{background:#b91c1c;border-color:#b91c1c;color:#fff}.ob-chip.bad{background:#fee2e2;border:0;color:#b91c1c;cursor:pointer}.ob-msg{background:#f5f3ff;border-radius:8px;color:#5b21b6;font-size:12px;font-weight:600;margin:0;padding:7px 10px}.ob-msg.ok{background:#dcfce7;color:#166534}.ob-msg.warn{background:#fef3c7;color:#92400e}.ob-msg.bad{background:#fee2e2;color:#b91c1c}.pending-tag{align-items:center;background:#fef3c7;border-radius:20px;color:#b45309;display:inline-flex;font-size:10px;font-weight:700;gap:4px;margin-left:6px;padding:3px 8px;vertical-align:middle;white-space:nowrap}tr.row-pending td{background:#fffdf5}.visit-result .offline-note{align-items:center;background:#fef3c7;border-radius:20px;color:#b45309;display:inline-flex;font-size:11px;font-weight:700;gap:4px;margin-top:5px;padding:2px 8px}html[data-theme=dark] .offline-bar{background:#0f2a1c;border-color:#166534}html[data-theme=dark] .offline-bar.is-offline{background:#2a1f08;border-color:#92400e}html[data-theme=dark] .offline-bar.is-syncing{background:#1e1838;border-color:#5b21b6}html[data-theme=dark] .ob-text b{color:#bbf7d0}html[data-theme=dark] .is-offline .ob-text b{color:#fde68a}html[data-theme=dark] .is-syncing .ob-text b{color:#ddd6fe}html[data-theme=dark] .ob-text small{color:#cbd5e1}html[data-theme=dark] .ob-item{background:#1b1638;border-color:#2f2858}html[data-theme=dark] .ob-item span{color:#e2e8f0}html[data-theme=dark] .ob-item.bad{background:#2a1218;border-color:#7f1d1d}html[data-theme=dark] .ob-mini{background:#251d4a;border-color:#4c1d95;color:#ddd6fe}html[data-theme=dark] .ob-mini.danger{background:#2a1218;border-color:#7f1d1d;color:#fca5a5}html[data-theme=dark] .ob-mini.danger.confirm{background:#b91c1c;color:#fff}html[data-theme=dark] .ob-hint{color:#cbd5e1}html[data-theme=dark] tr.row-pending td{background:#2a1f0855}@media print{.offline-bar,.pending-tag{display:none!important}}@media(max-width:640px){.ob-chip{justify-content:center;order:3;width:100%}.ob-item,.ob-item.bad{grid-template-columns:auto 1fr}.ob-item time,.ob-item-actions{grid-column:2}.ob-item-actions{justify-content:flex-start}.ob-mini{min-height:40px}}.pwa-layer{inset:0;pointer-events:none;position:fixed;z-index:9000}.pwa-top{animation:pwa-drop .35s cubic-bezier(.2,.8,.2,1);left:50%;max-width:calc(100vw - 24px);pointer-events:auto;position:absolute;top:14px;transform:translateX(-50%);width:max-content}.pwa-pill{align-items:center;background:#fff;border:1px solid #0000;border-radius:999px;box-shadow:0 18px 40px -18px #2e10658c;color:#16132b;display:flex;font-size:12.5px;gap:10px;line-height:1.35;padding:9px 10px 9px 15px}.pwa-pill span{min-width:0}.pwa-pill b{font-weight:700}.pwa-pill.offline{background:#1f1640;border-color:#3b2a7a;color:#f5f3ff;padding-right:16px}.pwa-pill.offline svg{color:#fcd34d;flex-shrink:0}.pwa-pill.online{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.pwa-pill.cached{background:#fffbeb;border-color:#fde68a;color:#78350f}.pwa-pill button{align-items:center;background:#ffffffbf;border:0;border-radius:999px;color:inherit;cursor:pointer;display:inline-flex;font-size:12px;font-weight:700;gap:5px;padding:6px 10px;white-space:nowrap}.pwa-pill.online button:not(.pwa-x){background:#059669;color:#fff}.pwa-pill.online button:not(.pwa-x):hover{background:#047857}.pwa-pill.cached button:not(.pwa-x){background:#d97706;color:#fff}.pwa-pill .pwa-x{background:#0000;opacity:.7;padding:5px}.pwa-pill .pwa-x:hover{opacity:1}.pwa-bottom{grid-gap:10px;bottom:20px;display:grid;gap:10px;pointer-events:none;position:absolute;right:20px;width:min(380px,calc(100vw - 32px))}.pwa-card{align-items:center;animation:pwa-rise .4s cubic-bezier(.2,.8,.2,1);background:#fff;border:1px solid #e9e8f3;border:1px solid var(--line,#e9e8f3);border-radius:18px;box-shadow:0 30px 70px -30px #2e10658c;display:flex;gap:12px;padding:14px;pointer-events:auto}.pwa-card.install{flex-wrap:wrap}.pwa-card-logo{background:#f5f3ff;height:46px;object-fit:contain;padding:3px;width:46px}.pwa-card-icon,.pwa-card-logo{border-radius:12px;flex-shrink:0}.pwa-card-icon{background:#ede9fe;color:#7c3aed;display:grid;height:40px;place-items:center;width:40px}.pwa-card-text,.pwa-card>div:not(.pwa-card-actions){flex:1 1;min-width:0}.pwa-card b{color:#16132b;color:var(--ink,#16132b);display:block;font-size:13.5px}.pwa-card small{color:#6b6880;color:var(--muted,#6b6880);display:block;font-size:12px;line-height:1.45;margin-top:3px}.pwa-card small b{display:inline;font-size:12px}.pwa-card small svg{vertical-align:-2px}.pwa-card-actions{display:flex;gap:8px;justify-content:flex-end;width:100%}.pwa-btn{align-items:center;background:#7c3aed;border:0;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:700;gap:6px;padding:9px 14px;transition:background .2s,transform .2s;white-space:nowrap}.pwa-btn:hover{background:#6d28d9;transform:translateY(-1px)}.pwa-btn.ghost{background:#f5f3ff;color:#6d28d9}.pwa-btn.ghost:hover{background:#ede9fe}.pwa-inline-wrap{grid-gap:8px;display:grid;gap:8px;justify-items:center;margin-top:14px}.pwa-inline-install{align-items:center;background:#fff;border:1px solid #ddd6fe;border:1px solid var(--v200,#ddd6fe);border-radius:999px;color:#6d28d9;cursor:pointer;display:inline-flex;font-size:12.5px;font-weight:700;gap:7px;padding:9px 15px;transition:background .2s,border-color .2s}.pwa-inline-install:hover{background:#f5f3ff;border-color:#c4b5fd}.pwa-inline-hint{color:#6b6880;color:var(--muted,#6b6880);font-size:12px;max-width:300px;text-align:center}.pwa-inline-hint svg{vertical-align:-2px}@keyframes pwa-drop{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@keyframes pwa-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.pwa-top{top:10px}.pwa-pill{border-radius:16px;flex-wrap:wrap;font-size:12px}.pwa-bottom{bottom:12px;left:12px;right:12px;width:auto}}@media (prefers-reduced-motion:reduce){.pwa-card,.pwa-top{animation:none}}@media print{.pwa-layer{display:none!important}}html[data-theme=dark] .pwa-card{background:#1a1630;border-color:#2c2748}html[data-theme=dark] .pwa-card b{color:#f4f2ff}html[data-theme=dark] .pwa-card small{color:#b7b2d3}html[data-theme=dark] .pwa-card-icon,html[data-theme=dark] .pwa-card-logo{background:#2a2350}html[data-theme=dark] .pwa-btn.ghost{background:#2a2350;color:#c4b5fd}html[data-theme=dark] .pwa-inline-install{background:#1a1630;border-color:#3b2a7a;color:#c4b5fd}html[data-theme=dark] .pwa-pill.online{background:#052e24;border-color:#065f46;color:#a7f3d0}html[data-theme=dark] .pwa-pill.cached{background:#3a2606;border-color:#78350f;color:#fde68a}html[data-theme=dark] .pwa-pill button.pwa-x{color:inherit}.boot-loader{grid-gap:14px;display:grid;font-size:15px;font-weight:700;gap:14px;justify-items:center}.boot-loader img{animation:pwa-boot 1.4s ease-in-out infinite;height:64px;width:64px}@keyframes pwa-boot{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}.lazy-panel{color:#6b6880;color:var(--muted,#6b6880);min-height:220px;place-items:center}.cam-lazy,.lazy-panel{display:grid;font-size:13px}.cam-lazy{aspect-ratio:4/3;background:#1f1640;border-radius:14px;color:#ddd6fe;place-items:center;width:100%}.pwa-pill.cached.server-good{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.pwa-pill.cached.server-bad{background:#fef2f2;border-color:#fecaca;color:#991b1b}.server-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:9px;width:9px}.server-dot.good{background:#16a34a;box-shadow:0 0 0 3px #16a34a2e}.server-dot.bad{animation:pulseDot 1.6s ease-in-out infinite;background:#dc2626;box-shadow:0 0 0 3px #dc26262e}@keyframes pulseDot{0%,to{opacity:1}50%{opacity:.45}}.pwa-pill.cached button[disabled]{cursor:progress;opacity:.6}.spin{animation:spinIcon .9s linear infinite}@keyframes spinIcon{to{transform:rotate(1turn)}}@media(max-width:520px){.pwa-pill{font-size:11.5px;gap:8px;padding:8px 8px 8px 12px}.pwa-pill button{font-size:11px;padding:6px 9px}}
/*# sourceMappingURL=main.055fe3d6.css.map*/