@font-face{font-family:Switzer;src:url(/fonts/Switzer/Switzer-Variable.ttf) format("truetype-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Switzer;src:url(/fonts/Switzer/Switzer-VariableItalic.ttf) format("truetype-variations");font-weight:100 900;font-style:italic;font-display:swap}*,:after,:before{box-sizing:border-box}body,html{margin:0}body{font-family:Switzer,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica,Arial,sans-serif;background:var(--bground);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{-webkit-text-size-adjust:100%}@media (max-width:640px){:root[data-os=ios] input:not([type=checkbox]):not([type=radio]),:root[data-os=ios] select,:root[data-os=ios] textarea{font-size:16px!important}}:root{--focus-ring:var(--primary)}@supports (color:oklch(0 0 0)){:root{--focus-ring:oklch(from var(--primary) calc(min(1, var(--primary-L) + 0.10)) var(--primary-C) var(--primary-h-ok))}}[role=button]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:8px}.sb-card{background:var(--panel);border:0;border-radius:12px;position:relative;overflow:hidden;box-shadow:0 6px 18px 0 rgba(0,0,0,.1)}@supports (color:oklch(0 0 0)){.sb-card{--card-sheen-dL:0.015;--card-sheen-dC:-0.02;--card-hotspot-dL:0.035;--card-hotspot-dC:-0.03;--card-top-dL:0.02;--card-top-dC:-0.03}:root[data-theme=dark] .sb-card{--card-top-dL:0.03}:root[data-theme=light] .sb-card{--card-top-dL:-0.012}.sb-card--fx:before{left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,oklch(calc(var(--card-L) + var(--card-top-dL)) 0 var(--card-h-ok)/0) 0,oklch(calc(var(--card-L) + var(--card-top-dL)) 0 var(--card-h-ok)/.85) 50%,oklch(calc(var(--card-L) + var(--card-top-dL)) 0 var(--card-h-ok)/0) 100%);transition:opacity .14s ease,filter .14s ease}.sb-card--fx:after,.sb-card--fx:before{content:"";position:absolute;pointer-events:none}.sb-card--fx:after{inset:0;background:radial-gradient(120% 160% at 18% 0,oklch(calc(var(--card-L) + var(--card-sheen-dL)) calc(max(0, var(--card-C) + var(--card-sheen-dC))) var(--accent-h)),transparent 60%);opacity:.22;transition:opacity .14s ease}.sb-card--fx:focus-within:after,.sb-card--fx:hover:after{background:radial-gradient(110% 140% at 20% 0,oklch(calc(var(--card-L) + var(--card-hotspot-dL)) calc(max(0, var(--card-C) + var(--card-hotspot-dC))) var(--accent-h)),transparent 62%);opacity:.32}:root[data-theme=dark] .sb-card{box-shadow:0 8px 20px 0 oklch(calc(var(--card-L)) calc(var(--card-C)) var(--card-h-ok)/.16),0 6px 14px 0 oklch(calc(min(1, var(--bg-L) + .35)) 0 var(--bg-h-ok)/.14),0 1px 0 0 oklch(calc(var(--border-L)) calc(var(--border-C)) var(--border-h-ok)/.6) inset}:root[data-theme=light] .sb-card{box-shadow:0 8px 20px 0 oklch(calc(var(--card-L)) calc(var(--card-C)) var(--card-h-ok)/.14),0 6px 14px 0 oklch(calc(max(0, var(--bg-L) - .35)) 0 var(--bg-h-ok)/.1),0 1px 0 0 oklch(calc(var(--border-L)) calc(var(--border-C)) var(--border-h-ok)/.55) inset}:root[data-theme=dark] .sb-card:focus-within,:root[data-theme=dark] .sb-card:hover{box-shadow:0 8px 20px 0 oklch(calc(var(--card-L)) calc(var(--card-C)) var(--card-h-ok)/.16),0 6px 14px 0 oklch(calc(min(1, var(--bg-L) + .35)) 0 var(--bg-h-ok)/.14),0 1px 0 0 oklch(calc(var(--border-L)) calc(var(--border-C)) var(--border-h-ok)/.6) inset}:root[data-theme=light] .sb-card:focus-within,:root[data-theme=light] .sb-card:hover{box-shadow:0 8px 20px 0 oklch(calc(var(--card-L)) calc(var(--card-C)) var(--card-h-ok)/.14),0 6px 14px 0 oklch(calc(max(0, var(--bg-L) - .35)) 0 var(--bg-h-ok)/.1),0 1px 0 0 oklch(calc(var(--border-L)) calc(var(--border-C)) var(--border-h-ok)/.55) inset}}@supports not (color:oklch(0 0 0)){.sb-card{box-shadow:0 6px 18px 0 hsla(var(--card-h) var(--card-s) var(--card-l)/.12)}:root[data-theme=dark] .sb-card{box-shadow:0 8px 20px 0 hsla(var(--card-h) var(--card-s) var(--card-l)/.16),0 6px 14px 0 hsla(0,0%,100%,.14)}:root[data-theme=light] .sb-card{box-shadow:0 8px 20px 0 hsla(var(--card-h) var(--card-s) var(--card-l)/.14),0 6px 14px 0 rgba(0,0,0,.1)}.sb-card--fx:before{left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,hsl(var(--card-h) 0% calc((var(--card-l) + 2%))/0) 0,hsl(var(--card-h) 0% calc((var(--card-l) + 2%))/.85) 50%,hsl(var(--card-h) 0% calc((var(--card-l) + 2%))/0) 100%)}.sb-card--fx:after,.sb-card--fx:before{content:"";position:absolute;pointer-events:none;transition:opacity .14s ease}.sb-card--fx:after{inset:0;background:radial-gradient(120% 160% at 18% 0,hsl(var(--primary-h) calc((var(--primary-s) - 12%)) calc((var(--card-l) + 1.5%))),transparent 60%);opacity:.22}.sb-card--fx:focus-within:after,.sb-card--fx:hover:after{background:radial-gradient(110% 140% at 20% 0,hsl(var(--primary-h) calc((var(--primary-s) - 14%)) calc((var(--card-l) + 3.5%))),transparent 62%);opacity:.32}:root[data-theme=dark] .sb-card:focus-within,:root[data-theme=dark] .sb-card:hover{box-shadow:0 8px 20px 0 hsla(var(--card-h) var(--card-s) var(--card-l)/.16),0 6px 14px 0 hsla(0,0%,100%,.14)}:root[data-theme=light] .sb-card:focus-within,:root[data-theme=light] .sb-card:hover{box-shadow:0 8px 20px 0 hsla(var(--card-h) var(--card-s) var(--card-l)/.14),0 6px 14px 0 rgba(0,0,0,.1)}}@media (prefers-reduced-motion:reduce){.sb-card:after,.sb-card:before{transition:none!important}}.sb-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:6px 2px;background:transparent;border:0;border-radius:0}.sb-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;border-radius:999px;border:0;background:color-mix(in srgb,var(--card) 88%,transparent);color:var(--text);font-weight:800;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .05s ease}.sb-btn--primary{border:1px solid var(--primary)}.sb-btn--primary:hover{background:var(--primary-strong);border-color:var(--primary-strong)}.sb-btn:active{transform:scale(.99)}.sb-btn--primary{border:0;background:var(--primary);color:#0c111b}.sb-btn--ghost{background:transparent}.sb-btn--icon{width:44px;height:44px;padding:0;border-radius:999px}.sb-btn--small{padding:6px 10px;border-radius:8px}.sb-select{-webkit-appearance:menulist;-moz-appearance:auto;appearance:auto;color:var(--text);font-family:inherit;font-weight:800;line-height:1.2;padding:10px 14px;border-radius:999px;--glass-blur:9px;--glass-sat:1.25;border:1px solid transparent;background:radial-gradient(140% 260% at 18% 0,color-mix(in srgb,var(--bg) 20%,transparent),transparent 64%),linear-gradient(180deg,color-mix(in srgb,var(--card) 65%,transparent),color-mix(in srgb,var(--card) 35%,transparent)),linear-gradient(180deg,color-mix(in srgb,var(--border) 55%,transparent),color-mix(in srgb,var(--border) 25%,transparent));background-clip:padding-box,padding-box,border-box;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));box-shadow:0 1px 0 color-mix(in srgb,#fff 28%,var(--card)) inset,0 -1px 0 color-mix(in srgb,var(--border) 52%,transparent) inset,0 2px 8px color-mix(in srgb,#fff 12%,transparent) inset,0 0 18px color-mix(in srgb,#fff 10%,transparent) inset,0 0 0 1px color-mix(in srgb,var(--border) 60%,transparent) inset,0 1px 2px color-mix(in srgb,var(--bg) 12%,transparent);transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease,-webkit-backdrop-filter .2s ease;transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease,backdrop-filter .2s ease;transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease,backdrop-filter .2s ease,-webkit-backdrop-filter .2s ease}.sb-select:hover{background:radial-gradient(140% 240% at 20% 0,color-mix(in srgb,var(--bg) 26%,transparent),transparent 66%),linear-gradient(180deg,color-mix(in srgb,var(--card) 68%,transparent),color-mix(in srgb,var(--card) 32%,transparent)),linear-gradient(180deg,color-mix(in srgb,var(--border) 60%,transparent),color-mix(in srgb,var(--border) 28%,transparent));background-clip:padding-box,padding-box,border-box;-webkit-backdrop-filter:blur(calc(var(--glass-blur) + 1px)) saturate(1.3);backdrop-filter:blur(calc(var(--glass-blur) + 1px)) saturate(1.3);box-shadow:0 1px 0 color-mix(in srgb,#fff 32%,var(--card)) inset,0 -1px 0 color-mix(in srgb,var(--border) 54%,transparent) inset,0 3px 10px color-mix(in srgb,#fff 14%,transparent) inset,0 0 22px color-mix(in srgb,#fff 12%,transparent) inset,0 0 0 1px color-mix(in srgb,var(--border) 65%,transparent) inset,0 2px 4px color-mix(in srgb,var(--bg) 14%,transparent)}.Sb-cardglow,.sb-cardglow{--glass-blur:10px;--glass-sat:1.25;position:relative;border:1px solid transparent;background:radial-gradient(140% 260% at 18% 0,color-mix(in srgb,var(--bg) 20%,transparent),transparent 64%),linear-gradient(180deg,color-mix(in srgb,var(--card) 65%,transparent),color-mix(in srgb,var(--card) 35%,transparent)),linear-gradient(180deg,color-mix(in srgb,var(--border) 55%,transparent),color-mix(in srgb,var(--border) 25%,transparent));background-clip:padding-box,padding-box,border-box;-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));box-shadow:0 1px 0 color-mix(in srgb,#fff 22%,var(--card)) inset,0 -1px 0 color-mix(in srgb,var(--border) 52%,transparent) inset,0 2px 10px color-mix(in srgb,#fff 10%,transparent) inset,0 0 22px color-mix(in srgb,#fff 10%,transparent) inset,0 0 0 1px color-mix(in srgb,var(--border) 60%,transparent) inset,0 8px 22px color-mix(in srgb,var(--bg) 14%,transparent);transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease,-webkit-backdrop-filter .2s ease;transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease,backdrop-filter .2s ease;transition:background-color .15s ease,box-shadow .15s ease,border-color .15s ease,backdrop-filter .2s ease,-webkit-backdrop-filter .2s ease}.Sb-cardglow:focus-within,.Sb-cardglow:hover,.sb-cardglow:focus-within,.sb-cardglow:hover{background:radial-gradient(140% 240% at 20% 0,color-mix(in srgb,var(--bg) 26%,transparent),transparent 66%),linear-gradient(180deg,color-mix(in srgb,var(--card) 68%,transparent),color-mix(in srgb,var(--card) 32%,transparent)),linear-gradient(180deg,color-mix(in srgb,var(--border) 60%,transparent),color-mix(in srgb,var(--border) 28%,transparent));-webkit-backdrop-filter:blur(calc(var(--glass-blur) + 1px)) saturate(1.3);backdrop-filter:blur(calc(var(--glass-blur) + 1px)) saturate(1.3);box-shadow:0 1px 0 color-mix(in srgb,#fff 28%,var(--card)) inset,0 -1px 0 color-mix(in srgb,var(--border) 54%,transparent) inset,0 3px 12px color-mix(in srgb,#fff 12%,transparent) inset,0 0 26px color-mix(in srgb,#fff 12%,transparent) inset,0 0 0 1px color-mix(in srgb,var(--border) 65%,transparent) inset,0 10px 26px color-mix(in srgb,var(--bg) 16%,transparent)}.sb-card :where(input,textarea,select):not(.sb-select){background:var(--field)}select:not(.sb-select){-webkit-appearance:menulist;-moz-appearance:auto;appearance:auto;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:8px 12px;font-weight:700;font-family:inherit}.sb-seg{display:inline-flex;background:var(--card);border:1px solid color-mix(in srgb,var(--border) 50%,transparent);border-radius:12px;padding:2px}.sb-seg>button{border:0;background:transparent;color:var(--text);font-weight:800;padding:6px 10px;border-radius:8px;cursor:pointer}.sb-seg>button[data-active=true]{background:var(--primary);color:#0c111b}.sb-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--border) 50%,transparent);background:var(--card);color:var(--muted);font-size:12px;font-weight:800}.sb-popover{background:var(--panel);border:1px solid color-mix(in srgb,var(--border) 55%,transparent);border-radius:12px;padding:10px;box-shadow:0 10px 30px rgba(0,0,0,.25)}.config-grid{display:grid;grid-template-columns:1fr;grid-gap:16px;gap:16px;align-items:start}@media (min-width:1025px){.config-grid{grid-template-columns:280px 1fr}}.room-row{display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr auto;grid-template-areas:"name name" "type actions";align-items:center}@media (max-width:480px){.room-row{grid-template-columns:1fr;grid-template-areas:"name" "type" "actions"}}.rd-row{display:grid;grid-template-columns:1fr 160px 90px 90px;grid-gap:8px;gap:8px;align-items:center}@media (max-width:480px){.rd-row{grid-template-columns:1fr}}.cleaning-grid{--clean-card-min:180px;--clean-card-aspect:3/4}@media (max-width:480px){.cleaning-grid{--clean-grid-cols:repeat(2,minmax(0,1fr));--clean-grid-gap:8px}}.break-anywhere{overflow-wrap:anywhere;word-break:break-word}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sb-scrollbar{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--panel) 85%,transparent) color-mix(in srgb,var(--bg) 100%,transparent)}.sb-scrollbar::-webkit-scrollbar{width:var(--sb-size,10px);height:var(--sb-size,10px)}.sb-scrollbar::-webkit-scrollbar-track{background:color-mix(in srgb,var(--bg) 100%,transparent);border-radius:999px}.sb-scrollbar::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--panel) 88%,transparent);border-radius:999px;border:2px solid color-mix(in srgb,var(--bg) 100%,transparent)}.sb-scrollbar:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--panel) 94%,transparent)}@property --modal-ring-angle{syntax:"<angle>";initial-value:0deg;inherits:false}.modalCard{--modal-card:var(--card,rgba(12,19,35,.9));--modal-border:var(--border,rgba(148,163,184,.18));--modal-prim:var(--primary,#3ecf8e);--modal-acc1:var(--accent1,#22d3ee);--modal-acc2:var(--accent2,rgba(12,19,35,.9));--modal-ring:var(--ring,2px);--modal-speed:var(--ring-speed,2.6s);position:relative;background:var(--modal-card);border:1px solid var(--modal-border);border-radius:22px;padding:24px;transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease;will-change:transform}.modalCard>*{position:relative;z-index:2}.modalCard:hover{transform:translateY(-2px)}.modalCard:before{content:"";position:absolute;inset:0;padding:var(--modal-ring);border-radius:inherit;background:conic-gradient(from var(--modal-ring-angle),color-mix(in srgb,var(--bg) 75%,transparent) 0,color-mix(in srgb,var(--bg) 75%,transparent) 25%,color-mix(in srgb,var(--modal-prim) 75%,transparent) 50%,color-mix(in srgb,var(--bg) 75%,transparent) 75%,color-mix(in srgb,var(--bg) 75%,transparent) 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;z-index:1;opacity:0;animation:modal-ring-spin var(--modal-speed) linear infinite paused}.modalCard:is(:hover,:focus-within):before{opacity:1;animation-play-state:running}@keyframes modal-ring-spin{to{--modal-ring-angle:360deg}}.modalCard[data-animate=true]:before{opacity:1;animation-play-state:running}@supports not ((-webkit-mask-composite:xor) or (mask-composite:exclude)){.modalCard:before{inset:calc(-1 * var(--modal-ring));padding:0;-webkit-mask:none;mask:none;z-index:0;animation:modal-ring-rotate var(--modal-speed) linear infinite paused}.modalCard:is(:hover,:focus-within):before,.modalCard[data-animate=true]:before{animation-play-state:running;opacity:1}.modalCard:after{content:"";position:absolute;inset:var(--modal-ring);border-radius:inherit;background:var(--modal-card);z-index:1;pointer-events:none}@keyframes modal-ring-rotate{to{transform:rotate(1turn)}}}:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}