*,: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:rgba(59,130,246,.5);--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: }::backdrop{--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:rgba(59,130,246,.5);--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.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}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-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color: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:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-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}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[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}}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.-right-1\.5{right:-.375rem}.-right-2{right:-.5rem}.-top-1\.5{top:-.375rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-3{bottom:.75rem}.left-3{left:.75rem}.left-4{left:1rem}.right-3{right:.75rem}.top-0{top:0}.top-1\/2{top:50%}.top-3{top:.75rem}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[60\]{z-index:60}.col-span-2{grid-column:span 2/span 2}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.ml-auto{margin-left:auto}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-28{height:7rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-64{height:16rem}.h-8{height:2rem}.h-full{height:100%}.max-h-16{max-height:4rem}.max-h-64{max-height:16rem}.max-h-\[90vh\]{max-height:90vh}.max-h-full{max-height:100%}.min-h-\[70px\]{min-height:70px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-28{width:7rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-auto{width:auto}.w-full{width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-7xl{max-width:80rem}.max-w-\[120px\]{max-width:120px}.max-w-\[150px\]{max-width:150px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.border-collapse{border-collapse:collapse}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.rotate-45{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-45{--tw-rotate:45deg}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.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-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-2\.5{-moz-column-gap:.625rem;column-gap:.625rem}.gap-y-1{row-gap:.25rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-800>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(31 41 55/var(--tw-divide-opacity,1))}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-\[\#00e5ff\]{--tw-border-opacity:1;border-color:rgb(0 229 255/var(--tw-border-opacity,1))}.border-\[\#00e5ff\]\/40{border-color:rgba(0,229,255,.4)}.border-\[\#ccff00\]{--tw-border-opacity:1;border-color:rgb(204 255 0/var(--tw-border-opacity,1))}.border-\[\#ccff00\]\/40{border-color:rgba(204,255,0,.4)}.border-amber-800{--tw-border-opacity:1;border-color:rgb(146 64 14/var(--tw-border-opacity,1))}.border-amber-800\/80{border-color:rgba(146,64,14,.8)}.border-emerald-500{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.border-emerald-500\/40{border-color:rgba(16,185,129,.4)}.border-emerald-800\/80{border-color:rgba(6,95,70,.8)}.border-gray-400{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity,1))}.border-gray-700\/40{border-color:rgba(55,65,81,.4)}.border-gray-700\/50{border-color:rgba(55,65,81,.5)}.border-gray-700\/60{border-color:rgba(55,65,81,.6)}.border-rose-800{--tw-border-opacity:1;border-color:rgb(159 18 57/var(--tw-border-opacity,1))}.border-rose-800\/80{border-color:rgba(159,18,57,.8)}.border-rose-900\/40{border-color:rgba(136,19,55,.4)}.border-sky-500\/30{border-color:rgba(14,165,233,.3)}.border-sky-800{--tw-border-opacity:1;border-color:rgb(7 89 133/var(--tw-border-opacity,1))}.border-sky-800\/40{border-color:rgba(7,89,133,.4)}.border-sky-800\/80{border-color:rgba(7,89,133,.8)}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.bg-\[\#00e5ff\]\/20{background-color:rgba(0,229,255,.2)}.bg-\[\#ccff00\]{--tw-bg-opacity:1;background-color:rgb(204 255 0/var(--tw-bg-opacity,1))}.bg-\[\#ccff00\]\/20{background-color:rgba(204,255,0,.2)}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-amber-900\/80{background-color:rgba(120,53,15,.8)}.bg-amber-950{--tw-bg-opacity:1;background-color:rgb(69 26 3/var(--tw-bg-opacity,1))}.bg-amber-950\/50{background-color:rgba(69,26,3,.5)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-black\/75{background-color:rgba(0,0,0,.75)}.bg-black\/80{background-color:rgba(0,0,0,.8)}.bg-emerald-500{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity,1))}.bg-emerald-900\/80{background-color:rgba(6,78,59,.8)}.bg-emerald-950\/40{background-color:rgba(2,44,34,.4)}.bg-emerald-950\/50{background-color:rgba(2,44,34,.5)}.bg-emerald-950\/80{background-color:rgba(2,44,34,.8)}.bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity,1))}.bg-gray-800\/50{background-color:rgba(31,41,55,.5)}.bg-indigo-900\/80{background-color:rgba(49,46,129,.8)}.bg-rose-500{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.bg-rose-600{--tw-bg-opacity:1;background-color:rgb(225 29 72/var(--tw-bg-opacity,1))}.bg-rose-900{--tw-bg-opacity:1;background-color:rgb(136 19 55/var(--tw-bg-opacity,1))}.bg-rose-900\/80{background-color:rgba(136,19,55,.8)}.bg-rose-950{--tw-bg-opacity:1;background-color:rgb(76 5 25/var(--tw-bg-opacity,1))}.bg-rose-950\/20{background-color:rgba(76,5,25,.2)}.bg-rose-950\/50{background-color:rgba(76,5,25,.5)}.bg-rose-950\/60{background-color:rgba(76,5,25,.6)}.bg-sky-500{--tw-bg-opacity:1;background-color:rgb(14 165 233/var(--tw-bg-opacity,1))}.bg-sky-900\/80{background-color:rgba(12,74,110,.8)}.bg-sky-950{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.bg-sky-950\/30{background-color:rgba(8,47,73,.3)}.bg-sky-950\/50{background-color:rgba(8,47,73,.5)}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-slate-900\/40{background-color:rgba(15,23,42,.4)}.bg-slate-900\/50{background-color:rgba(15,23,42,.5)}.bg-slate-900\/60{background-color:rgba(15,23,42,.6)}.bg-slate-900\/80{background-color:rgba(15,23,42,.8)}.bg-slate-950\/40{background-color:rgba(2,6,23,.4)}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-black\/80{--tw-gradient-from:rgba(0,0,0,.8) var(--tw-gradient-from-position);--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-black\/40{--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(0,0,0,.4) var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.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-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pl-3{padding-left:.75rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.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-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-wider{letter-spacing:.05em}.text-\[\#00b0ff\]{--tw-text-opacity:1;color:rgb(0 176 255/var(--tw-text-opacity,1))}.text-\[\#00e5ff\]{--tw-text-opacity:1;color:rgb(0 229 255/var(--tw-text-opacity,1))}.text-\[\#88aa00\]{--tw-text-opacity:1;color:rgb(136 170 0/var(--tw-text-opacity,1))}.text-\[\#ccff00\]{--tw-text-opacity:1;color:rgb(204 255 0/var(--tw-text-opacity,1))}.text-\[\#ff00e5\]{--tw-text-opacity:1;color:rgb(255 0 229/var(--tw-text-opacity,1))}.text-amber-200{--tw-text-opacity:1;color:rgb(253 230 138/var(--tw-text-opacity,1))}.text-amber-300{--tw-text-opacity:1;color:rgb(252 211 77/var(--tw-text-opacity,1))}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-emerald-200{--tw-text-opacity:1;color:rgb(167 243 208/var(--tw-text-opacity,1))}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-500{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-indigo-200{--tw-text-opacity:1;color:rgb(199 210 254/var(--tw-text-opacity,1))}.text-rose-200{--tw-text-opacity:1;color:rgb(254 205 211/var(--tw-text-opacity,1))}.text-rose-300{--tw-text-opacity:1;color:rgb(253 164 175/var(--tw-text-opacity,1))}.text-rose-400{--tw-text-opacity:1;color:rgb(251 113 133/var(--tw-text-opacity,1))}.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity,1))}.text-sky-200{--tw-text-opacity:1;color:rgb(186 230 253/var(--tw-text-opacity,1))}.text-sky-300{--tw-text-opacity:1;color:rgb(125 211 252/var(--tw-text-opacity,1))}.text-sky-400{--tw-text-opacity:1;color:rgb(56 189 248/var(--tw-text-opacity,1))}.text-sky-500{--tw-text-opacity:1;color:rgb(14 165 233/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-950{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.accent-\[\#00e5ff\]{accent-color:#00e5ff}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-\[0_0_12px_\#ccff00\]{--tw-shadow:0 0 12px #cf0;--tw-shadow-colored:0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-2{--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),var(--tw-shadow,0 0 #0000)}.ring-\[\#00e5ff\]{--tw-ring-opacity:1;--tw-ring-color:rgb(0 229 255/var(--tw-ring-opacity,1))}.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)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{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-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.hover\:border-\[\#00e5ff\]:hover{--tw-border-opacity:1;border-color:rgb(0 229 255/var(--tw-border-opacity,1))}.hover\:border-\[\#ccff00\]:hover{--tw-border-opacity:1;border-color:rgb(204 255 0/var(--tw-border-opacity,1))}.hover\:border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(156 163 175/var(--tw-border-opacity,1))}.hover\:bg-amber-800:hover{--tw-bg-opacity:1;background-color:rgb(146 64 14/var(--tw-bg-opacity,1))}.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.hover\:bg-emerald-800:hover{--tw-bg-opacity:1;background-color:rgb(6 95 70/var(--tw-bg-opacity,1))}.hover\:bg-indigo-800:hover{--tw-bg-opacity:1;background-color:rgb(55 48 163/var(--tw-bg-opacity,1))}.hover\:bg-rose-500:hover{--tw-bg-opacity:1;background-color:rgb(244 63 94/var(--tw-bg-opacity,1))}.hover\:bg-rose-800:hover{--tw-bg-opacity:1;background-color:rgb(159 18 57/var(--tw-bg-opacity,1))}.hover\:bg-sky-800:hover{--tw-bg-opacity:1;background-color:rgb(7 89 133/var(--tw-bg-opacity,1))}.hover\:bg-slate-800\/30:hover{background-color:rgba(30,41,59,.3)}.hover\:text-\[\#00e5ff\]:hover{--tw-text-opacity:1;color:rgb(0 229 255/var(--tw-text-opacity,1))}.hover\:text-\[\#ccff00\]:hover{--tw-text-opacity:1;color:rgb(204 255 0/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.dark\:text-\[\#00e5ff\]:is(.dark *){--tw-text-opacity:1;color:rgb(0 229 255/var(--tw-text-opacity,1))}.dark\:text-\[\#ccff00\]:is(.dark *){--tw-text-opacity:1;color:rgb(204 255 0/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:inline{display:inline}.sm\:hidden{display:none}.sm\:h-72{height:18rem}.sm\:h-96{height:24rem}.sm\:max-h-24{max-height:6rem}.sm\:min-h-\[100px\]{min-height:100px}.sm\:w-72{width:18rem}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem*var(--tw-space-y-reverse))}.sm\:space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.sm\:p-12{padding:3rem}.sm\:p-3{padding:.75rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-10{padding-top:2.5rem;padding-bottom:2.5rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-\[10px\]{font-size:10px}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:768px){.md\:inline{display:inline}.md\:h-\[450px\]{height:450px}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}}@media (min-width:1024px){.lg\:h-96{height:24rem}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:text-6xl{font-size:3.75rem;line-height:1}}

/* ============================================================
   Custom project CSS (moved here from index.php's inline <style>
   block, so all CSS for this project lives in this one file).
   ============================================================ */
    [v-cloak] { display: none !important; }
    html { scroll-behavior: smooth; }
    body { font-family: 'Outfit', sans-serif; transition: font-size 0.2s ease, background-color 0.3s ease; }
    
    /* Font Size Adjustments for Accessibility */
    html.font-size-small, html.font-size-small body, .font-size-small { font-size: 13px !important; }
    html.font-size-medium, html.font-size-medium body, .font-size-medium { font-size: 15px !important; }
    html.font-size-large, html.font-size-large body, .font-size-large { font-size: 18px !important; }

    .neon-border { border: 1px solid rgba(204, 255, 0, 0.3); box-shadow: 0 0 20px rgba(204, 255, 0, 0.12); }
    .dark .glass-card { background: rgba(22, 31, 48, 0.85); backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, 0.08); color: #f8fafc; }
    .dark .input-field { background-color: #0f172a; border-color: #334155; color: #ffffff; color-scheme: dark; }
    .dark .text-subtle { color: #94a3b8; }
    html:not(.dark) body { background-color: #f8fafc; color: #0f172a; }
    html:not(.dark) .glass-card { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(16px); border: 1px solid rgba(203, 213, 225, 0.8); color: #0f172a; }
    html:not(.dark) .input-field { background-color: #ffffff; border-color: #94a3b8; color: #0f172a; color-scheme: light; }
    html:not(.dark) .text-subtle { color: #334155; }
    .cyber-btn { background: linear-gradient(135deg, #ccff00 0%, #9bc200 100%); color: #0b0f17; font-weight: 800; text-transform: uppercase; }

    /* Animated Checkmark - plays once whenever the "Booking Successful" banner appears */
    .checkmark-icon { display: block; margin: 0 auto; }
    .checkmark-circle {
      stroke: #34d399;
      stroke-width: 3;
      stroke-dasharray: 151;
      stroke-dashoffset: 151;
      animation: checkmark-circle-draw 0.5s ease-out forwards;
    }
    .checkmark-check {
      stroke: #34d399;
      stroke-width: 4;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-dasharray: 36;
      stroke-dashoffset: 36;
      animation: checkmark-check-draw 0.35s ease-out 0.45s forwards;
    }
    @keyframes checkmark-circle-draw { to { stroke-dashoffset: 0; } }
    @keyframes checkmark-check-draw { to { stroke-dashoffset: 0; } }

    /* Booking submission "Please wait" overlay - plain custom CSS (not Tailwind utility
       classes) on purpose: this file is a precompiled, static stylesheet containing only
       the utility classes actually scanned from the template, so any brand-new bracket
       value (e.g. z-[999]) or utility (e.g. animate-spin) not already present elsewhere
       in the page silently renders with NO styling at all. Covers the whole viewport at
       the highest z-index in the app so the page can't be used while a booking submits. */
    .booking-loading-overlay {
      position: fixed;
      inset: 0;
      z-index: 9999;
      background: rgba(0, 0, 0, 0.8);
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .booking-loading-content { display: flex; flex-direction: column; align-items: center; gap: 1rem; }
    .booking-loading-spinner {
      width: 48px;
      height: 48px;
      border: 4px solid rgba(204, 255, 0, 0.25);
      border-top-color: #ccff00;
      border-radius: 50%;
      animation: booking-spin 0.8s linear infinite;
    }
    .booking-loading-text { font-size: 0.95rem; font-weight: 900; text-transform: uppercase; letter-spacing: 0.05em; color: #ccff00; }
    @keyframes booking-spin { to { transform: rotate(360deg); } }

    /* Wraps long lines in the OCR-extracted receipt text <pre> block instead of
       overflowing horizontally (whitespace-pre-wrap/break-words aren't in this
       precompiled stylesheet, same reason as the overlay above). */
    .receipt-text-pre { white-space: pre-wrap; word-break: break-word; }

    /* Block-a-court feature: orange accent classes are missing from this precompiled
       stylesheet (never scanned/compiled) for the same reason as the block above -
       covers the pre-existing "Block Court" button/modal header and the new
       "Remove Block" action buttons added alongside it. */
    .text-orange-200 { color: #fed7aa; }
    .text-orange-300 { color: #fdba74; }
    .border-orange-700\/60 { border-color: rgba(194, 65, 12, 0.6); }
    .hover\:border-orange-400:hover { border-color: #fb923c; }
    .bg-orange-900\/80 { background-color: rgba(124, 45, 18, 0.8); }
    .hover\:bg-orange-800:hover { background-color: #9a3412; }

    /* Violet accent classes are missing from this precompiled stylesheet (same reason
       as the orange block above) - used by the "Ticket" action button so it's visually
       distinct from the amber "Pending" button instead of sharing its color. */
    .text-violet-200 { color: #ddd6fe; }
    .bg-violet-900\/80 { background-color: rgba(76, 29, 149, 0.8); }
    .hover\:bg-violet-800:hover { background-color: #5b21b6; }

    /* "italic" for the OCR-fallback message added to the receipt panel - missing from
       this precompiled stylesheet since it wasn't in the template when this file was
       last built. */
    .italic { font-style: italic; }

    /* "Test Connection" button (OCR.space Settings field) - two classes missing from
       this precompiled stylesheet since they weren't in the template when it was built. */
    .hover\:border-sky-400:hover { border-color: #38bdf8; }
    .whitespace-nowrap { white-space: nowrap; }

    @media print {
      @page { size: landscape; margin: 0.5cm; }
      body { background: white !important; color: black !important; }
      nav, footer, .cyber-btn, button, select, input[type="text"], .no-print { display: none !important; }
      .glass-card { background: transparent !important; border: 1px solid #ccc !important; box-shadow: none !important; color: black !important; backdrop-filter: none !important; }
      table { width: 100% !important; border-collapse: collapse !important; }
      th, td { border: 1px solid #333 !important; padding: 6px !important; font-size: 10px !important; color: black !important; }
    }

    /* Shows the "Exported by / Exported on" line only in the printed/PDF output -
       set right before window.print() in exportReport('pdf'). Hidden on-screen so it
       doesn't clutter the live Reservations table. */
    .print-only { display: none; }
    @media print {
      .print-only { display: block !important; color: black !important; margin-bottom: 0.5rem; }
    }

    /* Prevent iOS/Android auto-zoom when focusing form fields on mobile (inputs need >=16px font-size) */
    @media (max-width: 768px) {
      input, select, textarea { font-size: 16px !important; }
    }

    /* COURT AVAILABILITY GRID: 5x larger, clickable cells with a hover tooltip.
       Written as plain CSS (not Tailwind utility classes) so this always renders
       correctly regardless of what's included in the precompiled assets/tailwind.css. */
    .court-grid-hour-head { min-width: 34px; }
    @media (min-width: 640px) { .court-grid-hour-head { min-width: 44px; } }

    .court-grid-cell-wrap { position: relative; }

    .court-grid-cell {
      width: 34px;
      height: 24px;
      border-radius: 4px;
      border-width: 1px;
      border-style: solid;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: filter 0.15s ease, border-color 0.15s ease;
      font-size: 12px;
      line-height: 1;
    }
    @media (min-width: 640px) {
      .court-grid-cell { width: 44px; height: 30px; font-size: 15px; }
    }
    .court-grid-cell.is-available:hover { border-color: #ccff00; cursor: pointer; }
    .court-grid-cell.is-clickable { cursor: pointer; }
    .court-grid-cell.is-clickable:hover { filter: brightness(1.25); }
    .court-grid-cell.is-past { opacity: 0.6; cursor: not-allowed; }
    /* PENDING PAYMENT cells on the public grid: someone else's payment is being
       verified for this slot, so it's not selectable - shows a "not available"
       cursor instead of the default pointer/arrow. */
    .court-grid-cell.is-locked { cursor: not-allowed; }

    /* PUBLIC COURT AVAILABILITY GRID cells: the plain .court-grid-cell rule above is sized
       for the compact admin dashboard matrix (small color-only squares). The public grid
       needs to fit a readable label ("Available", "Booked", etc.) in every cell, so it gets
       its own larger sizing here instead of resizing the shared admin squares. */
    .court-grid-cell.public-grid-cell {
      width: 100%;
      height: 44px;
      border-radius: 8px;
      font-size: 11px;
      padding: 2px 4px;
      text-align: center;
      line-height: 1.15;
    }
    @media (min-width: 640px) {
      .court-grid-cell.public-grid-cell { height: 48px; font-size: 13px; }
    }

    .court-grid-tooltip {
      /* FIX: was `position: absolute` inside the horizontally-scrollable grid wrapper, which
         clips (cuts off) any tooltip that pops out above/left/right of that wrapper's bounds.
         Now positioned as `fixed` relative to the viewport and coordinates are computed in JS
         (showCourtGridTooltip), with the element teleported to <body> so it always renders on
         top, fully visible, regardless of table scroll position. */
      position: fixed;
      z-index: 55;
      width: 210px;
      padding: 12px;
      border-radius: 8px;
      border: 1px solid #374151;
      background: rgba(2, 6, 23, 0.97);
      box-shadow: 0 20px 40px rgba(0,0,0,0.5);
      text-align: left;
      pointer-events: none;
    }
    .court-grid-tooltip .tt-title { font-size: 10px; font-weight: 900; text-transform: uppercase; color: #00e5ff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .court-grid-tooltip .tt-sub { font-size: 10px; color: #94a3b8; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .court-grid-tooltip .tt-time { font-size: 11px; font-family: monospace; color: #ccff00; margin-top: 6px; }
    .court-grid-tooltip .tt-status { font-size: 10px; color: #94a3b8; margin-top: 6px; text-transform: capitalize; }
    .court-grid-tooltip .tt-status strong { font-weight: 700; color: #e2e8f0; }
    .court-grid-tooltip .tt-foot { font-size: 9px; color: #94a3b8; margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(55,65,81,0.6); }

    /* "Bookings on" modal: border highlight for the specific entry that was auto-scrolled
       to after being clicked from a calendar chip or a court grid cell. */
    .booking-item-highlight { box-shadow: 0 0 0 2px #ccff00; border-color: #ccff00 !important; }

    /* COURT AVAILABILITY: calendar sidebar + grid layout. Written as plain CSS (not the
       Tailwind lg:flex-row / lg:w-64 / lg:sticky utility classes) because the precompiled
       assets/tailwind.css is a purged build that doesn't include those "lg:" variants, so
       the calendar was collapsing to full width and stacking above the grid instead of
       sitting beside it. This guarantees the side-by-side layout renders regardless of
       what's in that file. */
    .court-grid-layout { display: flex; flex-direction: column; gap: 1.5rem; }
    .court-grid-cal-col { width: 100%; }
    .court-grid-table-col { flex: 1 1 0%; min-width: 0; }
    /* FAQ + Find Us section contains a Google Maps iframe. Iframes render in their own
       compositing layer, which in some browsers lets them visually bleed through/on top
       of the modal overlays below (especially the ones using backdrop-filter blur) even
       though the modals have a much higher z-index. Giving this section its own stacking
       context (position + z-index + isolation) keeps the iframe's layer contained inside
       it, so modals with a higher z-index correctly render above it instead of the map
       punching through them. */
    .stacking-context-fix { isolation: isolate; }

    @media (min-width: 1024px) {
      .court-grid-layout { flex-direction: row; }
      /* top offset clears the sticky navbar (nav is also `sticky top-0`, ~4.5rem tall)
         so the calendar sticks just below it instead of scrolling underneath and being
         cut off by the navbar's higher z-index. */
      .court-grid-cal-col { width: 16rem; flex-shrink: 0; position: sticky; top: 6rem; align-self: flex-start; }
    }

/* Extra z-index utilities for the booking modals (arbitrary values not present
   in the purged Tailwind build above) - kept highest so modals are never overlapped. */
.z-\[80\]{z-index:80}.z-\[90\]{z-index:90}.z-\[100\]{z-index:100}

/* Violet accent utilities (replaces the old pink/magenta accent on "Find Us" and
   "Weekly Courts Usage" headings and the Branches nav-link hover) - not present in
   the purged Tailwind build above. */
.text-\[\#9333ea\]{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.dark\:text-\[\#c084fc\]:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.hover\:text-\[\#c084fc\]:hover{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}

/* Bottom-padding utilities used on the FAQ + Find Us section's wrapper (pb-10 /
   sm:pb-16) to create a gap before the footer - not present in the purged build. */
.pb-10{padding-bottom:2.5rem}@media (min-width:640px){.sm\:pb-16{padding-bottom:4rem}}
/* Court Availability grids (Court Booking Form + admin dashboard): makes the "Time"
   column stick to the left edge while the table scrolls horizontally through the
   courts, so the customer can always see which hour a row is. The markup already
   has sticky/left-0/z-30/whitespace-nowrap/min-w-[110px]/bg-slate-950/80 classes on
   the Time header and cells, but this purged build didn't include them, so
   `position: sticky` had no `left` offset to stick to and the column just scrolled
   away with everything else. Adding them here (not editing the HTML) fixes it. */
.left-0{left:0}
.z-30{z-index:30}
.whitespace-nowrap{white-space:nowrap}
.min-w-\[110px\]{min-width:110px}
.bg-slate-950\/80{background-color:rgba(2,6,23,.8)}

/* Reservations Approval & List table: forces its horizontal scrollbar to stay
   permanently visible on mobile (most mobile browsers otherwise hide overflow
   scrollbars until the user actively touch-scrolls). */
@media (max-width: 640px) {
  .reservations-scroll-mobile {
    overflow-x: scroll !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: auto; /* Firefox: keep the default (visible) scrollbar instead of "thin"/none */
    scrollbar-color: #ccff00 rgba(255, 255, 255, 0.08);
    padding-bottom: 6px; /* room for the bar so it doesn't overlap the last row */
  }
  .reservations-scroll-mobile::-webkit-scrollbar {
    display: block;
    height: 8px;
  }
  .reservations-scroll-mobile::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.08);
    border-radius: 999px;
  }
  .reservations-scroll-mobile::-webkit-scrollbar-thumb {
    background-color: #ccff00;
    border-radius: 999px;
  }
}
/* Transaction fee feature (System modal, Pay modal, sticky due-date banner, developer
   dashboard): utilities this purged build didn't already include. Added here rather
   than assuming they exist, same as every other gap already documented above. */
.bg-amber-900{--tw-bg-opacity:1;background-color:rgb(120 53 15/var(--tw-bg-opacity,1))}
.text-amber-100{--tw-text-opacity:1;color:rgb(254 243 199/var(--tw-text-opacity,1))}
.text-rose-100{--tw-text-opacity:1;color:rgb(255 228 230/var(--tw-text-opacity,1))}
.bg-black\/20{background-color:rgba(0,0,0,.2)}
.bg-black\/40{background-color:rgba(0,0,0,.4)}
.hover\:bg-black\/40:hover{background-color:rgba(0,0,0,.4)}
.hover\:no-underline:hover{text-decoration-line:none}
.max-w-6xl{max-width:72rem}
.max-w-xs{max-width:20rem}
.ml-2{margin-left:.5rem}
.underline{text-decoration-line:underline}
.underline-offset-2{text-underline-offset:2px}
.bg-emerald-950{--tw-bg-opacity:1;background-color:rgb(2 44 34/var(--tw-bg-opacity,1))}
.bg-emerald-950\/20{background-color:rgba(2,44,34,.2)}
.border-emerald-800{--tw-border-opacity:1;border-color:rgb(6 95 70/var(--tw-border-opacity,1))}
.border-emerald-800\/60{border-color:rgba(6,95,70,.6)}
.text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity,1))}
.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}
.pt-4{padding-top:1rem}
.bg-amber-950\/30{background-color:rgba(69,26,3,.3)}
.border-amber-800\/60{border-color:rgba(146,64,14,.6)}
.w-40{width:10rem}
.h-40{height:10rem}

/* System button urgency badge (red dot shown when a fee payment notification is
   active) - utilities this purged build didn't already include. */
.w-3{width:.75rem}
.h-3{height:.75rem}
.-top-1{top:-.25rem}
.-right-1{right:-.25rem}
.border-rose-300{--tw-border-opacity:1;border-color:rgb(253 164 175/var(--tw-border-opacity,1))}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}

/* Dashboard lock screen + toggle button - utilities this purged build didn't
   already include. */
.shrink-0{flex-shrink:0}
.sm\:p-10{padding:2.5rem}
.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.max-w-\[200px\]{max-width:200px}