@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap";*,:before,:after{--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 / .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 / .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: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{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,samp,pre{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,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{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}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.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}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.left-0{left:0}.right-0{right:0}.top-1\/2{top:50%}.top-12{top:3rem}.z-10{z-index:10}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-2{height:.5rem}.h-5{height:1.25rem}.h-52{height:13rem}.h-\[289px\]{height:289px}.h-\[5px\]{height:5px}.h-full{height:100%}.w-11{width:2.75rem}.w-2{width:.5rem}.w-28{width:7rem}.w-5{width:1.25rem}.w-64{width:16rem}.w-\[289px\]{width:289px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-48{min-width:12rem}.min-w-\[150px\]{min-width:150px}.min-w-\[170px\]{min-width:170px}.min-w-\[9rem\]{min-width:9rem}.max-w-3xl{max-width:48rem}.max-w-\[360px\]{max-width:360px}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.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))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-slate-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(226 232 240 / var(--tw-divide-opacity, 1))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/70{border-color:#e2e8f0b3}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-300\/70{border-color:#cbd5e1b3}.border-teal-500{--tw-border-opacity: 1;border-color:rgb(20 184 166 / var(--tw-border-opacity, 1))}.border-white\/10{border-color:#ffffff1a}.border-white\/70{border-color:#ffffffb3}.\!bg-transparent{background-color:transparent!important}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/60{background-color:#fffbeb99}.bg-amber-50\/70{background-color:#fffbebb3}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity, 1))}.bg-cyan-50{--tw-bg-opacity: 1;background-color:rgb(236 254 255 / var(--tw-bg-opacity, 1))}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-50\/60{background-color:#fff1f299}.bg-rose-700{--tw-bg-opacity: 1;background-color:rgb(190 18 60 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-teal-700{--tw-bg-opacity: 1;background-color:rgb(15 118 110 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/95{background-color:#fffffff2}.bg-\[radial-gradient\(circle_at_18\%_18\%\,rgba\(103\,251\,255\,0\.16\)\,transparent_25\%\)\,radial-gradient\(circle_at_82\%_20\%\,rgba\(255\,106\,43\,0\.18\)\,transparent_28\%\)\]{background-image:radial-gradient(circle at 18% 18%,rgba(103,251,255,.16),transparent 25%),radial-gradient(circle at 82% 20%,rgba(255,106,43,.18),transparent 28%)}.bg-\[radial-gradient\(circle_at_top\,rgba\(103\,251\,255\,0\.16\)\,transparent_38\%\)\,linear-gradient\(180deg\,rgba\(21\,28\,44\,0\.92\)\,rgba\(21\,28\,44\,0\.78\)\)\]{background-image:radial-gradient(circle at top,rgba(103,251,255,.16),transparent 38%),linear-gradient(180deg,#151c2ceb,#151c2cc7)}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.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-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-5{padding-left:1.25rem}.pl-6{padding-left:1.5rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.text-center{text-align:center}.align-top{vertical-align:top}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[1\.9rem\]{font-size:1.9rem}.text-\[10px\]{font-size:10px}.text-\[28px\]{font-size:28px}.text-\[4rem\]{font-size:4rem}.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-semibold{font-weight:600}.uppercase{text-transform:uppercase}.normal-case{text-transform:none}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.22em\]{letter-spacing:.22em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-normal{letter-spacing:0em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-brand-primary{--tw-text-opacity: 1;color:rgb(22 76 104 / var(--tw-text-opacity, 1))}.text-current{color:currentColor}.text-cyan-800{--tw-text-opacity: 1;color:rgb(21 94 117 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-rose-800{--tw-text-opacity: 1;color:rgb(159 18 57 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-teal-800{--tw-text-opacity: 1;color:rgb(17 94 89 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/70{color:#ffffffb3}.text-white\/75{color:#ffffffbf}.text-white\/90{color:#ffffffe6}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_8px_rgba\(103\,251\,255\,0\.12\)\]{--tw-shadow: 0 0 0 8px rgba(103,251,255,.12);--tw-shadow-colored: 0 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(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)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-soft{--tw-shadow: 0 10px 30px rgba(14, 52, 73, .12);--tw-shadow-colored: 0 10px 30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);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)}.drop-shadow-\[0_4px_16px_rgba\(0\,0\,0\,0\.28\)\]{--tw-drop-shadow: drop-shadow(0 4px 16px rgba(0,0,0,.28));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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{color-scheme:light;--ion-color-primary: #164c68;--ion-color-primary-rgb: 22, 76, 104;--ion-color-primary-contrast: #ffffff;--ion-color-primary-shade: #13435c;--ion-color-primary-tint: #2d5e77;--ion-color-secondary: #20b9d5;--ion-color-secondary-rgb: 32, 185, 213;--ion-color-secondary-contrast: #0e3449;--ion-color-secondary-shade: #1ca3bb;--ion-color-secondary-tint: #36c0d9;--ion-color-tertiary: #0bb7ae;--ion-color-success: #22cf71;--ion-background-color: #f5f8fa;--ion-text-color: #0e3449;--app-surface: #ffffff;--app-muted: #637987;--app-nav-bg: #0e3449;--app-border: #d5e2e8;--app-control-bg: #ffffff;--app-control-text: #0e3449;--app-control-placeholder: #637987;--app-navy: #164c68;--app-deep-navy: #0e3449;--app-cyan: #20b9d5;--app-teal: #0bb7ae;--app-green: #22cf71;--app-off-white: #f5f8fa}html,body,#root,ion-app{height:100%}html,body{font-family:Poppins,ui-sans-serif,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0;background:var(--app-off-white)}body.dark-mode{color-scheme:dark;--ion-background-color: #092838;--ion-text-color: #f5f8fa;--app-surface: #123e53;--app-muted: #aac1cc;--app-nav-bg: #071f2c;--app-border: #28566b;--app-control-bg: #0c3041;--app-control-text: #f5f8fa;--app-control-placeholder: #aac1cc;background:#092838;color:#f6f7fb}body,button,input,select,textarea,ion-app{font-family:Poppins,ui-sans-serif,system-ui,-apple-system,sans-serif}ion-toolbar{--background: var(--app-surface);--border-color: var(--app-border);--color: var(--ion-text-color)}ion-item{--background: var(--app-surface);--border-color: var(--app-border);--color: var(--ion-text-color)}ion-input,ion-select,ion-textarea{--color: var(--app-control-text);--placeholder-color: var(--app-control-placeholder);color:var(--app-control-text)}body input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=button]):not([type=submit]),body select,body textarea{border-color:var(--app-border);background-color:var(--app-control-bg);color:var(--app-control-text)}body.dark-mode select,body.dark-mode textarea{border-color:var(--app-border);background-color:var(--app-control-bg);color:var(--app-control-text)}body input::-moz-placeholder,body textarea::-moz-placeholder{color:var(--app-control-placeholder);opacity:1}body input::placeholder,body textarea::placeholder{color:var(--app-control-placeholder);opacity:1}ion-button{--border-radius: 12px;font-weight:600;letter-spacing:0;text-transform:none}ion-card{border-radius:16px;box-shadow:0 12px 32px #0e344914}.app-surface{background:var(--app-surface)}.text-muted{color:var(--app-muted)}.temperature-badge{color:var(--ion-text-color)}.app-popover-menu{border:1px solid var(--app-border);background:var(--app-control-bg);color:var(--app-control-text)}.hero-glow{box-shadow:0 18px 40px #0f766e33}.thermostat-card{margin:0 auto;width:100%;max-width:360px}.thermostat-card--gunmalmg{border:1px solid var(--app-border);border-radius:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--app-surface) 94%,var(--app-teal)),var(--app-surface));padding:22px;box-shadow:0 18px 40px #1522381a}.thermostat-card--overview{max-width:none;padding:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--app-surface) 96%,var(--app-teal)),var(--app-surface))}.thermostat-card__temperature-label{display:block;margin-top:4px;color:var(--app-muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.thermostat-card__overview-status{display:flex;flex:0 0 auto;align-items:center;gap:7px}.thermostat-card__title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thermostat-card__heat-status{display:inline-flex;color:#94a3b8;font-size:18px}.thermostat-card__heat-status.is-active{color:#ea580c}.thermostat-card__temperature-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.thermostat-mode-list--overview{justify-content:flex-end;margin:10px 0 0}.thermostat-mode-list--overview .thermostat-mode{border:0;cursor:pointer}.thermostat-mode-list--overview .thermostat-mode:disabled{cursor:default;opacity:.65}.thermostat-card__lever{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin-top:8px}.thermostat-card__lever-label,.thermostat-card__lever-value{color:var(--app-muted);font-size:22px;font-weight:800;letter-spacing:0}.thermostat-card__lever-value{min-width:42px;color:var(--ion-text-color);text-align:right;letter-spacing:0}.thermostat-card__lever input{width:100%;accent-color:var(--app-teal);cursor:pointer}.thermostat-card__lever input:disabled{cursor:default;opacity:.55}.room-detail-fullscreen{min-height:calc(100vh - 112px);max-width:760px;margin:0 auto}.room-detail-back{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--app-muted);font-size:13px;font-weight:700}.room-detail-back:hover{color:var(--ion-text-color)}@media(max-width:620px){.thermostat-card__overview-status{gap:6px}.thermostat-mode-list--overview{gap:4px}.thermostat-mode-list--overview .thermostat-mode{padding-inline:7px}.thermostat-card__temperature-row{align-items:flex-start}}.thermostat-card__eyebrow{margin:0;font-family:Poppins,ui-sans-serif,system-ui;font-size:18px;font-weight:700}.thermostat-card__status,.thermostat-card__target{margin:5px 0 0;color:var(--app-muted);font-size:12px}.thermostat-card__temperature{margin:0;color:var(--ion-text-color);font-size:58px;font-weight:700;letter-spacing:-.06em;line-height:1}.thermostat-card__temperature span{font-size:24px;letter-spacing:0}.thermostat-mode{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:800;letter-spacing:.08em}.thermostat-mode--manual{background:#0bb7ae1f;color:#087f79}.thermostat-mode--eco{background:#22c55e21;color:#15803d}.thermostat-mode--komfort{background:#ea580c21;color:#c2410c}.thermostat-mode--standby{background:#64748b24;color:#475569}.thermostat-mode--inactive{background:transparent;color:var(--app-muted);border:1px solid var(--app-border)}.thermostat-mode-list{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px}.thermostat-mode-select{margin-top:12px}.thermostat-mode-select select{min-width:108px;border:1px solid var(--app-border);border-radius:999px;background:var(--app-surface);padding:8px 28px 8px 12px;color:var(--ion-text-color);font-size:11px;font-weight:800;letter-spacing:.06em}.thermostat-card__signal{color:var(--app-muted);font-size:11px;font-weight:800;letter-spacing:.1em}.thermostat-card__signal span{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#94a3b8}.thermostat-card__signal span.is-active{background:#ea580c;box-shadow:0 0 0 5px #ea580c24}.thermostat-card__connection{display:inline-flex;align-items:center;gap:5px;color:var(--app-muted)}.thermostat-card__connection ion-icon{font-size:18px}.thermostat-card__rssi{display:inline-flex;align-items:flex-end;gap:2px;height:15px}.thermostat-card__rssi i{display:block;width:3px;border-radius:2px;background:#cbd5e1}.thermostat-card__rssi i:nth-child(1){height:4px}.thermostat-card__rssi i:nth-child(2){height:7px}.thermostat-card__rssi i:nth-child(3){height:10px}.thermostat-card__rssi i:nth-child(4){height:13px}.thermostat-card__rssi i.is-active{background:var(--app-teal)}.thermostat-slider{position:relative;height:28px}.thermostat-slider__track,.thermostat-slider__fill{position:absolute;top:50%;height:6px;transform:translateY(-50%);border-radius:999px}.thermostat-slider__track{left:0;right:0;background:var(--app-border)}.thermostat-slider__fill{left:0;background:linear-gradient(90deg,var(--app-cyan),#ea580c)}.thermostat-slider input{position:absolute;inset:0;width:100%;cursor:pointer;opacity:0}.hvac-summary-card{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--app-border);border-radius:16px;padding:14px 16px;background:linear-gradient(115deg,#ea580c14,#fffffff5 52%,#0ea5a414)}.hvac-summary-card__temperature{margin-top:2px;font-size:28px;line-height:1;font-weight:800;letter-spacing:0}.hvac-summary-card__controls{display:flex;align-items:center;justify-content:flex-end;gap:18px}.hvac-summary-card__mode{position:relative;display:grid;gap:3px;color:var(--app-muted);font-size:10px;font-weight:700;text-transform:uppercase}.hvac-summary-card__mode select{min-width:120px;height:36px;border:1px solid var(--app-border);border-radius:8px;padding:0 30px 0 10px;background:#ffffffd1;color:var(--ion-text-color);font-size:12px;font-weight:700;text-transform:none}.hvac-summary-card__mode>small{position:absolute;top:calc(100% + 2px);right:0;width:-moz-max-content;width:max-content;max-width:220px;color:#dc2626;font-size:10px;text-align:right;text-transform:none}.hvac-summary-card__status{display:flex;align-items:center;gap:18px}.hvac-summary-card__status>span{display:grid;grid-template-columns:24px auto;align-items:center;-moz-column-gap:5px;column-gap:5px;color:var(--app-muted)}.hvac-summary-card__status ion-icon{grid-row:1 / 3;font-size:23px}.hvac-summary-card__status strong{font-size:16px;line-height:1}.hvac-summary-card__status small{margin-top:3px;font-size:10px;line-height:1}.hvac-summary-card__status .is-heating{color:#ea580c}.hvac-summary-card__status .is-offline{color:#dc2626}.nilan-card{min-height:246px;padding:16px}.nilan-card__reading-row{min-height:70px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px}.nilan-card__temperature{display:grid;width:-moz-fit-content;width:fit-content;grid-template-columns:auto auto;align-items:start;border:0;background:transparent;padding:0;color:var(--ion-text-color);text-align:left}.nilan-card__temperature>span{font-size:28px;line-height:1;font-weight:800;letter-spacing:0}.nilan-card__temperature>small{margin-top:2px;font-size:15px;font-weight:700}.nilan-card__temperature>em{grid-column:1 / 3;margin-top:4px;color:var(--app-muted);font-size:10px;font-style:normal;font-weight:700;text-transform:uppercase}.nilan-card .thermostat-mode-select{margin-top:0}.nilan-card__vent-control{display:block;margin-top:4px;font-size:11px;color:var(--app-muted)}.nilan-card__vent-control>span:first-child{display:flex;justify-content:space-between}.nilan-card__vent-control strong{color:var(--ion-text-color)}.nilan-card__vent-scale{display:flex;justify-content:space-between;padding:0 2px}.nilan-card__vent-scale i{font-size:10px;font-style:normal}.nilan-card__status-line{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;border-top:1px solid var(--app-border);padding-top:8px;color:var(--app-muted);font-size:11px;font-weight:700}.nilan-card__status-line span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.nilan-card__filter-button{display:inline-flex;align-items:center;gap:4px;border:0;background:transparent;padding:0;color:inherit;font:inherit;white-space:nowrap}.nilan-card__status-line ion-icon{font-size:17px}.nilan-card__status-line .is-healthy{color:#15803d}.nilan-card__status-line .is-due-soon{color:#ca8a04}.nilan-card__status-line .is-overdue{color:#dc2626}.nilan-card__status-line .is-humidity{color:#0369a1}.nilan-filter-modal{--width: min(440px, calc(100% - 24px) );--height: 460px;--border-radius: 24px}.nilan-filter-settings{display:grid;gap:18px;max-width:400px;margin:0 auto}.nilan-filter-settings__label{margin-bottom:8px;color:var(--app-muted);font-size:12px;font-weight:700}.nilan-filter-settings__intervals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.nilan-filter-settings__intervals label{display:grid;gap:2px;border:1px solid var(--app-border);border-radius:8px;padding:12px 8px;text-align:center}.nilan-filter-settings__intervals label.is-selected{border-color:var(--app-teal);background:#0bb7ae14;color:#087f79}.nilan-filter-settings__intervals input{position:absolute;opacity:0;pointer-events:none}.nilan-filter-settings__intervals strong{font-size:13px}.nilan-filter-settings__intervals small{color:var(--app-muted);font-size:10px}.nilan-filter-settings__reset{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;border-top:1px solid var(--app-border);padding-top:18px}.nilan-filter-settings__reset ion-icon{color:var(--app-teal);font-size:28px}.nilan-filter-settings__reset strong{font-size:14px}.nilan-filter-settings__reset p{margin-top:2px;color:var(--app-muted);font-size:12px}.nilan-detail{display:grid;gap:18px;max-width:720px;margin:0 auto;padding-bottom:32px}.nilan-airflow{min-height:250px;display:grid;grid-template-columns:minmax(0,1fr) 140px minmax(0,1fr);align-items:center;gap:14px;border-radius:8px;padding:22px;background:linear-gradient(110deg,#0ea5e91c,#fffffff5 46%,#ea580c1a)}.nilan-airflow__stream{display:grid;justify-items:center;gap:5px;text-align:center}.nilan-airflow__stream ion-icon{font-size:42px}.nilan-airflow__stream span{color:var(--app-muted);font-size:11px;font-weight:800;text-transform:uppercase}.nilan-airflow__stream strong{font-size:21px}.nilan-airflow__stream small{font-size:13px}.nilan-airflow__stream--supply{color:#0369a1}.nilan-airflow__stream--extract{color:#c2410c}.nilan-airflow__unit{aspect-ratio:1 / 1.12;display:grid;place-items:center;align-content:center;gap:8px;border:1px solid #94a3b8;border-radius:8px;background:#f8fafc;color:#334155;box-shadow:inset 0 0 0 5px #fff,0 10px 24px #0f172a1a}.nilan-airflow__unit span{font-size:11px;font-weight:900;letter-spacing:.12em}.nilan-airflow__unit ion-icon{font-size:34px;color:var(--app-teal)}.nilan-airflow__unit strong{font-size:12px}.nilan-detail__metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.nilan-detail__section{display:grid;gap:8px}.nilan-detail__section h2{font-size:14px;font-weight:700}.nilan-detail__metrics--status{grid-template-columns:repeat(3,minmax(0,1fr))}.nilan-detail__metrics--temperatures{grid-template-columns:repeat(4,minmax(0,1fr))}.nilan-detail__advanced{border-top:1px solid var(--app-border);padding-top:16px}.nilan-detail__metrics>div{min-height:90px;display:grid;grid-template-columns:auto 1fr;align-content:center;gap:4px 8px;border:1px solid var(--app-border);border-radius:8px;padding:12px}.nilan-detail__metrics ion-icon{grid-row:1 / 3;align-self:center;color:var(--app-teal);font-size:22px}.nilan-detail__metrics span{color:var(--app-muted);font-size:11px}.nilan-detail__metrics strong{font-size:14px}.nilan-detail__controls{display:grid;gap:16px}.nilan-detail__controls h2{font-size:16px;font-weight:700}.nilan-detail__controls label{display:grid;gap:8px;font-size:12px;color:var(--app-muted)}.nilan-detail__controls label>span{display:flex;justify-content:space-between}.nilan-detail__controls input[type=range]{width:100%;accent-color:var(--app-teal)}@media(max-width:520px){.hvac-summary-card{gap:10px;padding-inline:12px}.hvac-summary-card__controls{gap:10px}.hvac-summary-card__mode select{min-width:106px}.hvac-summary-card__status{gap:10px}.hvac-summary-card__status small{display:none}.nilan-card__reading-row{grid-template-columns:minmax(0,1fr) auto}.nilan-airflow{min-height:220px;grid-template-columns:1fr 90px 1fr;gap:8px;padding:14px 8px}.nilan-airflow__stream strong{font-size:16px}.nilan-airflow__stream ion-icon{font-size:32px}.nilan-detail__metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.nilan-detail__metrics--status{grid-template-columns:1fr}}.menu-action{display:block;width:100%;border:0;border-radius:8px;background:transparent;padding:9px 10px;text-align:left;font-size:13px;color:var(--ion-text-color)}.menu-action:hover{background:color-mix(in srgb,var(--app-control-bg) 88%,var(--app-teal))}.menu-action--primary{background:var(--app-navy);color:#fff;text-align:center}.menu-action--primary:hover{background:var(--app-deep-navy)}.menu-choice{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 8px;font-size:13px}.menu-choice select{border:1px solid var(--app-border);border-radius:8px;background:var(--app-surface);padding:5px 7px;color:var(--ion-text-color)}.app-layout-tabs{min-height:100%}.app-router-outlet{right:0;left:0;width:100%;min-width:0;margin-left:0;padding-bottom:84px}.mobile-nav{position:fixed;left:12px;right:12px;bottom:10px;z-index:40;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px;border:1px solid var(--app-border);border-color:#ffffff1f;border-radius:16px;background:#0e3449f5;backdrop-filter:blur(8px)}.mobile-nav-item{min-height:56px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#b7ccd6;text-decoration:none;font-size:11px;font-weight:700}.mobile-nav-item ion-icon{font-size:18px}.mobile-nav-item.active{background:var(--app-cyan);color:var(--app-deep-navy)}.desktop-nav,.tablet-nav{display:none}.desktop-nav-kicker{margin:0;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#8fb7c8}.desktop-nav-brand img{display:block;width:190px;height:auto;border-radius:12px;padding:10px;background:#fff}.desktop-nav-brand .desktop-nav-kicker{margin-top:12px}.desktop-nav-list{display:grid;gap:6px}.desktop-nav-item{min-height:44px;border-radius:12px;display:flex;align-items:center;gap:10px;padding:0 12px;color:#b7ccd6;text-decoration:none;font-weight:700}.desktop-nav-item.active{background:var(--app-cyan);color:var(--app-deep-navy)}.app-home-hero{background:linear-gradient(145deg,var(--app-navy),var(--app-deep-navy))}.app-system-card{border:1px solid var(--app-border)}.app-system-card--irrigation{background:linear-gradient(160deg,#0bb7ae1a,#ffffffeb 70%)}.app-system-card--hvac{background:linear-gradient(160deg,#20b9d51c,#ffffffeb 70%)}.app-system-card--weather{background:linear-gradient(160deg,#38bdf81f,#ffffffeb 70%)}@media(min-width:768px){.mobile-nav{left:20px;right:20px;width:auto;transform:none}.app-router-outlet{padding-bottom:94px}}@media(min-width:768px)and (max-width:1199px){.mobile-nav{display:none}.tablet-nav{position:fixed;inset:0 auto 0 0;width:86px;border-right:1px solid rgba(255,255,255,.1);background:var(--app-nav-bg);padding:16px 8px;display:block;z-index:30}.tablet-nav-list{display:grid;gap:6px;align-content:start}.tablet-nav-item{min-height:58px;border-radius:14px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px;color:#b7ccd6;text-decoration:none;font-size:10px;font-weight:700}.tablet-nav-item ion-icon{font-size:19px}.tablet-nav-item.active{background:var(--app-cyan);color:var(--app-deep-navy)}.app-router-outlet{left:0;width:100%;padding-bottom:0}.app-router-outlet:not(.app-router-outlet--public)>.ion-page{left:86px;width:calc(100% - 86px)}}@media(min-width:1200px){.mobile-nav,.tablet-nav{display:none}.desktop-nav{position:fixed;inset:0 auto 0 0;width:clamp(220px,18vw,252px);border-right:1px solid rgba(255,255,255,.1);background:var(--app-nav-bg);padding:22px 14px;display:grid;align-content:start;gap:24px;z-index:30}.app-router-outlet{left:0;width:100%;padding-bottom:0}.app-router-outlet:not(.app-router-outlet--public)>.ion-page{left:clamp(220px,18vw,252px);width:calc(100% - clamp(220px,18vw,252px))}}.login-header{display:none}.login-content{--background: linear-gradient(rgba(245, 248, 250, .9), rgba(245, 248, 250, .9)), var(--login-pattern) center / 720px 720px repeat}.login-shell{min-height:100%;display:grid;grid-template-columns:minmax(260px,420px) minmax(320px,460px);align-items:center;justify-content:center;gap:64px;padding:40px 24px}.login-brand img{display:block;width:min(100%,360px);height:auto}.login-brand p{margin:20px 0 0 106px;color:var(--app-navy);font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.login-card{width:100%;margin:0;border:1px solid var(--app-border);background:#fffffff5}.login-card__content{padding:32px}.login-card__heading p{margin:0;color:var(--app-teal);font-size:12px;font-weight:700;text-transform:uppercase}.login-card__heading h1{margin:4px 0 24px;color:var(--app-deep-navy);font-size:28px;font-weight:700;letter-spacing:0}.login-api-config,.login-notice{margin-bottom:20px;border:1px solid var(--app-border);border-radius:12px;padding:12px;background:var(--app-off-white)}.login-notice p{margin:6px 0 0}.login-label{display:block;margin-top:16px;color:var(--app-deep-navy);font-size:12px;font-weight:600}.login-card ion-input{--background: #fff;--border-color: var(--app-border);--border-radius: 12px;--border-style: solid;--border-width: 1px;--highlight-color-focused: var(--app-cyan);margin-top:6px;min-height:48px;padding-inline:12px!important}.login-card,.login-card ion-input{--color: var(--app-deep-navy);--placeholder-color: var(--app-muted);color:var(--app-deep-navy);color-scheme:light}.login-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}.login-actions ion-button:first-child{flex:1 1 150px;--background: var(--app-navy);--background-hover: var(--app-deep-navy)}.login-message{margin:12px 0 0;font-size:13px}.login-message--info{color:var(--app-navy)}.login-message--error{color:#b42318}@media(max-width:760px){.login-shell{grid-template-columns:minmax(0,460px);align-content:center;gap:28px;padding:28px 16px}.login-brand{display:grid;justify-items:center}.login-brand img{width:min(76vw,290px)}.login-brand p{margin:12px 0 0}.login-card__content{padding:24px 20px}}.thermostat-card__battery{display:inline-flex;align-items:center;gap:.2rem;color:var(--color-muted, #64748b);font-size:.68rem;font-weight:600;white-space:nowrap}.thermostat-card__battery ion-icon{font-size:.95rem}.thermostat-card__battery--low{color:#dc2626}.controllers-workspace{width:100%;margin:0 auto;padding-bottom:80px}.controllers-workspace>ion-segment{max-width:620px;margin-bottom:18px}.controller-summary{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));border:1px solid var(--app-border);border-radius:8px;background:var(--app-surface)}.controller-summary>div{min-width:0;padding:14px 16px;border-right:1px solid var(--app-border)}.controller-summary>div:last-child{border-right:0}.controller-summary span,.controller-summary strong{display:block}.controller-summary span{color:var(--app-muted);font-size:11px;font-weight:700;text-transform:uppercase}.controller-summary strong{margin-top:3px;font-family:Poppins,ui-sans-serif,system-ui;font-size:22px}.controller-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) 84px 100px 62px 86px;align-items:end;gap:0;margin:12px 0}.controller-toolbar ion-searchbar{--background: var(--app-surface);--border-radius: 6px;min-height:42px;padding:0}.controller-toolbar label{display:grid;gap:4px;padding-left:8px;color:var(--app-muted);font-size:11px;font-weight:700;text-transform:uppercase}.controller-toolbar select{width:100%;height:42px;border:1px solid var(--app-border);border-radius:6px;color:var(--ion-text-color);background:var(--app-surface);padding:0 10px;font:inherit;text-transform:none}.controller-toolbar>.controller-icon-button{justify-self:end}.controller-icon-button,.controller-detail__close{display:inline-grid;width:40px;height:40px;place-items:center;border:1px solid var(--app-border);border-radius:6px;color:var(--ion-text-color);background:var(--app-surface);cursor:pointer;font-size:20px}.controller-fleet-layout{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:12px}.controller-fleet-layout.has-detail{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.controller-list-panel,.controller-detail,.firmware-release,.controller-setup-primary,.controller-setup-secondary,.controller-register{border:1px solid var(--app-border);border-radius:8px;background:var(--app-surface)}.controller-list-panel,.controller-detail{min-width:0}.controller-bulk-bar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,260px) auto auto;align-items:end;gap:10px;margin-bottom:12px;padding:12px;border:1px solid var(--app-border);border-radius:8px;background:var(--app-surface)}.controller-bulk-bar>div:first-child,.controller-bulk-bar label{display:grid;gap:4px}.controller-bulk-bar>div:first-child span,.controller-bulk-bar label{color:var(--app-muted);font-size:11px}.controller-bulk-bar select{min-width:0;height:36px;border:1px solid var(--app-border);border-radius:6px;color:var(--ion-text-color);background:var(--app-surface);padding:0 8px}.controller-bulk-clear{height:36px;border:0;color:var(--ion-color-primary);background:transparent;cursor:pointer;font-weight:700}.controller-bulk-results{grid-column:1 / -1;margin:0;padding:8px 0 0;border-top:1px solid var(--app-border);list-style:none;font-size:12px}.controller-bulk-results li+li{margin-top:4px}.controller-bulk-results .is-success{color:var(--app-green)}.controller-bulk-results .is-error{color:var(--ion-color-danger)}.controller-table-wrap{overflow:visible}.controller-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.controller-table th,.controller-table td{padding:11px 12px;border-bottom:1px solid var(--app-border);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.controller-table th:nth-child(2),.controller-table td:nth-child(2){width:auto}.controller-table th:nth-child(3),.controller-table td:nth-child(3){width:84px}.controller-table th:nth-child(4),.controller-table td:nth-child(4){width:100px}.controller-table th:nth-child(5),.controller-table td:nth-child(5){width:62px}.controller-table td:nth-child(5){overflow:visible}.controller-table th:nth-child(6),.controller-table td:nth-child(6){width:86px}.controller-table .controller-select-cell{width:38px;padding-right:4px;padding-left:12px;overflow:visible}.controller-select-cell input{width:16px;height:16px;margin:0;accent-color:var(--ion-color-primary);cursor:pointer}.controller-table th{color:var(--app-muted);background:color-mix(in srgb,var(--app-surface) 92%,var(--app-teal));font-size:10px;text-transform:uppercase}.controller-table tbody tr{cursor:pointer}.controller-table tbody tr:hover,.controller-table tbody tr.is-selected{background:color-mix(in srgb,var(--app-surface) 91%,var(--app-teal))}.controller-table td strong,.controller-table td span{display:block;overflow:hidden;text-overflow:ellipsis}.controller-table td>span:not(.controller-status){margin-top:2px;color:var(--app-muted);font-size:11px}.controller-site{position:relative;display:inline-block!important;width:-moz-fit-content;width:fit-content;overflow:visible!important;color:var(--ion-color-primary)!important;cursor:help;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:3px}.controller-site__tooltip{position:absolute;z-index:20;top:calc(100% + 7px);left:0;display:none!important;width:-moz-max-content;width:max-content;max-width:min(280px,70vw);padding:10px 12px;border:1px solid var(--app-border);border-radius:6px;color:var(--ion-text-color)!important;background:var(--app-surface);box-shadow:0 8px 24px #0000002e;white-space:normal}.controller-site__tooltip span{display:grid!important;grid-template-columns:54px minmax(0,1fr);gap:8px}.controller-site__tooltip span+span{margin-top:5px}.controller-site:hover .controller-site__tooltip,.controller-site:focus .controller-site__tooltip,.controller-site:focus-visible .controller-site__tooltip{display:block!important}.controller-status{display:inline-flex!important;width:-moz-fit-content;width:fit-content;align-items:center;gap:6px;font-weight:700}.controller-status:before{width:7px;height:7px;border-radius:50%;background:#b45309;content:""}.controller-status.is-online:before{background:var(--app-green)}.controller-pagination{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:12px;padding:4px 10px 4px 14px;color:var(--app-muted);font-size:12px}.controller-pagination>div{display:flex;align-items:center;gap:4px}.users-workspace{width:100%;margin:0 auto;padding-bottom:80px}.users-workspace>ion-segment{max-width:620px;margin-bottom:18px}.user-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) 100px 132px 132px 48px;align-items:end;gap:0;margin:12px 0}.user-toolbar ion-searchbar{--background: var(--app-surface);--border-radius: 6px;min-height:42px;padding:0}.user-toolbar label{display:grid;gap:4px;padding-left:8px;color:var(--app-muted);font-size:11px;font-weight:700;text-transform:uppercase}.user-toolbar select{width:100%;height:42px;border:1px solid var(--app-border);border-radius:6px;color:var(--ion-text-color);background:var(--app-surface);padding:0 10px;font:inherit;text-transform:none}.user-toolbar>.controller-icon-button{justify-self:end}.user-directory-layout{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:12px}.user-directory-layout.has-detail{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.user-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.user-table th,.user-table td{padding:11px 12px;border-bottom:1px solid var(--app-border);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.user-table th:first-child,.user-table td:first-child{width:auto}.user-table th:nth-child(2),.user-table td:nth-child(2){width:90px}.user-table th:nth-child(3),.user-table td:nth-child(3){width:118px}.user-table th:nth-child(4),.user-table td:nth-child(4),.user-table th:nth-child(5),.user-table td:nth-child(5){width:150px}.user-table th{color:var(--app-muted);background:color-mix(in srgb,var(--app-surface) 92%,var(--app-teal));font-size:10px;text-transform:uppercase}.user-table tbody tr{cursor:pointer}.user-table tbody tr:hover,.user-table tbody tr.is-selected{background:color-mix(in srgb,var(--app-surface) 91%,var(--app-teal))}.user-table td strong,.user-table td span{display:block;overflow:hidden;text-overflow:ellipsis}.user-table td:first-child>span{margin-top:2px;color:var(--app-muted);font-size:11px}.user-status{display:inline-flex!important;width:-moz-fit-content;width:fit-content;align-items:center;gap:6px;font-weight:700}.user-status:before{width:7px;height:7px;border-radius:50%;background:#b45309;content:""}.user-status.is-enabled:before{background:var(--app-green)}.user-detail{position:sticky;top:12px;min-width:0;padding:16px;border:1px solid var(--app-border);border-radius:8px;background:var(--app-surface)}.user-detail__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.user-detail__actions ion-button{min-width:0;margin:0}.user-create-card{max-width:760px;margin:0}.user-create-card h2{margin:0 0 12px;font-size:20px}.user-create-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-contact-fields,.profile-password-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.controller-detail{position:sticky;top:12px;padding:16px}.controller-detail__heading,.controller-detail__section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.controller-detail h2,.controller-detail h3,.firmware-release h2,.controller-setup-grid h2{margin:3px 0 0;font-family:Poppins,ui-sans-serif,system-ui;letter-spacing:0}.controller-detail h2,.firmware-release h2,.controller-setup-grid h2{font-size:19px}.controller-detail h3{font-size:15px}.controller-detail__close{border:0;font-size:24px}.controller-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:14px 0;overflow:hidden;border:1px solid var(--app-border);border-radius:6px;background:var(--app-border)}.controller-facts div{min-width:0;padding:9px 10px;background:var(--app-surface)}.controller-facts dt{color:var(--app-muted);font-size:10px;font-weight:700;text-transform:uppercase}.controller-facts dd{margin:2px 0 0;overflow:hidden;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.controller-actions{display:flex;flex-wrap:wrap;gap:7px}.controller-detail__section{margin-top:16px;padding-top:16px;border-top:1px solid var(--app-border)}.controller-detail__section-heading p{margin:2px 0 0;color:var(--app-muted);font-size:11px}.controller-field{margin:10px 0;--background: color-mix(in srgb, var(--app-surface) 94%, var(--app-teal));--border-radius: 6px}.controller-notice,.controller-empty{margin:12px 0;padding:12px;border-left:3px solid #b45309;color:var(--app-muted);background:color-mix(in srgb,var(--app-surface) 92%,#ea580c);font-size:12px}.controller-message{margin:10px 0;font-size:13px}.controller-message--error{color:#b42318}.controller-message--success{color:#087f5b}.controller-loading{display:flex;min-height:120px;align-items:center;justify-content:center;gap:8px;color:var(--app-muted);font-size:13px}.firmware-library-grid,.controller-setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}.firmware-release,.controller-setup-primary,.controller-setup-secondary,.controller-register{padding:18px}.firmware-release{display:flex;min-height:300px;flex-direction:column;justify-content:space-between}.controller-eyebrow{margin:0;color:#087f68;font-size:10px;font-weight:800;text-transform:uppercase}.controller-muted{margin:8px 0 16px;color:var(--app-muted);font-size:13px;line-height:1.5}.controller-register{grid-column:1 / -1}.controller-register__fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;gap:8px;margin-top:12px}@media(max-width:1100px){.controller-fleet-layout.has-detail,.user-directory-layout.has-detail{grid-template-columns:1fr}.controller-detail,.user-detail{position:static}}@media(max-width:820px){.controller-bulk-bar{grid-template-columns:minmax(0,1fr) minmax(180px,1fr)}}@media(max-width:720px){.controller-summary{grid-template-columns:repeat(2,1fr)}.controller-summary>div:nth-child(2){border-right:0}.controller-summary>div:nth-child(-n+2){border-bottom:1px solid var(--app-border)}.controller-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.controller-toolbar ion-searchbar{grid-column:1 / -1}.controller-toolbar .controller-icon-button{align-self:end}.user-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.user-toolbar ion-searchbar{grid-column:1 / -1}.user-toolbar .controller-icon-button{align-self:end}.controller-bulk-bar{grid-template-columns:1fr;align-items:stretch}.controller-bulk-results{grid-column:auto}.controller-table,.controller-table tbody,.controller-table tr,.controller-table td{display:block;width:100%!important}.controller-table thead{display:none}.controller-table tr{display:grid;grid-template-columns:1.5fr 1fr;padding:11px 12px;border-bottom:1px solid var(--app-border)}.controller-table td{padding:3px 0;border:0;white-space:normal}.controller-table td:nth-child(2){grid-row:span 2}.controller-table td:nth-child(5),.controller-table td:nth-child(6){color:var(--app-muted);font-size:11px}.controller-table .controller-select-cell{position:absolute;top:10px;right:12px;width:auto!important;padding:0}.controller-table tr{position:relative;padding-right:42px}.user-table,.user-table tbody,.user-table tr,.user-table td{display:block;width:100%!important}.user-table thead{display:none}.user-table tr{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(100px,1fr);padding:11px 12px;border-bottom:1px solid var(--app-border)}.user-table td{padding:3px 0;border:0;white-space:normal}.user-table td:first-child{grid-row:span 2}.user-table td:nth-child(4),.user-table td:nth-child(5){color:var(--app-muted);font-size:11px}.user-create-fields,.profile-contact-fields,.profile-password-fields,.controller-register__fields{grid-template-columns:1fr}}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:pb-8{padding-bottom:2rem}}@media(min-width:1280px){.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}:root{--mobile-padding: 12px;--touch-target-min: 44px;--card-border-radius: 8px;--transition-speed: .2s}button,[role=button],.ion-button{min-height:var(--touch-target-min);min-width:var(--touch-target-min);transition:background-color var(--transition-speed) ease-in-out}button:active,[role=button]:active{opacity:.8;transform:scale(.98)}.ion-card{border-radius:var(--card-border-radius);box-shadow:0 2px 8px #0000001a;transition:box-shadow var(--transition-speed),transform var(--transition-speed)}.ion-card:active{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}@media(max-width:768px){.ion-grid{padding:var(--mobile-padding)}.ion-row{flex-wrap:wrap}[style*="display: grid"]{grid-template-columns:1fr!important}}input,select,textarea{font-size:16px;padding:12px;border-radius:var(--card-border-radius);border:1px solid #ccc}.ion-list{--ion-item-border-style: solid;--ion-item-border-color: #f0f0f0}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading{animation:spin 1s linear infinite}.tap-indicator{position:relative;overflow:hidden}.tap-indicator:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);pointer-events:none}.tap-indicator:active:after{width:100px;height:100px;animation:ripple .6s ease-out}@keyframes ripple{0%{width:0;height:0;opacity:1}to{width:200px;height:200px;opacity:0}}
