*,: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:rgb(59 130 246/0.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:rgb(59 130 246/0.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}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.right-0{right:0}.top-0{top:0}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[150\]{z-index:150}.z-\[200\]{z-index:200}.col-span-2{grid-column:span 2/span 2}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-3\.5{margin-bottom:.875rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-7{margin-bottom:1.75rem}.mb-8{margin-bottom:2rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-1\.5{height:.375rem}.h-3{height:.75rem}.h-px{height:1px}.h-screen{height:100vh}.max-h-72{max-height:18rem}.max-h-\[85vh\]{max-height:85vh}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-3{width:.75rem}.w-64{width:16rem}.w-80{width:20rem}.w-\[min\(480px\2c 95vw\)\]{width:min(480px,95vw)}.w-\[min\(640px\2c 95vw\)\]{width:min(640px,95vw)}.w-full{width:100%}.max-w-5xl{max-width:64rem}.max-w-\[220px\]{max-width:220px}.max-w-\[320px\]{max-width:320px}.max-w-\[380px\]{max-width:380px}.max-w-\[400px\]{max-width:400px}.max-w-\[880px\]{max-width:880px}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.translate-x-0{--tw-translate-x:0px}.translate-x-0,.translate-x-full{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-x-full{--tw-translate-x:100%}.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))}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fill\2c minmax\(90px\2c 1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(90px,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\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.self-end{align-self:flex-end}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[14px\]{border-radius:14px}.rounded-\[5px\]{border-radius:5px}.rounded-\[6px\]{border-radius:6px}.rounded-\[7px\]{border-radius:7px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-\[\#4ade80\]\/15{border-color:rgb(74 222 128/.15)}.border-\[\#7c3aed\]\/25{border-color:rgb(124 58 237/.25)}.border-\[\#ef4444\]\/20{border-color:rgb(239 68 68/.2)}.border-\[\#ef4444\]\/25{border-color:rgb(239 68 68/.25)}.border-\[\#f59e0b\]\/20{border-color:rgb(245 158 11/.2)}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--teal\)\]{border-color:var(--teal)}.border-black\/10{border-color:rgb(0 0 0/.1)}.border-emerald-400\/20{border-color:rgb(52 211 153/.2)}.border-red-400\/20{border-color:rgb(248 113 113/.2)}.border-red-500\/25{border-color:rgb(239 68 68/.25)}.border-slate-700{--tw-border-opacity:1;border-color:rgb(51 65 85/var(--tw-border-opacity,1))}.border-slate-800{--tw-border-opacity:1;border-color:rgb(30 41 59/var(--tw-border-opacity,1))}.border-white\/10{border-color:rgb(255 255 255/.1)}.border-white\/\[\.04\]{border-color:rgb(255 255 255/.04)}.border-white\/\[\.06\]{border-color:rgb(255 255 255/.06)}.border-white\/\[\.07\]{border-color:rgb(255 255 255/.07)}.border-white\/\[\.08\]{border-color:rgb(255 255 255/.08)}.border-white\/\[\.12\]{border-color:rgb(255 255 255/.12)}.bg-\[\#0f1117\]{--tw-bg-opacity:1;background-color:rgb(15 17 23/var(--tw-bg-opacity,1))}.bg-\[\#1a1f2e\]{--tw-bg-opacity:1;background-color:rgb(26 31 46/var(--tw-bg-opacity,1))}.bg-\[\#3b0764\]{--tw-bg-opacity:1;background-color:rgb(59 7 100/var(--tw-bg-opacity,1))}.bg-\[\#4ade80\]\/5{background-color:rgb(74 222 128/.05)}.bg-\[\#7c3aed\]{--tw-bg-opacity:1;background-color:rgb(124 58 237/var(--tw-bg-opacity,1))}.bg-\[\#ef4444\]\/10{background-color:rgb(239 68 68/.1)}.bg-\[\#ef4444\]\/5{background-color:rgb(239 68 68/.05)}.bg-\[\#f59e0b\]\/\[\.06\]{background-color:rgb(245 158 11/.06)}.bg-\[var\(--amber-dim\)\]{background-color:var(--amber-dim)}.bg-\[var\(--card\)\]{background-color:var(--card)}.bg-\[var\(--navy-mid\)\]{background-color:var(--navy-mid)}.bg-\[var\(--red-dim\)\]{background-color:var(--red-dim)}.bg-\[var\(--teal\)\]{background-color:var(--teal)}.bg-\[var\(--teal-dim\)\]{background-color:var(--teal-dim)}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black\/20{background-color:rgb(0 0 0/.2)}.bg-black\/50{background-color:rgb(0 0 0/.5)}.bg-black\/60{background-color:rgb(0 0 0/.6)}.bg-black\/\[\.55\]{background-color:rgb(0 0 0/.55)}.bg-emerald-500\/10{background-color:rgb(16 185 129/.1)}.bg-emerald-500\/40{background-color:rgb(16 185 129/.4)}.bg-emerald-600\/15{background-color:rgb(5 150 105/.15)}.bg-red-500\/10{background-color:rgb(239 68 68/.1)}.bg-red-500\/40{background-color:rgb(239 68 68/.4)}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.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-950{--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.bg-teal-400{--tw-bg-opacity:1;background-color:rgb(45 212 191/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-violet-600{--tw-bg-opacity:1;background-color:rgb(124 58 237/var(--tw-bg-opacity,1))}.bg-white\/\[0\.06\]{background-color:rgb(255 255 255/.06)}.bg-white\/\[0\.08\]{background-color:rgb(255 255 255/.08)}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-7{padding:1.75rem}.p-8{padding:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.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-3\.5{padding-left:.875rem;padding-right:.875rem}.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-\[13px\]{padding-left:13px;padding-right:13px}.px-\[18px\]{padding-left:18px;padding-right:18px}.px-\[22px\]{padding-left:22px;padding-right:22px}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.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-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-9{padding-top:2.25rem;padding-bottom:2.25rem}.py-\[11px\]{padding-top:11px;padding-bottom:11px}.py-\[18px\]{padding-top:18px;padding-bottom:18px}.py-\[7px\]{padding-top:7px;padding-bottom:7px}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.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-bold{font-weight:700}.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}.italic{font-style:italic}.leading-none{line-height:1}.tracking-\[\.07em\]{letter-spacing:.07em}.tracking-\[\.08em\]{letter-spacing:.08em}.tracking-\[\.14em\]{letter-spacing:.14em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-wide{letter-spacing:.025em}.text-\[\#334155\]{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-\[\#475569\]{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-\[\#4ade80\]{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-\[\#64748b\]{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-\[\#7c3aed\]{--tw-text-opacity:1;color:rgb(124 58 237/var(--tw-text-opacity,1))}.text-\[\#94a3b8\]{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-\[\#a78bfa\]{--tw-text-opacity:1;color:rgb(167 139 250/var(--tw-text-opacity,1))}.text-\[\#e2e8f0\]{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-\[\#ef4444\]{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-\[\#f87171\]{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-\[\#f8fafc\]{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.text-\[\#fbbf24\]{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-\[\#fbbf6a\]{--tw-text-opacity:1;color:rgb(251 191 106/var(--tw-text-opacity,1))}.text-\[var\(--amber\)\]{color:var(--amber)}.text-\[var\(--red\)\]{color:var(--red)}.text-\[var\(--teal\)\]{color:var(--teal)}.text-\[var\(--text\)\]{color:var(--text)}.text-\[var\(--text-dim\)\]{color:var(--text-dim)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-emerald-400{--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.text-emerald-950{--tw-text-opacity:1;color:rgb(2 44 34/var(--tw-text-opacity,1))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.text-red-950{--tw-text-opacity:1;color:rgb(69 10 10/var(--tw-text-opacity,1))}.text-slate-100{--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.text-slate-200{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-950{--tw-text-opacity:1;color:rgb(2 6 23/var(--tw-text-opacity,1))}.text-teal-400{--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity,1))}.text-violet-200{--tw-text-opacity:1;color:rgb(221 214 254/var(--tw-text-opacity,1))}.text-violet-200\/70{color:rgb(221 214 254/.7)}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/40{color:rgb(255 255 255/.4)}.text-white\/50{color:rgb(255 255 255/.5)}.text-white\/55{color:rgb(255 255 255/.55)}.underline{text-decoration-line:underline}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 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 rgb(0 0 0/0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;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);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.invert{--tw-invert:invert(100%)}.filter,.invert{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-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;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}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--navy:#f8f7ff;--navy-mid:#ffffff;--navy-card:#f5f3ff;--teal:#7c3aed;--teal-dim:rgba(124,58,237,0.10);--teal-glow:rgba(124,58,237,0.22);--teal-lt:#c4b5fd;--amber:#d97706;--amber-dim:rgba(217,119,6,0.12);--red:#dc2626;--red-dim:rgba(220,38,38,0.10);--blue:#2563eb;--blue-dim:rgba(37,99,235,0.10);--purple:#7c3aed;--purple-dim:rgba(124,58,237,0.10);--green:#059669;--text:#1e0a3c;--text-dim:#5b21b6;--text-muted:#8b7ab8;--border:rgba(124,58,237,0.12);--card:rgba(124,58,237,0.04);--sidebar-bg:#3b0764;--sidebar-border:rgba(255,255,255,0.10);--sidebar-text:rgba(255,255,255,0.60);--sidebar-text-hover:rgba(255,255,255,0.95);--sidebar-active-bg:rgba(196,181,253,0.15);--sidebar-active-fg:#c4b5fd;--sidebar-active-bar:#a78bfa;--sidebar-section:rgba(255,255,255,0.35);--sidebar-avatar-bg:rgba(167,139,250,0.15);--sidebar-avatar-fg:#c4b5fd;--sidebar-role:rgba(196,181,253,0.70);--sidebar-w:232px;--chat-w:310px}.topbar-right{display:flex;align-items:center;gap:9px;flex-shrink:0;margin-left:16px}body{font-family:DM Sans,sans-serif;background:var(--navy);color:var(--text)}.app-shell{height:100vh;display:flex;overflow:hidden;width:100%}.app-shell>main{flex:1;min-width:0;overflow-y:auto}.app-shell>main.dashboard-main{flex-direction:column}.app-shell>main.dashboard-main,.main{display:flex;height:100vh;overflow:hidden}.main{flex:1;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--navy-mid);gap:12px}.topbar-nav{display:none;align-items:center;gap:4px;flex-shrink:1;min-width:0;overflow-x:auto;overflow-y:hidden}.topbar-nav::-webkit-scrollbar{height:3px}.topbar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:2px}@media (min-width:769px){body.nav-cmms .sidebar{display:none!important}body.nav-cmms .topbar-nav{display:flex}body.nav-cmms .topbar{background:var(--sidebar-bg);border-bottom-color:var(--sidebar-border,rgba(255,255,255,.1))}body.nav-cmms .topbar-title{color:var(--sidebar-text-hover,#fff)}body.nav-cmms .topbar-sub{color:var(--sidebar-text,rgba(255,255,255,.6))}body.nav-cmms .topbar .building-btn,body.nav-cmms .topbar .edit-layout-btn,body.nav-cmms .topbar .help-btn{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:var(--sidebar-text-hover,#fff)}body.nav-cmms .topbar .tab-btn:not(.active){background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:var(--sidebar-text,rgba(255,255,255,.6))}body.nav-cmms .topbar .tab-btn:hover:not(.active){color:var(--sidebar-text-hover,#fff)}body.nav-cmms .topbar .period-tab:not(.active){color:var(--sidebar-text,rgba(255,255,255,.6))}body.nav-cmms .topbar #lang-btn{color:var(--sidebar-text-hover,#fff)!important;border-color:rgba(255,255,255,.16)!important}body.nav-cmms .topbar{flex-wrap:wrap}}.topbar-nav .tn-item{position:relative}.topbar-nav .tn-section-btn{background:none;border:none;color:var(--sidebar-text,rgba(255,255,255,.6));font-size:12.5px;font-family:inherit;padding:6px 10px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:5px;white-space:nowrap}.topbar-nav .tn-item.open .tn-section-btn,.topbar-nav .tn-section-btn:hover{background:rgba(255,255,255,.08);color:var(--sidebar-text-hover,#fff)}.topbar-nav .tn-chevron{transition:transform .15s}.topbar-nav .tn-item.open .tn-chevron{transform:rotate(180deg)}.topbar-nav .tn-dropdown{display:none;position:fixed;top:0;left:0;min-width:180px;background:var(--sidebar-bg);border:1px solid var(--sidebar-border,rgba(255,255,255,.12));border-radius:8px;padding:4px;z-index:50;box-shadow:0 8px 24px rgba(0,0,0,.3)}.topbar-nav .tn-item.open .tn-dropdown{display:block}.topbar-nav .tn-dropdown a.nav-item,.topbar-nav .tn-dropdown div.nav-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;font-size:12.5px;color:var(--sidebar-text,rgba(255,255,255,.6));text-decoration:none;white-space:nowrap;cursor:pointer}.topbar-nav .tn-dropdown a.nav-item:hover,.topbar-nav .tn-dropdown div.nav-item:hover{background:rgba(255,255,255,.08);color:var(--sidebar-text-hover,#fff)}.sidebar{width:232px;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;min-height:100vh;flex-shrink:0;transition:width .2s;overflow-x:hidden;position:sticky;top:0;align-self:stretch}.sidebar.collapsed{width:48px}.logo{padding:18px 18px 14px;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;min-width:232px}.sidebar.collapsed .logo{min-width:48px;padding:14px 0;flex-direction:column;align-items:center}.logo-text{overflow:hidden;white-space:nowrap}.sidebar.collapsed .logo-text{display:none}.logo-mark{font-family:Syne,sans-serif;font-weight:800;font-size:13px;letter-spacing:.14em;color:var(--sidebar-active-fg);text-transform:uppercase}.logo-sub{font-size:10px;color:rgba(255,255,255,.4);margin-top:2px}.sidebar-toggle{width:26px;height:26px;border-radius:50%;background:transparent;border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.5);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .14s,color .14s,transform .2s;align-self:center}.sidebar-toggle:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24);color:rgba(255,255,255,.9)}.sidebar.collapsed .sidebar-toggle{transform:rotate(180deg);margin-top:2px}.nav-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px 0}.nav-scroll::-webkit-scrollbar{width:3px}.nav-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:2px}.nav-section{font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sidebar-section);padding:14px 16px 5px;white-space:nowrap;display:flex;align-items:center;justify-content:space-between;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:5px;transition:background .12s}.nav-section:hover{background:rgba(255,255,255,.05)}.sidebar.collapsed .nav-section{opacity:0;height:0;padding:0;pointer-events:none}.nav-section-chevron{width:10px;height:10px;flex-shrink:0;transition:transform .2s;color:var(--sidebar-section);opacity:.7}.nav-section.collapsed-group .nav-section-chevron{transform:rotate(-90deg)}.nav-group{overflow:hidden;transition:max-height .22s ease}.nav-group.collapsed-group{max-height:0!important}.nav-item{display:flex;align-items:center;gap:9px;padding:8px 10px;margin:1px 6px;border-radius:7px;cursor:pointer;font-size:12.5px;color:var(--sidebar-text);transition:all .14s;position:relative;white-space:nowrap;overflow:hidden;text-decoration:none;border:none;background:none;font-family:inherit;width:calc(100% - 12px);text-align:left}.nav-item:hover{background:rgba(255,255,255,.08);color:var(--sidebar-text-hover)}.nav-item.active{background:rgba(196,181,253,.15);color:#fbbf6a;font-weight:500}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;background:var(--sidebar-active-bar);border-radius:0 2px 2px 0}.sidebar.collapsed .nav-item{padding:10px 0;margin:1px 4px;justify-content:center;gap:0;border-radius:6px}.sidebar.collapsed .nav-item.active:before{display:none}.nav-icon{width:16px;height:16px;flex-shrink:0}.nav-label{flex:1}.sidebar.collapsed .nav-label{display:none}.sidebar-footer{padding:12px 14px;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0;display:flex;align-items:center;gap:10px;overflow:hidden}.sidebar.collapsed .sidebar-footer{padding:12px 0;justify-content:center}.sidebar-footer-text{overflow:hidden;white-space:nowrap}.sidebar.collapsed .sidebar-footer-text{display:none}.user-name{font-size:12px;font-weight:600;color:rgba(255,255,255,.92)}.user-role{font-size:10px;color:var(--sidebar-role);margin-top:1px}.avatar{width:32px;height:32px;border-radius:8px;background:var(--sidebar-avatar-bg);justify-content:center;font-size:13px;font-weight:600;color:var(--sidebar-avatar-fg);flex-shrink:0}.avatar,.bld-add{display:flex;align-items:center;cursor:pointer}.bld-add{gap:8px;padding:9px 14px;color:var(--text-muted);font-size:11px;transition:color .12s;background:none;border:none}.bld-add:hover{color:var(--teal)}.chat-col{width:var(--chat-w);flex-shrink:0;height:100vh;background:var(--navy-mid);border-left:1px solid var(--border);display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);overflow:hidden;position:relative}.chat-col.expanded{width:calc(100vw - var(--sidebar-w));flex-shrink:0}.chat-col.expanded .main-content{display:none}.chat-expand-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:12px;padding:3px 5px;border-radius:4px;transition:all .14s;flex-shrink:0;line-height:1}.chat-expand-btn:hover{color:var(--sidebar-active-fg);background:var(--sidebar-active-bg)}.chat-col.expanded .chat-chips,.chat-col.expanded .chat-input-area,.chat-col.expanded .chat-msgs{max-width:760px;margin:0 auto;width:100%}.chat-col.expanded .chat-expand-btn .expand-icon{display:none}.chat-col.expanded .chat-expand-btn .collapse-icon{display:inline}.chat-expand-btn .collapse-icon{display:none}.chat-col.collapsed{width:44px}.chat-hd{padding:14px 14px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.chat-hd-row,.chat-hd-title{display:flex;align-items:center;gap:8px}.chat-hd-title{font-family:Syne,sans-serif;font-size:13px;font-weight:700;flex:1}.chat-hd-sub,.chat-hd-title{white-space:nowrap;overflow:hidden}.chat-hd-sub{font-size:10px;color:var(--text-muted);margin-top:4px}.chat-toggle{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:12px;padding:3px 5px;border-radius:4px;transition:all .14s;flex-shrink:0;line-height:1}.chat-toggle:hover{color:var(--sidebar-active-fg);background:var(--sidebar-active-bg)}.chat-pulse{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 6px var(--teal-glow);animation:pulse 2s infinite;flex-shrink:0}.chat-body{display:flex;flex-direction:column;flex:1;overflow:hidden}.chat-col.collapsed .chat-body,.chat-col.collapsed .chat-hd-sub,.chat-col.collapsed .chat-hd-title .chat-label{display:none}.chat-col.collapsed .chat-hd{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 0;border-bottom:none;height:100%}.chat-col.collapsed .chat-hd-row{flex-direction:column;gap:12px}.chat-col.collapsed .chat-toggle{transform:rotate(180deg)}.chat-vertical-label{display:none;writing-mode:vertical-lr;font-family:Syne,sans-serif;font-size:10px;font-weight:700;color:var(--teal);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;margin-top:8px}.chat-col.collapsed .chat-vertical-label{display:block}.chat-chips{padding:9px 14px 8px;border-bottom:1px solid var(--border);flex-shrink:0}.chips-label{font-size:9px;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}.chip{display:inline-block;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:3px 9px;font-size:10px;color:var(--text-dim);cursor:pointer;margin:2px 2px 2px 0;transition:all .14s;white-space:nowrap}.chip:hover{border-color:var(--teal-glow);color:var(--teal);background:var(--teal-dim)}.chat-msgs{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:9px}.chat-msgs::-webkit-scrollbar{width:3px}.chat-msgs::-webkit-scrollbar-thumb{background:rgba(255,255,255,.08);border-radius:2px}.chat-msg{padding:9px 12px;border-radius:10px;font-size:11.5px;line-height:1.6;max-width:94%}.chat-msg.ai .md p{margin:0 0 7px}.chat-msg.ai .md p:last-child{margin:0}.chat-msg.ai .md ol,.chat-msg.ai .md ul{margin:4px 0 7px 16px;padding:0}.chat-msg.ai .md li{margin-bottom:3px}.chat-msg.ai .md strong{font-weight:600;color:var(--text)}.chat-msg.ai .md em{font-style:italic}.chat-msg.ai .md code{font-family:monospace;font-size:10.5px;background:var(--teal-dim);padding:1px 5px;border-radius:4px;color:var(--teal)}.chat-msg.ai .md h3{font-size:12px;font-weight:700;margin:8px 0 4px;color:var(--text)}.chat-msg.ai .md h4{font-size:11.5px;font-weight:600;margin:6px 0 3px;color:var(--text)}.chat-msg.ai .md hr{border:none;border-top:1px solid var(--border);margin:8px 0}.chat-msg.ai .md table{width:100%;border-collapse:collapse;font-size:11px;margin:6px 0}.chat-msg.ai .md th{background:var(--teal-dim);color:var(--teal);font-weight:600;text-align:left}.chat-msg.ai .md td,.chat-msg.ai .md th{padding:4px 8px;border:1px solid var(--border)}.chat-msg.ai .md tr:nth-child(2n) td{background:var(--card)}.chat-msg.ai{background:var(--teal-dim);border:1px solid rgba(0,201,177,.15);color:var(--text);align-self:flex-start;border-bottom-left-radius:3px}.chat-msg.user{background:rgba(255,255,255,.07);border:1px solid var(--border);color:var(--text);align-self:flex-end;border-bottom-right-radius:3px}.msg-who{font-size:9px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;margin-bottom:4px}.msg-who.ai{color:var(--teal)}.msg-who.u{color:var(--text-muted)}.chat-input-area{padding:11px 14px;border-top:1px solid var(--border);flex-shrink:0}.chat-row{display:flex;gap:7px;align-items:flex-end}.chat-in{flex:1;background:rgba(255,255,255,.05);border:1px solid var(--border);border-radius:9px;padding:8px 11px;font-size:12px;color:var(--text);outline:none;resize:none;font-family:inherit;min-height:36px;max-height:90px;line-height:1.4}.chat-in::-moz-placeholder{color:var(--text-muted)}.chat-in::placeholder{color:var(--text-muted)}.chat-in:focus{border-color:rgba(0,201,177,.3)}.chat-send{width:34px;height:34px;background:var(--teal);border:none;border-radius:8px;color:var(--navy);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:700;transition:opacity .14s;font-family:Arial}.chat-send:hover{opacity:.82}.chat-note{font-size:9.5px;color:var(--text-muted);text-align:center;margin-top:6px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:14px}.kpi-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:15px;position:relative;overflow:hidden}.kpi-card:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ka,var(--teal));opacity:.7}.kpi-label{font-size:10px;color:var(--text-muted);margin-bottom:6px}.kpi-val{font-family:Syne,sans-serif;font-size:26px;font-weight:700;line-height:1;margin-bottom:5px}.kpi-val em{font-style:normal;font-size:12px;font-weight:400;color:var(--text-dim);font-family:inherit}.kpi-delta{font-size:10.5px}.up{color:var(--teal)}.dn{color:var(--red)}.nt{color:var(--text-muted)}.kpi-ico{position:absolute;top:13px;right:13px;font-size:16px;opacity:.55}.row{display:grid;gap:11px;margin-bottom:11px}.g2{grid-template-columns:1fr 1fr}.g32{grid-template-columns:1.6fr 1fr}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.card-hd{display:flex;align-items:flex-start;justify-content:space-between;padding:13px 15px 11px;border-bottom:1px solid var(--border)}.card-title{font-size:12.5px;font-weight:600}.card-sub{font-size:10px;color:var(--text-muted);margin-top:2px}.card-lnk{font-size:11px;color:var(--teal);cursor:pointer;white-space:nowrap}.card-bd{padding:13px 15px}.anom-list{display:flex;flex-direction:column;gap:6px}.anom-item{border-radius:8px;padding:9px 11px;border:1px solid transparent;display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start}.an-noshow{background:var(--red-dim);border-color:rgba(255,92,92,.18)}.an-under{background:var(--amber-dim);border-color:rgba(245,166,35,.18)}.an-over{background:rgba(255,60,60,.1);border-color:rgba(255,60,60,.28)}.an-passive{background:var(--blue-dim);border-color:rgba(74,158,255,.18)}.anom-ico{font-size:14px;margin-top:1px}.anom-room{font-size:11.5px;font-weight:500;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.anom-detail{font-size:10px;color:var(--text-dim);margin-top:3px;line-height:1.4}.an-desk{background:var(--amber-dim);border-color:rgba(245,166,35,.2)}.rec-list{display:flex;flex-direction:column;gap:7px}.rec-item{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;background:rgba(255,255,255,.025);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .14s}.rec-item:hover{border-color:rgba(255,255,255,.11)}.rec-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;margin-top:4px}.rd-h{background:var(--teal);box-shadow:0 0 5px var(--teal-glow)}.rd-m{background:var(--amber)}.rd-l{background:var(--text-muted)}.rec-body{flex:1;min-width:0}.rec-title{font-size:11.5px;font-weight:500;margin-bottom:2px}.rec-desc{font-size:10.5px;color:var(--text-dim);line-height:1.4}.rec-foot{display:flex;align-items:center;gap:5px;margin-top:5px}.tag{font-size:9px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.04em}.t-split{background:var(--teal-dim);color:var(--teal)}.t-energy{background:var(--amber-dim);color:var(--amber)}.t-lease{background:var(--blue-dim);color:var(--blue)}.t-repurpose{background:var(--purple-dim);color:var(--purple)}.dashboard-home{flex:1}.dashboard-home-header{display:flex;align-items:center;justify-content:flex-end;margin-bottom:11px}.empty{color:var(--text-muted);font-size:11px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.settings-section{max-width:700px}.section-card{background:var(--navy-mid);border:1px solid var(--border);border-radius:10px;padding:20px 22px;margin-bottom:18px}.section-title{font-size:13.5px;font-weight:600;margin-bottom:4px}.section-desc{font-size:12px;color:var(--text-muted);margin-bottom:16px}.form-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.form-row label{font-size:12px;color:var(--text-muted);min-width:160px}.form-row input[type=number]{width:90px;padding:7px 10px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:DM Sans,sans-serif;font-size:13px}.form-row input:focus{outline:none;border-color:var(--teal)}.btn{font-family:DM Sans,sans-serif;font-size:12.5px;padding:7px 14px;border-radius:7px;border:1px solid var(--border);background:var(--teal);color:#fff;cursor:pointer;font-weight:500;transition:opacity .14s}.btn:hover{opacity:.85}.btn.secondary{background:var(--card);color:var(--text)}.btn.danger{background:var(--red-dim);color:var(--red);border-color:var(--red-dim)}.btn:disabled{background:var(--border);color:var(--text-muted);border-color:var(--border);cursor:not-allowed;opacity:1}.btn:disabled:hover{opacity:1}.save-status{font-size:11.5px;color:var(--text-muted)}.qr-table{width:100%;border-collapse:collapse;font-size:13px}.qr-table th{text-align:left;font-size:10.5px;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.qr-table td,.qr-table th{padding:8px 12px;border-bottom:1px solid var(--border)}.qr-table tr:last-child td{border-bottom:none}.token-code{font-family:monospace;background:var(--card);padding:2px 6px;border-radius:4px;font-size:12px}.bldg-card{background:var(--navy-mid);border:1px solid var(--border);border-radius:10px;margin-bottom:14px;overflow:hidden;padding:10px 22px}.bldg-name{font-size:14px;font-weight:600}.bldg-meta{font-size:11.5px;color:var(--text-muted);margin-top:2px}.bldg-actions{display:flex;gap:8px;flex-shrink:0}.floor-block{display:block}.floor-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin:14px 0 6px}.sp-table{width:100%;border-collapse:collapse;font-size:13px}.sp-table th{padding:6px 8px;text-align:left;font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.sp-table td,.sp-table th{border-bottom:1px solid var(--border)}.sp-table td{padding:7px 8px}.sp-table tr:last-child td{border-bottom:none}.sp-table .act-cell{display:flex;gap:6px;justify-content:flex-end}.inline-edit{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-edit input{padding:6px 10px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:DM Sans,sans-serif;font-size:13px}.inline-edit input:focus{outline:none;border-color:var(--teal)}.modal-box{background:var(--navy-mid);border:1px solid var(--border);border-radius:12px;padding:24px;width:400px;max-width:92vw}.modal-title{font-size:14px;font-weight:600;margin-bottom:16px}.modal-field{margin-bottom:12px}.modal-field label{display:block;font-size:11.5px;color:var(--text-muted);margin-bottom:4px}.modal-field input,.modal-field select{width:100%;padding:8px 10px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:DM Sans,sans-serif;font-size:13px}.modal-field input:focus,.modal-field select:focus{outline:none;border-color:var(--teal)}.modal-actions{display:flex;gap:10px;margin-top:18px;justify-content:flex-end}.temp-password-reveal{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;background:var(--navy-mid);border:1px solid var(--border);color:var(--text);padding:14px 18px;border-radius:10px;font-size:13px;z-index:9999;box-shadow:0 4px 24px rgba(0,0,0,.4);min-width:320px;max-width:480px}.temp-password-reveal span{font-size:12px;color:var(--text-muted)}.temp-password-reveal code{flex:1;font-size:13px;font-weight:600;color:var(--text);background:var(--card);padding:4px 8px;border-radius:6px}.temp-password-reveal button{background:none;border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:4px 10px;font-size:11px;cursor:pointer}.tab-item{padding:9px 12px;border-radius:7px;cursor:pointer;font-size:13px;color:rgba(0,0,0,.6);transition:all .12s}.tab-item.active,.tab-item:hover{background:var(--teal-dim);color:var(--teal)}.tab-item.active{font-weight:500}.content{flex:1;display:flex;overflow:hidden}.dept-list-panel{width:280px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--navy-mid)}.dept-list-header{padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.dept-list-header span{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.dept-items{flex:1;overflow-y:auto;padding:8px}.dept-item{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;cursor:pointer;transition:background .12s;margin-bottom:2px}.dept-item.active,.dept-item:hover{background:var(--teal-dim)}.dept-name{font-size:13px;font-weight:500;flex:1}.dept-util{font-size:12px;font-weight:600;margin-left:auto}.detail-panel{flex:1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:18px}.detail-panel .card{padding:16px 18px}.empty-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:13px}.error-banner{margin:12px 22px 0;padding:10px 14px;border-radius:8px;background:var(--red-dim);color:var(--red);font-size:12.5px}.stat-val{font-family:Syne,sans-serif;font-size:22px;font-weight:700}.stat-lbl{font-size:10.5px;color:var(--text-muted);margin-top:2px}.form-group{margin-bottom:12px}.form-group label{display:block;font-size:11.5px;color:var(--text-muted);margin-bottom:4px}.form-group input{width:100%;padding:8px 10px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:DM Sans,sans-serif;font-size:13px}.form-group input:focus{outline:none;border-color:var(--teal)}.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1000;align-items:center;justify-content:center}.modal-bg.open{display:flex}.modal{border:1px solid var(--border);border-radius:12px;padding:24px;width:380px;max-width:90vw}.modal,.summary-bar{background:var(--navy-mid)}.summary-bar{display:flex;gap:16px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--border);border-radius:9px;font-size:13px;color:var(--text)}.summary-bar span{font-weight:600}.filter-btn{font-family:DM Sans,sans-serif;font-size:12px;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer}.filter-btn.active{border-color:var(--teal);color:var(--teal);background:var(--teal-dim)}table.sensor-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--navy-mid);border:1px solid var(--border);border-radius:10px}.sensor-table th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--card)}.sensor-table td,.sensor-table th{padding:9px 14px;border-bottom:1px solid var(--border)}.sensor-table tr:last-child td{border-bottom:none}.sensor-table button{font-family:DM Sans,sans-serif;font-size:11px;padding:3px 8px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;margin-right:6px}.sensor-table button:hover{border-color:var(--teal);color:var(--teal)}.registration-card{background:var(--navy-mid);border:1px solid var(--border);border-radius:10px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}.registration-card h2{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px}.registration-card label{font-size:11px;color:var(--text-muted)}.registration-card input[type=text],.registration-card select{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:DM Sans,sans-serif;font-size:13px}.registration-card select:disabled{opacity:.45;cursor:not-allowed}.registration-card button{align-self:flex-start;font-family:DM Sans,sans-serif;font-size:12px;padding:6px 12px;border-radius:7px;border:1px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer}.registration-card button:disabled{opacity:.5;cursor:not-allowed;background:var(--border);border-color:var(--border);color:var(--text-muted)}table.mappings-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--navy-mid);border:1px solid var(--border);border-radius:10px;margin-top:10px}.mappings-table th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--card)}.mappings-table td,.mappings-table th{padding:9px 14px;border-bottom:1px solid var(--border)}.mappings-table tr:last-child td{border-bottom:none}.mappings-table button{font-family:DM Sans,sans-serif;font-size:11px;padding:3px 8px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer}.mappings-table button:hover{border-color:var(--teal);color:var(--teal)}.export-card{background:var(--navy-mid);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-top:18px;display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.export-card label{font-size:11px;color:var(--text-muted);display:block;margin-bottom:4px}.export-card input[type=date]{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:DM Sans,sans-serif;font-size:12px}.export-card button{font-family:DM Sans,sans-serif;font-size:12px;padding:6px 12px;border-radius:7px;border:1px solid var(--teal);background:var(--teal);color:#fff;cursor:pointer}.thresholds-card{background:var(--navy-mid);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.thresh-row{display:flex;align-items:center;gap:12px;margin-top:10px;flex-wrap:wrap}.thresh-group{display:flex;flex-direction:column;gap:4px}.thresh-group label{font-size:11px;color:var(--text-muted)}.thresh-group input{width:90px;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:DM Sans,sans-serif;font-size:13px}.readings-table th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--card);position:sticky;top:0}.readings-table td,.readings-table th{padding:8px 14px;border-bottom:1px solid var(--border)}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:5px;font-size:11.5px;font-weight:600}.st-ok{background:rgba(5,150,105,.1);color:#059669}.st-warning{background:var(--amber-dim);color:var(--amber)}.st-silent{background:var(--red-dim);color:var(--red)}.st-offline{background:rgba(0,0,0,.08);color:#6b7280}.st-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.ok-dot{background:#059669}.warning-dot{background:var(--amber);animation:pulse 1.5s infinite}.silent-dot{background:var(--red);animation:pulse 1s infinite}.offline-dot{background:#6b7280}.influx-warn-badge{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:2px 6px;border-radius:5px;font-size:10.5px;font-weight:600;background:var(--red-dim);color:var(--red);cursor:help;white-space:nowrap}.readings-table tr:last-child td{border-bottom:none}.fp-layout{display:grid;grid-template-columns:320px 1fr;height:100vh;flex:1;min-height:0}.fp-panel{background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;overflow-y:auto}.fp-panel-section{padding:18px 20px;border-bottom:1px solid var(--sidebar-border)}.fp-panel-section:last-child{border-bottom:none}.fp-section-title{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sidebar-section);margin-bottom:12px}.fp-floor-btn{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 14px;margin-bottom:6px;background:rgba(255,255,255,.04);border:1px solid var(--sidebar-border);border-radius:8px;cursor:pointer;color:var(--sidebar-text);font-family:DM Sans,sans-serif;font-size:13px;transition:all .14s}.fp-floor-btn:hover{border-color:rgba(255,255,255,.25);color:var(--sidebar-text-hover)}.fp-floor-btn.active{border-color:var(--sidebar-active-bar);color:var(--sidebar-active-fg);background:var(--sidebar-active-bg)}.fp-floor-btn .fp-floor-status{font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px}.fp-floor-btn .fp-floor-status.has-svg{background:rgba(76,175,125,.15);color:var(--green)}.fp-floor-btn .fp-floor-status.no-svg{background:rgba(255,255,255,.06);color:var(--text-muted)}.fp-bld-group{margin-bottom:10px}.fp-bld-head{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;margin-bottom:6px;background:var(--teal-dim);border:1px solid rgba(0,201,177,.2);border-radius:6px;cursor:pointer;text-align:left;color:var(--teal);font-family:DM Sans,sans-serif;font-size:12px;font-weight:600}.fp-bld-head:hover{border-color:rgba(0,201,177,.45)}.fp-bld-caret{display:inline-block;font-size:9px;transition:transform .14s}.fp-bld-head.open .fp-bld-caret{transform:rotate(90deg)}.fp-bld-head-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-bld-head-count{font-size:10px;font-weight:500;color:var(--text-muted);flex-shrink:0}.fp-bld-floors{padding-left:10px}.fp-bld-no-floors{font-size:11px;color:var(--text-muted);padding:4px 0 8px}.fp-upload-zone{border:2px dashed var(--border);border-radius:10px;padding:24px 16px;text-align:center;cursor:pointer;transition:all .2s;position:relative}.fp-upload-zone.fp-drag-over,.fp-upload-zone:hover{border-color:var(--teal);background:var(--teal-dim)}.fp-upload-zone input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.fp-upload-icon{font-size:28px;margin-bottom:8px}.fp-upload-label{font-size:12px;color:var(--text-muted);line-height:1.6}.fp-upload-label strong{color:var(--text)}.fp-room-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.fp-room-row:last-child{border-bottom:none}.fp-room-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.fp-room-dot.matched{background:var(--green)}.fp-room-dot.unmatched{background:var(--amber)}.fp-room-dot.unmapped{background:rgba(255,255,255,.15)}.fp-room-name{flex:1;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp-room-id{font-family:monospace;font-size:10px;color:var(--text-muted)}.fp-room-tag{font-size:9px;font-weight:600;padding:2px 6px;border-radius:3px;flex-shrink:0}.fp-room-tag.matched{background:rgba(76,175,125,.15);color:var(--green)}.fp-room-tag.unmatched{background:rgba(245,166,35,.15);color:var(--amber)}.fp-room-tag.unmapped{background:rgba(255,255,255,.06);color:var(--text-muted)}.fp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border-radius:8px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;border:none;transition:all .14s}.fp-btn-primary{background:var(--teal);color:var(--navy)}.fp-btn-primary:hover{opacity:.88}.fp-btn-primary:disabled{opacity:.4;cursor:not-allowed}.fp-btn-danger{background:rgba(255,92,92,.12);color:var(--red);border:1px solid rgba(255,92,92,.25)}.fp-btn-danger:hover{background:rgba(255,92,92,.2)}.fp-btn-ghost{background:rgba(255,255,255,.05);color:var(--sidebar-text);border:1px solid var(--sidebar-border)}.fp-btn-ghost:hover{background:rgba(255,255,255,.09);color:var(--sidebar-text-hover)}.fp-btn-row{display:flex;gap:8px;margin-top:14px}.fp-banner{padding:10px 14px;border-radius:8px;font-size:12px;line-height:1.5;margin-bottom:12px;display:none}.fp-banner.show{display:block}.fp-banner.success{background:rgba(76,175,125,.12);border:1px solid rgba(76,175,125,.25);color:#8ed4b0}.fp-banner.warning{background:rgba(245,166,35,.12);border:1px solid rgba(245,166,35,.25);color:#f5c842}.fp-banner.error{background:rgba(255,92,92,.12);border:1px solid rgba(255,92,92,.25);color:#ff8a8a}.fp-banner.info{background:rgba(0,201,177,.08);border:1px solid rgba(0,201,177,.2);color:#5de0d0}.fp-preview-area{background:var(--navy);display:flex;flex-direction:column;overflow:hidden}.fp-preview-toolbar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.fp-preview-toolbar-title{font-size:12px;color:var(--text-muted)}.fp-preview-toolbar-hint{font-size:11px;color:var(--text-muted);margin-left:auto}.fp-preview-wrap{flex:1;overflow:auto;padding:20px;display:flex;align-items:flex-start;justify-content:center}#fp-svg-preview{max-width:100%;background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}#fp-svg-preview svg{display:block;width:100%}#fp-svg-preview [data-id]{cursor:pointer;transition:opacity .15s}#fp-svg-preview [data-id]:hover>path,#fp-svg-preview [data-id]:hover>polygon,#fp-svg-preview [data-id]:hover>rect{filter:brightness(1.4)}#fp-svg-preview [data-id].fp-matched>path,#fp-svg-preview [data-id].fp-matched>rect{fill:rgba(76,175,125,.25)!important;stroke:rgba(76,175,125,.7)!important}#fp-svg-preview [data-id].fp-unmatched>path,#fp-svg-preview [data-id].fp-unmatched>rect{fill:rgba(245,166,35,.2)!important;stroke:rgba(245,166,35,.6)!important}.fp-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);text-align:center;padding:40px}.fp-empty-icon{font-size:48px;opacity:.3}.fp-empty-text{font-size:13px;max-width:280px;line-height:1.6}.fp-instructions{padding:18px 20px;border-bottom:1px solid var(--sidebar-border)}.fp-step{display:flex;gap:10px;margin-bottom:12px}.fp-step-num{width:20px;height:20px;border-radius:50%;background:rgba(167,139,250,.2);color:var(--sidebar-active-fg);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}.fp-step-text{font-size:12px;color:var(--sidebar-text);line-height:1.6}.fp-step-text strong{color:var(--sidebar-text-hover)}.fp-code{font-family:monospace;font-size:10px;background:var(--teal-dim);color:var(--teal-lt);padding:1px 5px;border-radius:3px}.fp-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.2);border-top-color:currentcolor;border-radius:50%;animation:fp-spin .6s linear infinite}@keyframes fp-spin{to{transform:rotate(1turn)}}.fp-back-link{font-size:11px;color:rgba(196,181,253,.6);text-decoration:none;display:inline-flex;align-items:center;gap:4px;margin-bottom:10px;transition:color .14s}.fp-back-link:hover{color:#c4b5fd}.fp-editor-title{font-family:Syne,sans-serif;font-size:16px;font-weight:800;color:#c4b5fd;margin-bottom:12px}.bar-chart{flex-direction:column}.bar-chart,.bar-row{display:flex;gap:9px}.bar-row{align-items:center}.bar-lbl{font-size:10.5px;color:var(--text-dim);width:108px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.bar-track{flex:1;height:5px;background:rgba(255,255,255,.05);border-radius:3px;overflow:hidden}.bar-fill{height:100%;border-radius:3px;transition:width .9s cubic-bezier(.4,0,.2,1);animation:barGrow .9s cubic-bezier(.4,0,.2,1) both}@keyframes barGrow{0%{width:0}}.bt{background:var(--teal)}.ba{background:var(--amber)}.br{background:var(--red)}.bb{background:var(--blue)}.bar-pct{font-size:10px;color:var(--text-muted);width:26px;text-align:right;flex-shrink:0}.hm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.hm-cell{aspect-ratio:1;border-radius:3px;cursor:pointer;transition:opacity .2s}.hm-cell:hover{opacity:.65}.hm-lbl{justify-content:space-between;font-size:9px;color:var(--text-muted)}.hm-lbl,.occ-row{display:flex;margin-top:5px}.occ-row{gap:11px;flex-wrap:wrap}.occ-row,.occ-seg{align-items:center}.occ-seg{display:flex;gap:4px;font-size:9.5px;color:var(--text-muted)}.occ-bar{height:4px;border-radius:2px;min-width:3px}.badge{font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;display:inline-block}.b-ns{background:var(--red);color:white}.b-un{background:var(--amber);color:var(--navy)}.b-ov{background:#ff3c3c;color:white}.b-pa{background:var(--blue);color:white}.b-dk{background:var(--amber);color:var(--navy)}.occ-legend{display:flex;gap:12px;flex-wrap:wrap;padding:8px 14px;border-top:1px solid var(--border);background:rgba(0,0,0,.15)}.leg-item{gap:5px}.leg-dot{width:8px;height:8px;border-radius:50%}.rec-conf{font-size:10px;color:var(--text-muted);margin-left:auto}.consol-list{display:flex;flex-direction:column;gap:7px}.consol-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--amber-dim);border:1px solid rgba(245,166,35,.18);border-radius:8px}.consol-arr{color:var(--amber);font-size:13px}.consol-body{flex:1;min-width:0}.consol-from{font-size:11px;font-weight:500}.consol-to{font-size:10px;color:var(--text-dim);margin-top:1px}.consol-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.consol-sav{font-size:10.5px;color:var(--amber);font-weight:600}#period-custom-row .btn,.consol-item .btn{font-size:10px;font-weight:600;padding:3px 9px;border-radius:5px;cursor:pointer;border:none;font-family:inherit;transition:opacity .14s}#period-custom-row .btn-ok,.consol-item .btn-ok{background:var(--teal);color:var(--navy)}#period-custom-row .btn-ok:hover,.consol-item .btn-ok:hover{opacity:.82}#period-custom-row .btn-no,.consol-item .btn-no{background:rgba(255,255,255,.08);color:var(--text-dim)}.period-tabs{display:flex;background:var(--card);border:1px solid var(--border);border-radius:7px;padding:3px}.period-tab{padding:3px 10px;font-size:11px;border-radius:5px;cursor:pointer;color:var(--text-dim);transition:all .14s}.period-tab.active{background:var(--teal);color:var(--navy);font-weight:600}.widgets-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.widget-wide{grid-column:1/-1}.widget-wrapper{position:relative;border-radius:10px}.widget-ghost{position:fixed;z-index:1000;pointer-events:none;border-radius:10px;overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.65);transform:rotate(1.2deg) scale(1.03);opacity:.92;transition:none}.widget-wrapper.dragging{opacity:.25;pointer-events:none}.edit-layout-btn{display:flex;align-items:center;gap:6px;padding:5px 12px;border-radius:7px;background:var(--card);border:1px solid var(--border);color:var(--text);font-family:DM Sans,sans-serif;font-size:12px;cursor:pointer;transition:all .14s}.edit-layout-btn:hover{border-color:var(--teal);background:var(--teal-dim)}.edit-mode-actions{display:none;align-items:center;gap:8px}.edit-mode-label{font-size:11px;color:var(--amber);font-weight:600;display:flex;align-items:center;gap:5px}.edit-mode-label:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber);display:inline-block;animation:pulse 1.5s infinite}.btn-cancel-edit{padding:5px 14px;border-radius:7px;background:transparent;color:var(--text-muted);font-family:DM Sans,sans-serif;font-size:12px;font-weight:500;cursor:pointer;transition:all .14s;border:1px solid rgba(0,0,0,.2)}.btn-cancel-edit:hover{background:rgba(0,0,0,.05);color:var(--text);border-color:rgba(0,0,0,.35)}.btn-save-edit{padding:5px 14px;border-radius:7px;background:var(--teal);border:1px solid transparent;color:#fff;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .14s}.btn-save-edit:hover{filter:brightness(1.1)}.widgets-grid.edit-active .widget-overlay{cursor:grab}.widget-overlay{display:none;position:absolute;inset:0;border-radius:10px;z-index:10;background:rgba(124,58,237,.08);backdrop-filter:blur(1px);flex-direction:column;align-items:center;justify-content:space-between;padding:10px;pointer-events:all;border:2px dashed var(--border);transition:border-color .15s,background .15s}.widgets-grid.edit-active .widget-overlay{display:flex}.widget-wrapper.dragging .widget-overlay{border-color:var(--teal);background:var(--teal-dim)}.widget-grip{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:grab;padding:6px 16px;border-radius:8px;background:#fff;border:1px solid var(--border);box-shadow:0 2px 8px rgba(0,0,0,.08);transition:box-shadow .12s,border-color .12s}.widget-grip:hover{border-color:var(--teal);box-shadow:0 2px 12px rgba(124,58,237,.2)}.widget-grip:active{cursor:grabbing}.grip-row{display:flex;gap:4px}.grip-dot{width:4px;height:4px;border-radius:50%;background:var(--text-muted)}.widget-remove-btn{position:absolute;top:10px;right:10px;width:26px;height:26px;border-radius:50%;background:#ef4444;border:none;color:#fff;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,transform .12s;line-height:1;box-shadow:0 2px 6px rgba(239,68,68,.4)}.widget-remove-btn:hover{background:#dc2626;transform:scale(1.1)}.widget-drop-placeholder{border-radius:10px;border:2px dashed rgba(0,201,177,.5);background:rgba(0,201,177,.06);min-height:120px}.widget-drop-placeholder.widget-wide{grid-column:1/-1}.widget-inventory{margin-top:18px;border-radius:12px;border:1px dashed var(--border);background:var(--card);padding:14px 16px}.widget-inventory-hd{display:flex;align-items:center;gap:8px;margin-bottom:12px}.widget-inventory-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.widget-inventory-hint{font-size:11px;color:var(--text-muted);opacity:.6}.widget-inventory-empty{font-size:12px;color:var(--text-muted);padding:4px 0}.widget-inventory-list{display:flex;flex-wrap:wrap;gap:8px}.widget-inventory-chip{display:flex;align-items:center;gap:7px;padding:7px 12px;border-radius:8px;cursor:pointer;background:#fff;border:1px solid var(--border);transition:background .14s,border-color .14s;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:0 1px 3px rgba(0,0,0,.06)}.widget-inventory-chip:hover{background:var(--teal-dim);border-color:var(--teal)}.widget-inventory-chip-plus{width:16px;height:16px;border-radius:50%;background:var(--teal-dim);border:1px solid var(--teal);display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--teal);line-height:1;transition:background .14s}.widget-inventory-chip:hover .widget-inventory-chip-plus{background:var(--teal);color:#fff}.widget-inventory-chip-label{font-size:12px;color:var(--text);font-weight:500}.widget-inventory-chip:hover .widget-inventory-chip-label{color:var(--teal)}.app-shell{line-height:normal}body:has(.app-shell){height:100vh;display:flex;overflow:hidden}.topbar-title{font-family:Syne,sans-serif;font-size:15px;font-weight:700}.topbar-sub,.topbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-sub{font-size:11px;color:var(--text-muted);margin-top:1px}.demo-badge{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:4px;background:rgba(232,151,42,.12);color:#e8972a;border:1px solid rgba(232,151,42,.3);display:none}.demo-badge.visible,.sd-live{display:inline-block}.sd-live{width:6px;height:6px;border-radius:50%;margin-right:4px;background:var(--teal);animation:pulse 2s infinite;box-shadow:0 0 5px var(--teal-glow)}.building-switcher{position:relative}.building-btn{display:flex;align-items:center;gap:7px;padding:5px 11px;border-radius:7px;background:var(--card);border:1px solid var(--border);color:var(--text);font-family:DM Sans,sans-serif;font-size:12px;cursor:pointer;transition:all .14s;white-space:nowrap}.building-btn:hover{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.07)}.building-btn svg{flex-shrink:0}.building-btn .bld-name{max-width:160px;overflow:hidden;text-overflow:ellipsis}.building-btn .bld-chevron{opacity:.5;margin-left:2px;transition:transform .15s}.building-btn.open .bld-chevron{transform:rotate(180deg)}.building-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:var(--navy-mid);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.5);z-index:500;overflow:hidden;display:none}.building-dropdown.open{display:block}.bld-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .12s}.bld-item:hover{background:rgba(255,255,255,.05)}.bld-item.active{background:var(--teal-dim)}.bld-item .bld-dot{width:7px;height:7px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.bld-item.active .bld-dot{background:var(--teal)}.bld-item-name{font-size:12px;font-weight:500;color:var(--text)}.bld-item-addr{font-size:10px;color:var(--text-muted);margin-top:1px}.bld-divider{height:1px;background:var(--border);margin:4px 0}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeUp .32s ease both}.dashboard-content{flex:1;overflow-y:auto;padding:18px 22px}.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:55vh;gap:14px;opacity:.4;text-align:center}.ph-ico{font-size:52px;line-height:1}.ph-title{font-family:Syne,sans-serif;font-size:18px;font-weight:700}.ph-desc{font-size:12px;color:var(--text-dim);max-width:280px;line-height:1.55}.logo-lockup{gap:11px;min-width:0}.logo-lockup,.logo-tile{display:flex;align-items:center}.logo-tile{width:34px;height:34px;border-radius:6px;flex-shrink:0;background:#0D1B2A;justify-content:center;overflow:hidden}.logo-tile svg{width:100%;height:100%;display:block}.logo-brand{font-family:Syne,sans-serif;font-weight:700;font-size:15px;color:#fff;line-height:1.15;letter-spacing:.01em;white-space:nowrap}.logo-tagline{font-size:8px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.42);line-height:1.2;margin-top:1px;white-space:nowrap}.fp-rect{transition:fill .2s,stroke-width .2s}.fp-room{cursor:pointer}.fp-furn{opacity:.55}.fp-furn [data-area-id]{opacity:1;pointer-events:all;cursor:crosshair}.fp-room:hover .fp-rect{stroke-width:2.5;filter:brightness(.96) saturate(1.15)}.fp-room.selected .fp-rect{stroke-width:3;filter:brightness(1.08)}.floor-tab{padding:6px 18px;border-radius:6px;font-size:11px;font-weight:500;cursor:pointer;border:1px solid var(--border);color:var(--text-dim);background:var(--card);transition:all .14s}.floor-tab.active{background:var(--teal);color:#fff;font-weight:700;border-color:transparent}.rdp-label{font-size:9px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-bottom:3px}.rdp-val{font-size:12px;color:var(--text);margin-bottom:10px;line-height:1.4}.util-bar-track{height:5px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:3px}.util-bar-fill{height:100%;border-radius:3px;transition:width .8s cubic-bezier(.4,0,.2,1)}.occ-pill{display:inline-block;font-size:10px;font-weight:600;padding:3px 9px;border-radius:12px}.spaces-filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.sp-pill-wrap{position:relative}.sp-pill{display:flex;align-items:center;gap:6px;padding:6px 12px 6px 10px;border-radius:20px;border:1px solid var(--border);background:var(--card);font-size:12px;font-weight:500;cursor:pointer;color:var(--text);transition:all .14s;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sp-pill:hover{border-color:var(--teal);background:var(--teal-dim)}.sp-pill svg{flex-shrink:0;opacity:.6}.sp-pill-chev{opacity:.45;font-size:9px;margin-left:2px;transition:transform .14s}.sp-pill-wrap.open .sp-pill-chev{transform:rotate(180deg)}.sp-pill-drop{position:absolute;top:calc(100% + 6px);left:0;min-width:160px;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:4px;z-index:200;box-shadow:0 8px 32px rgba(0,0,0,.4);display:none}.sp-pill-wrap.open .sp-pill-drop{display:block}.sp-pill-item{padding:7px 12px;font-size:12px;border-radius:4px;cursor:pointer;color:var(--text-dim);transition:background .1s}.sp-pill-item:hover{background:rgba(255,255,255,.06);color:var(--text)}.sp-pill-item.active{color:var(--teal);font-weight:600}.sav-box{border:1px solid var(--border);border-radius:9px;background:var(--card)}.sav-lbl{font-size:9px}.sp-tab-nav{display:flex;gap:0;margin-bottom:16px;border-bottom:1px solid var(--border)}.sp-tab{padding:8px 20px;font-size:12px;font-weight:500;cursor:pointer;color:var(--text-muted);margin-bottom:-1px;transition:all .14s;border-radius:2px 2px 0 0;background:none;border:none;border-bottom:2px solid transparent;font-family:inherit}.sp-tab:hover{color:var(--text-dim);background:rgba(255,255,255,.025)}.sp-tab.active{color:var(--teal);border-bottom-color:var(--teal);font-weight:600}.fp-widget-hd{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px}.fp-widget-title{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.fp-ctrl-btn{width:26px;height:26px;border-radius:5px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:400;line-height:1;transition:all .12s;flex-shrink:0}.fp-ctrl-btn:hover{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.2);color:var(--text)}.fp-ctrl-btn.active{background:var(--teal-dim);color:var(--teal);border-color:var(--teal);font-weight:600}.heat-period-tabs{display:flex;gap:2px}.heat-period-tab{padding:3px 8px;border-radius:4px;font-size:9.5px;font-weight:600;cursor:pointer;border:1px solid var(--border);color:var(--text-muted);background:transparent}.heat-period-tab.active{background:var(--teal-dim);color:var(--teal);border-color:var(--teal)}.leg-item{display:flex;align-items:center;font-size:9.5px;color:var(--text-muted);white-space:nowrap}.rdp-space-row:hover{background:rgba(255,255,255,.04)}.topbar-left{min-width:0}.tab-group{display:flex;gap:4px}.period-btn,.tab-btn{font-family:DM Sans,sans-serif;font-size:12px;padding:5px 12px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text-muted);cursor:pointer;transition:all .14s}.period-btn.active,.tab-btn.active{background:var(--teal-dim);border-color:var(--teal);color:var(--teal);font-weight:500}.period-btn:hover:not(.active),.tab-btn:hover:not(.active){border-color:var(--teal);color:var(--text)}.period-group{display:flex;gap:4px}.app-shell>main.main{display:flex;flex-direction:column;height:100vh;overflow:hidden}.env-page .kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.env-page .kpi{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.env-page .kpi-val{font-family:Syne,sans-serif;font-size:26px;font-weight:700}.env-page .kpi-lbl{font-size:11px;color:var(--text-muted);margin-top:4px}.env-page .section-title{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px}.env-page .space-table{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.env-page .space-table table{width:100%;border-collapse:collapse;font-size:13px}.env-page .space-table th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--card)}.env-page .space-table td,.env-page .space-table th{padding:10px 14px;border-bottom:1px solid var(--border)}.env-page .space-table td{vertical-align:middle}.env-page .space-table tr:last-child td{border-bottom:none}.env-page .space-table tr:hover td{background:var(--bg-hover)}.env-page .btn-refresh{font-family:DM Sans,sans-serif;font-size:12px;padding:5px 12px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;transition:all .14s}.env-page .btn-refresh:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-dim)}.metric-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:5px;font-size:11px;font-weight:600}.pill-good{background:rgba(5,150,105,.12);color:#059669}.pill-mod,.pill-moderate{background:var(--amber-dim);color:var(--amber)}.pill-poor{background:var(--red-dim);color:var(--red)}.pill-na{background:var(--card);color:var(--text-muted)}.env-page .live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.env-page .live-card{background:var(--card);border:1px solid var(--border);border-radius:9px;padding:12px 14px}.env-page .live-card-title{font-size:12px;font-weight:600;margin-bottom:8px}.env-page .live-metrics{display:flex;gap:6px;flex-wrap:wrap}.comfort-layout{display:flex;gap:22px}.comfort-layout .prefs-panel{width:320px;flex-shrink:0;display:flex;flex-direction:column;gap:16px}.comfort-layout .scores-panel{flex:1;min-width:0}.comfort-layout .card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.comfort-layout .card-title{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px}.comfort-layout .weight-row{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.comfort-layout .weight-label{display:flex;justify-content:space-between;font-size:12.5px}.comfort-layout .weight-label span:last-child{font-weight:600;color:var(--teal)}.comfort-layout input[type=range]{width:100%;accent-color:var(--teal)}.comfort-layout .range-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.comfort-layout .range-group{display:flex;flex-direction:column;gap:3px}.comfort-layout .range-group label{font-size:11px;color:var(--text-muted)}.comfort-layout .range-group input[type=number]{width:100%;padding:5px 8px;border-radius:6px;border:1px solid var(--border);background:var(--navy-mid);color:var(--text);font-family:DM Sans,sans-serif;font-size:12.5px}.comfort-layout .range-group input:focus{outline:none;border-color:var(--teal)}.comfort-layout .donut-container{display:flex;justify-content:center;margin-bottom:12px}.comfort-layout .save-btn{font-family:DM Sans,sans-serif;font-size:12.5px;padding:8px 16px;border-radius:7px;border:none;background:var(--teal);color:#fff;cursor:pointer;width:100%;font-weight:500;transition:opacity .14s}.comfort-layout .save-btn:hover{opacity:.88}.comfort-layout .sum-warn{font-size:11px;color:var(--red);margin-top:4px}.comfort-layout .period-btns{display:flex;gap:6px;margin-bottom:14px}.comfort-layout .comfort-period-btn{font-family:DM Sans,sans-serif;font-size:12px;padding:5px 10px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;transition:all .14s}.comfort-layout .comfort-period-btn.active{border-color:var(--teal);color:var(--teal);background:var(--teal-dim)}.comfort-layout .scores-table table{width:100%;border-collapse:collapse;font-size:13px}.comfort-layout .scores-table th{text-align:left;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--card)}.comfort-layout .scores-table td,.comfort-layout .scores-table th{padding:9px 12px;border-bottom:1px solid var(--border)}.comfort-layout .scores-table tr:last-child td{border-bottom:none}.comfort-layout .score-circle{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.comfort-layout .sub-pill{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10.5px;font-weight:600;margin:1px}@media (max-width:768px){.env-page .kpi-row{grid-template-columns:repeat(2,1fr)}.comfort-layout{flex-direction:column}.comfort-layout .prefs-panel{width:100%}}.analytics-page .topbar-right,.bookings-page .topbar-right,.optimisation-page .topbar-right{gap:10px}.analytics-page>.content,.bookings-page>.content,.optimisation-page>.content{display:block;flex:1;overflow-y:auto;padding:18px 22px}.analytics-page>.content{display:flex;flex-direction:column;gap:16px}.bookings-page .filter-row,.optimisation-page .filter-row{display:flex;gap:6px;flex-wrap:wrap}.bookings-page .filter-btn,.optimisation-page .filter-btn{padding:5px 12px;border-radius:6px;font-size:10.5px;font-weight:500;cursor:pointer;transition:all .14s;border:1px solid var(--border);background:var(--card);color:var(--text-dim)}.bookings-page .filter-btn.active,.optimisation-page .filter-btn.active{background:var(--teal);color:var(--navy);font-weight:600;border-color:transparent}.bookings-page .booking-row:hover{background:rgba(255,255,255,.03)}.bookings-page .occ-legend .leg-item{white-space:normal}.rules-page>.content{display:block;flex:1;overflow-y:auto;padding:24px;max-width:1100px;width:100%}.rules-page .topbar-title{font-family:Syne,sans-serif;font-size:17px;font-weight:700}.rules-page .page-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}.rules-page .page-hd h1{font-family:Syne,sans-serif;font-size:20px;font-weight:700}.rules-page .btn{padding:7px 16px;border-radius:7px;border:1px solid var(--border);background:transparent;color:var(--text);font-family:DM Sans,sans-serif;font-size:13px;font-weight:400;cursor:pointer;transition:background .14s}.rules-page .btn:hover{background:rgba(255,255,255,.07)}.rules-page .btn.primary{background:var(--purple);border-color:var(--purple);color:#fff}.rules-page .btn.primary:hover{background:#6d28d9}.rules-page .btn.danger{background:var(--red);border-color:var(--red);color:#fff}.rules-page .btn.danger:hover{background:#dc2626}.rules-page .btn.sm{padding:4px 10px;font-size:12px}.rules-page .btn:disabled{opacity:.55;cursor:not-allowed}.rules-page .tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:20px}.rules-page .tabs .tab-btn{padding:9px 18px;font-size:13px;font-family:DM Sans,sans-serif;font-weight:400;background:none;border-radius:0;color:var(--text-muted);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .14s,border-color .14s}.rules-page .tabs .tab-btn.active{color:var(--teal);border-bottom-color:var(--teal)}.rules-page .rules-table-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border)}.rules-page table{width:100%;border-collapse:collapse;font-size:13px}.rules-page th{padding:9px 14px;text-align:left;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);background:var(--card)}.rules-page td,.rules-page th{border-bottom:1px solid var(--border)}.rules-page td{padding:10px 14px;vertical-align:middle}.rules-page tr:last-child td{border-bottom:none}.rules-page tr:hover td{background:rgba(255,255,255,.025)}.rules-page .badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}.rules-page .badge-green{background:rgba(34,197,94,.15);color:var(--green)}.rules-page .badge-muted{background:rgba(148,163,184,.12);color:var(--text-muted)}.rules-page .badge-type{background:rgba(124,58,237,.15);color:#a78bfa}.rules-page .badge-amber{background:rgba(245,158,11,.12);color:var(--amber)}.rules-page .actions-cell{display:flex;gap:6px;align-items:center}.rules-page .toggle-switch{position:relative;width:34px;height:19px;cursor:pointer}.rules-page .toggle-switch input{opacity:0;width:0;height:0}.rules-page .toggle-track{position:absolute;inset:0;background:rgba(255,255,255,.15);border-radius:20px;transition:background .2s}.rules-page .toggle-switch input:checked+.toggle-track{background:var(--green)}.rules-page .toggle-track:after{content:"";position:absolute;width:13px;height:13px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .2s}.rules-page .toggle-switch input:checked+.toggle-track:after{transform:translateX(15px)}.rules-page .toggle-switch input:focus-visible+.toggle-track{outline:2px solid var(--teal);outline-offset:2px}.rules-page .empty-state{padding:40px 24px;text-align:center;color:var(--text-muted);font-size:13px}.rules-page .modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:900;align-items:center;justify-content:center}.rules-page .modal-bg.open{display:flex}.rules-page .modal{background:var(--navy-mid);border:1px solid var(--border);border-radius:12px;width:min(520px,95vw);max-height:90vh;overflow-y:auto;padding:24px}.rules-page .modal-title{font-family:Syne,sans-serif;font-size:16px;font-weight:700;margin-bottom:20px}.rules-page .form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.rules-page .form-group label{font-size:11px;color:var(--text-muted);font-weight:500}.rules-page .form-group input,.rules-page .form-group select{padding:8px 10px;border-radius:7px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:DM Sans,sans-serif;font-size:13px;width:100%}.rules-page .form-row{display:flex;gap:10px}.rules-page .form-row .form-group{flex:1}.rules-page .form-row label{min-width:0}.rules-page .form-hint{font-size:11px;color:var(--text-muted);margin-top:3px}.rules-page .form-section{margin-top:6px;margin-bottom:14px;padding:12px;background:var(--card);border-radius:8px;border:1px solid var(--border)}.rules-page .modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:20px}.rules-page .modal-status{font-size:11px;color:var(--text-muted);margin-right:auto;align-self:center}.hm-content{flex:1;display:flex;overflow:hidden}.hm-controls{width:260px;flex-shrink:0;border-right:1px solid var(--border);padding:18px;display:flex;flex-direction:column;gap:14px;background:var(--card);overflow-y:auto}.hm-controls .ctrl-label{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:5px}.hm-controls .ctrl-group{display:flex;flex-direction:column;gap:6px}.hm-btn-group button,.hm-controls select{font-family:DM Sans,sans-serif;font-size:12.5px;border-radius:7px;border:1px solid var(--border);background:var(--navy-mid);color:var(--text);padding:7px 10px;cursor:pointer;transition:all .14s}.hm-controls select{width:100%}.hm-controls select:focus{outline:none;border-color:var(--teal)}.hm-btn-group{display:flex;gap:6px}.hm-btn-group button{flex:1;text-align:center}.hm-btn-group button.active{background:var(--teal-dim);border-color:var(--teal);color:var(--teal);font-weight:500}.hm-btn-group button:hover{border-color:var(--teal)}.hm-legend{display:flex;flex-direction:column;gap:6px}.hm-legend-bar{height:12px;border-radius:4px;background:linear-gradient(90deg,hsl(240,80%,55%),hsl(120,80%,55%),hsl(60,80%,55%),hsl(0,80%,55%))}.hm-legend-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted)}.hm-controls .hm-space-list{margin-top:4px;display:flex;flex-direction:column;gap:4px}.hm-space-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .12s;font-size:12px}.hm-space-item:hover{background:var(--teal-dim)}.hm-space-item .dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.hm-space-item .pct{margin-left:auto;font-weight:600;font-size:11px}.hm-map-area{flex:1;padding:20px;overflow:auto;display:flex;flex-direction:column;gap:14px}.hm-floor-label{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase}.hm-svg-container{position:relative;background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.hm-svg-container svg{width:100%;height:auto;display:block}.hm-no-plan{padding:32px;text-align:center;color:var(--text-muted);font-size:13px}.hm-stat-cards,.hm-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.hm-stat-card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.hm-stat-val{font-family:Syne,sans-serif;font-size:22px;font-weight:700}.hm-stat-lbl{font-size:10.5px;color:var(--text-muted);margin-top:2px}.hm-bar-row{padding:8px 0;border-bottom:1px solid var(--border)}.analytics-page .content{padding:18px 22px;display:flex;flex-direction:column;gap:16px}.analytics-page .filter-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:28px}.analytics-page .filter-lbl{font-size:11px;color:var(--text-muted);font-weight:500;white-space:nowrap}.analytics-page .filter-chips{display:flex;gap:6px;flex-wrap:wrap}.analytics-page .filter-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--teal-dim);border:1px solid var(--teal);border-radius:20px;font-size:12px;color:var(--teal);font-weight:500;cursor:pointer;transition:all .12s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.analytics-page .filter-chip:hover{background:var(--teal);color:#fff}.analytics-page .chip-x{font-size:14px;line-height:1;opacity:.7}.analytics-page .clear-all-btn{font-size:11.5px;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:2px 8px;border-radius:5px;transition:color .12s}.analytics-page .clear-all-btn:hover{color:var(--teal)}.analytics-page .kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.analytics-page .kpi-val{font-family:Syne,sans-serif;font-size:28px;font-weight:700;line-height:1}.analytics-page .kpi-lbl{font-size:11px;color:var(--text-muted);margin-top:5px}.analytics-page .charts-row{display:grid;gap:14px}.analytics-page .charts-2col{grid-template-columns:1fr 1fr}.analytics-page .charts-donut-tbl{grid-template-columns:2fr 3fr}.analytics-page .chart-card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:10px}.analytics-page .chart-hdr{display:flex;flex-direction:column;gap:2px}.analytics-page .chart-title{font-family:Syne,sans-serif;font-size:13px;font-weight:700}.analytics-page .chart-sub{font-size:11px;color:var(--text-muted)}.analytics-page .chart-body{position:relative}.analytics-page canvas.hbar{display:block;width:100%}.analytics-page .donut-wrap{display:flex;gap:20px;align-items:center}.analytics-page canvas.donut{display:block;flex-shrink:0}.analytics-page .donut-legend{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.analytics-page .legend-row{display:flex;align-items:center;gap:7px;font-size:12px;cursor:pointer;padding:3px 5px;border-radius:5px;transition:background .1s}.analytics-page .legend-row:hover{background:var(--bg-hover)}.analytics-page .legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.analytics-page .legend-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-page .legend-pct{font-weight:600;color:var(--text-dim);font-size:11px;flex-shrink:0}.analytics-page .tbl-scroll{overflow:auto;max-height:300px}.analytics-page .space-tbl{width:100%;border-collapse:collapse;font-size:12.5px}.analytics-page .space-tbl th{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding:7px 10px;border-bottom:1px solid var(--border);text-align:left;position:sticky;top:0;background:var(--card);z-index:1;white-space:nowrap}.analytics-page .space-tbl td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.analytics-page .space-tbl tr:last-child td{border-bottom:none}.analytics-page .space-tbl tr:hover td{background:var(--bg-hover)}.analytics-page .util-cell{display:flex;align-items:center;gap:6px}.analytics-page .util-track{width:48px;height:5px;background:rgba(124,58,237,.1);border-radius:3px;overflow:hidden;flex-shrink:0}.analytics-page .util-fill{height:100%;border-radius:3px}.analytics-page .anm-badge{display:inline-block;background:var(--red-dim);color:var(--red);font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:10px}.analytics-page .no-data{padding:24px;text-align:center;color:var(--text-muted);font-size:13px}@media (max-width:900px){.analytics-page .charts-donut-tbl{grid-template-columns:1fr}}@media (max-width:768px){.analytics-page .kpi-row{grid-template-columns:repeat(2,1fr)}.analytics-page .charts-2col{grid-template-columns:1fr}}.savings-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.sav-box{padding:12px 14px}.sav-val{font-family:Syne,sans-serif;font-size:20px;font-weight:700;color:var(--amber)}.sav-lbl{font-size:10px;color:var(--text-muted);margin-top:2px}.consol-banner{background:var(--amber-dim);border:1px solid rgba(245,166,35,.2);border-radius:9px;padding:11px 15px;font-size:11px;color:var(--text-dim);line-height:1.6}.consol-banner strong{color:var(--amber)}.cp-card{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:10px;transition:border-color .14s}.cp-card:hover{border-color:var(--teal)}.cp-hd{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;padding:14px 16px}.cp-hd,.cp-num{align-items:center}.cp-num{width:26px;height:26px;border-radius:50%;background:var(--amber-dim);border:1px solid rgba(245,166,35,.3);color:var(--amber);font-size:11px;font-weight:700;display:flex;justify-content:center;flex-shrink:0}.cp-title{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:3px}.cp-sub{font-size:10.5px;color:var(--text-dim)}.cp-sav-pill{background:var(--amber-dim);border:1px solid rgba(245,166,35,.2);color:var(--amber);font-size:10px;font-weight:600;padding:4px 10px;border-radius:20px;white-space:nowrap}.cp-btns{display:flex;gap:6px}.cp-checks{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:0 16px 14px}.cp-check{background:var(--navy-mid);border:1px solid var(--border);border-radius:7px;padding:8px 10px}.cp-check-lbl{font-size:9px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:4px}.cp-check-val{font-size:10.5px}.cv-pass{color:var(--teal);font-weight:500}.cv-warn{color:var(--amber);font-weight:500}.cv-fail{color:var(--red);font-weight:500}.cp-footer{display:flex;align-items:center;gap:7px;padding:8px 16px;border-top:1px solid var(--border);background:var(--navy-mid)}.sp{width:6px;height:6px;border-radius:50%;flex-shrink:0}.sp-pending{background:var(--amber)}.sp-approved{background:var(--teal);box-shadow:0 0 5px var(--teal-glow)}.sp-rejected{background:var(--red)}.cp-note{font-size:10px;color:var(--text-dim);flex:1}.cp-time{font-size:10px;color:var(--text-muted)}.status-chip{font-size:10px;font-weight:600;padding:4px 10px;border-radius:6px}.sc-approved{background:var(--teal-dim);color:var(--teal)}.sc-rejected{background:var(--red-dim);color:var(--red)}@media (max-width:900px){.cp-checks,.savings-summary{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.cp-hd{grid-template-columns:auto 1fr}}.dept-dot{flex-shrink:0}.dept-meta{display:block}.space-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.space-tile{border:1px solid var(--border);border-radius:7px;padding:10px 12px;font-size:12.5px;background:var(--card)}.space-tile .st-name{font-weight:500;margin-bottom:4px}.space-tile .st-meta{font-size:11px;color:var(--text-muted)}.space-tile .st-util{font-size:12px;font-weight:600;margin-top:4px}.member-row{gap:8px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.member-avatar,.member-row{display:flex;align-items:center}.member-avatar{width:26px;height:26px;border-radius:50%;background:var(--teal-dim);color:var(--teal);justify-content:center;font-size:11px;font-weight:600;flex-shrink:0}.chargeback-page .tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.chargeback-page .tabs .tab-btn{font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:9px 16px;border-radius:0;background:none;color:var(--text-muted);cursor:pointer;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .14s,border-color .14s}.chargeback-page .tabs .tab-btn.active{color:var(--teal);border-bottom-color:var(--teal);font-weight:500}.chargeback-page .tabs .tab-btn:hover:not(.active){color:var(--text)}.chargeback-page .content{padding:22px;display:flex;flex-direction:column;gap:20px}.chargeback-page .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap}.chargeback-page .card-desc{font-size:12.5px;color:var(--text-muted);margin-top:4px;line-height:1.5}.chargeback-page .tbl-wrap{overflow-x:auto}.chargeback-page table{width:100%;border-collapse:collapse;font-size:13px}.chargeback-page th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:7px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.chargeback-page td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}.chargeback-page tr:last-child td{border-bottom:none}.chargeback-page tbody tr:hover td{background:var(--bg-hover)}.chargeback-page .cap-range{font-size:12px;color:var(--text-muted)}.chargeback-page .rate-val{font-weight:600;font-family:Syne,sans-serif;font-size:14px}.chargeback-page .currency-badge{display:inline-block;font-size:10px;background:var(--teal-dim);color:var(--teal);padding:2px 6px;border-radius:4px;font-weight:600}.chargeback-page .action-group{display:flex;gap:6px}.chargeback-page .empty-row{text-align:center;color:var(--text-muted);padding:28px 0;font-size:13px}.chargeback-page .period-btns{display:flex;gap:6px}.chargeback-page .dept-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:7px}.chargeback-page .dept-name-cell{display:flex;align-items:center}.chargeback-page .total-row td{font-weight:700;border-top:1px solid var(--border)}.chargeback-page .owed-val{font-weight:700;color:var(--teal)}.chargeback-page .report-dept-row{cursor:pointer}.chargeback-page .report-dept-row:hover td{background:var(--teal-dim)!important}.chargeback-page .modal.modal-wide{width:760px;max-width:96vw;max-height:82vh;overflow-y:auto}.chargeback-page .detail-status-confirmed{color:var(--teal);font-size:11px;font-weight:600;text-transform:uppercase}.chargeback-page .detail-status-noshow{color:var(--red);font-size:11px;font-weight:600;text-transform:uppercase}.chargeback-page .detail-status-cancelled{color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase}.chargeback-page .warn-banner{background:var(--amber-dim);border:1px solid rgba(217,119,6,.25);border-radius:8px;padding:10px 14px;font-size:12.5px;color:var(--amber);display:flex;align-items:center;gap:8px}.chargeback-page .warn-banner svg{flex-shrink:0}.chargeback-page .modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:999;align-items:center;justify-content:center}.chargeback-page .modal-overlay.open{display:flex}.chargeback-page .modal{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:22px 24px;width:420px;max-width:95vw;display:flex;flex-direction:column;gap:16px}.chargeback-page .modal-title{font-family:Syne,sans-serif;font-size:15px;font-weight:700}.chargeback-page .form-row{display:flex;flex-direction:column;gap:5px;margin-bottom:0}.chargeback-page .form-row label{min-width:0}.chargeback-page .form-label{font-size:12px;font-weight:500;color:var(--text-muted)}.chargeback-page .form-row .form-input{font-family:DM Sans,sans-serif;font-size:13px;background:var(--navy-mid);border:1px solid var(--border);border-radius:6px;padding:8px 10px;color:var(--text);width:100%}.chargeback-page .form-row .form-input:focus{outline:none;border-color:var(--teal)}.chargeback-page .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chargeback-page .form-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.chargeback-page .form-error{font-size:12px;color:var(--red)}.placeholder\:text-\[var\(--text-muted\)\]::-moz-placeholder{color:var(--text-muted)}.placeholder\:text-\[var\(--text-muted\)\]::placeholder{color:var(--text-muted)}.placeholder\:text-slate-600::-moz-placeholder{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.placeholder\:text-slate-600::placeholder{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:border-\[var\(--teal\)\]:hover{border-color:var(--teal)}.hover\:border-teal-400\/40:hover{border-color:rgb(45 212 191/.4)}.hover\:bg-\[\#6d28d9\]:hover{--tw-bg-opacity:1;background-color:rgb(109 40 217/var(--tw-bg-opacity,1))}.hover\:bg-teal-300:hover{--tw-bg-opacity:1;background-color:rgb(94 234 212/var(--tw-bg-opacity,1))}.hover\:bg-teal-400\/5:hover{background-color:rgb(45 212 191/.05)}.hover\:bg-white\/\[\.02\]:hover{background-color:rgb(255 255 255/.02)}.hover\:text-\[\#f87171\]:hover{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.hover\:text-\[\#f8fafc\]:hover{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.hover\:text-\[var\(--teal\)\]:hover{color:var(--teal)}.hover\:text-\[var\(--text\)\]:hover{color:var(--text)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-teal-400\/20:hover{--tw-shadow-color:rgb(45 212 191/0.2);--tw-shadow:var(--tw-shadow-colored)}.hover\:brightness-110:hover{--tw-brightness:brightness(1.1);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)}.focus\:border-\[\#7c3aed\]:focus{--tw-border-opacity:1;border-color:rgb(124 58 237/var(--tw-border-opacity,1))}.focus\:border-\[var\(--teal\)\]:focus{border-color:var(--teal)}.focus\:border-teal-400\/50:focus{border-color:rgb(45 212 191/.5)}.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);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-teal-400\/10:focus{--tw-ring-color:rgb(45 212 191/0.1)}.enabled\:hover\:bg-\[\#6d28d9\]:hover:enabled{--tw-bg-opacity:1;background-color:rgb(109 40 217/var(--tw-bg-opacity,1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}