@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-ext-400-normal-Xqov12YL.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-400-normal-DRPPeomZ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-400-normal-BPq32Q8K.woff2)format("woff2"),url(/assets/montserrat-cyrillic-400-normal-jEs4Tk-Z.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-vietnamese-400-normal-D4oHqQTd.woff2)format("woff2"),url(/assets/montserrat-vietnamese-400-normal-BeEscFYY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-ext-400-normal-B8bwfy6Y.woff2)format("woff2"),url(/assets/montserrat-latin-ext-400-normal-BffdBkAA.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2)format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-ext-600-normal-BtBW-rpm.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-600-normal-wReYPmz2.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-600-normal-CQEPC0hM.woff2)format("woff2"),url(/assets/montserrat-cyrillic-600-normal-DUglwBrH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-vietnamese-600-normal-DKe6qT_E.woff2)format("woff2"),url(/assets/montserrat-vietnamese-600-normal-SJ-HTWuM.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-ext-600-normal-DSkTqI9L.woff2)format("woff2"),url(/assets/montserrat-latin-ext-600-normal-CSDhkhgS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2)format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-devanagari-600-normal-STEjXBNN.woff2)format("woff2"),url(/assets/poppins-devanagari-600-normal-ClASKHrr.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-ext-600-normal-CAhIAdZj.woff2)format("woff2"),url(/assets/poppins-latin-ext-600-normal-Df5ffKXP.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-600-normal-zEkxB9Mr.woff2)format("woff2"),url(/assets/poppins-latin-600-normal-BJdTmd5m.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ils-green:#004b23;--ils-green-dark:#00330f;--ils-gold:#ffc20e;--ils-gold-dark:#e0ac00;--ils-danger:#b3261e;--bg:#f7f7f5;--text:#111;--muted:#5b5b55;--font-heading:"Poppins", sans-serif;--font-body:"Montserrat", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior:none;touch-action:manipulation;overflow:hidden}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px}.app{flex-direction:column;height:100dvh;display:flex}.btn{min-height:44px;font:600 .95rem var(--font-body);cursor:pointer;border:0;border-radius:8px;padding:0 18px}.btn:disabled{opacity:.6;cursor:default}.btn.gold{background:var(--ils-gold);color:#000}.btn.gold:hover:not(:disabled){background:var(--ils-gold-dark)}.btn.ghost{color:#fff;background:0 0;border:1px solid #ffffff80}.error{color:var(--ils-danger);background:#fdecea;margin:0;padding:8px 16px;font-size:.9rem}.stage{flex:1;min-height:0;position:relative}.map-host{position:absolute;inset:0}.map-host canvas{touch-action:none;width:100%;height:100%;display:block}.overlay-panel,.edit-panel{z-index:2;background:#fff;border:1px solid #d9d9d3;border-radius:10px;flex-direction:column;gap:6px;width:min(300px,100% - 24px);padding:12px;font-size:.85rem;display:flex;position:absolute;left:12px;box-shadow:0 2px 10px #0000001a}.overlay-panel{top:118px}.edit-panel{max-height:60%;bottom:12px;overflow:auto}.overlay-label{color:var(--muted);margin-top:2px;font-size:.75rem}.overlay-row{gap:6px;display:flex}.overlay-panel input,.overlay-panel select,.edit-panel select{min-height:44px;font-size:16px;font:inherit;background:#fff;border:1px solid #c9c9c1;border-radius:8px;width:100%;min-width:0;padding:0 10px}.overlay-note{color:var(--muted);margin:0;font-size:.75rem}.overlay-note.bad{color:var(--ils-danger)}.btn.small{min-height:44px;color:var(--text);background:#fff;border:1px solid #c9c9c1;padding:0 12px;font-size:.85rem}.btn.small:disabled{opacity:.55}.edit-toggle{margin-top:4px}.edit-list{border:1px solid #eee;border-radius:8px;max-height:150px;overflow:auto}.edit-item{text-align:left;width:100%;min-height:36px;font:inherit;cursor:pointer;background:0 0;border:0;padding:4px 8px;display:block}.edit-item span{color:#888}.edit-item.on{background:#fff3c4}.edit-selected{flex-direction:column;gap:6px;display:flex}.nudge{grid-template-columns:repeat(3,48px);gap:4px;display:grid}.btn.small.save{background:var(--ils-gold);font-weight:700}@media (width<=560px){.overlay-panel{top:112px}}.info-card{z-index:2;pointer-events:none;width:fit-content;max-width:min(460px,100% - 396px);margin:0 auto;position:absolute;top:12px;left:384px;right:12px}@media (width<=720px){.info-card{width:auto;max-width:none;inset:auto 12px 12px}}.loading{z-index:3;background:var(--bg);color:var(--ils-green);font:600 1rem var(--font-heading);place-items:center;display:grid;position:absolute;inset:0}.fallback{z-index:3;background:var(--bg);padding:24px 16px;position:absolute;inset:0;overflow:auto}.fallback h2{font-family:var(--font-heading);color:var(--ils-green);margin:0 0 8px}.fallback li{border-bottom:1px solid #e3e3dd;padding:10px 0}.wx-frame{--k:1.1;--h:min(620px, calc(100dvh - 100px));width:calc(340px * var(--k));height:var(--h);border-radius:10px;overflow:hidden;box-shadow:0 2px 10px #0000001a}.weather iframe{width:340px;height:calc(var(--h) / var(--k));transform:scale(var(--k));transform-origin:0 0;background:#fff;border:1px solid #d9d9d3;border-radius:10px;box-shadow:0 2px 10px #0000001a}.search{z-index:3;width:min(360px,100% - 24px);position:absolute;top:12px;left:12px}.search-pill{color:#6b6b66;background:#fff;border:1px solid #d9d9d3;border-radius:14px;align-items:center;gap:8px;min-height:48px;padding:0 8px 0 14px;display:flex;box-shadow:0 2px 10px #0000001f}.search-pill input{min-width:0;min-height:44px;font:inherit;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:16px}.search-pill:focus-within{border-color:var(--ils-green)}.search-clear{color:#6b6b66;cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;font-size:1rem}.search-card{background:#fff;border:1px solid #d9d9d3;border-radius:14px;max-height:calc(100dvh - 140px);margin-top:6px;padding:4px 10px 10px;overflow:auto;box-shadow:0 6px 18px #00000029}.search-scopes{scrollbar-width:none;gap:2px;display:flex;overflow-x:auto}.search-scopes button{cursor:pointer;min-height:44px;font:inherit;background:0 0;border:0;flex:none;padding:0 2px}.search-scopes button span{color:var(--text);border:1px solid #cfcfc8;border-radius:999px;padding:5px 11px;font-size:.8rem;display:inline-block}.search-scopes button.on span{background:var(--ils-green);border-color:var(--ils-green);color:#fff}.search-group{color:var(--muted);margin:6px 0 0;font-size:.75rem;font-weight:600}.search-row{cursor:pointer;border-radius:10px;align-items:center;gap:10px;min-height:48px;padding:4px 6px;display:flex}.search-row.on,.search-row:hover{background:#f1f1ec}.search-icon{color:#55554f;background:#efefea;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;display:grid}.search-icon.building{color:var(--ils-green);background:#e3efe6}.search-icon.room{color:#1f6fe5;background:#e8f0fb}.search-icon.person{color:#8a6a00;background:#fff3c4}.search-text{flex-direction:column;min-width:0;display:flex}.search-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.search-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}@media (width<=720px){.search{width:calc(100% - 16px);top:8px;left:8px}.overlay-panel{gap:4px;width:calc(100% - 16px);padding:8px;left:8px}}.wx-btn{min-width:44px;font-weight:600}.devlogin{position:relative}.devlogin-menu{z-index:5;min-width:220px;color:var(--text);background:#fff;border:1px solid #d9d9d3;border-radius:10px;flex-direction:column;padding:6px;display:flex;position:absolute;top:52px;right:0;box-shadow:0 4px 16px #0000002e}.devlogin-menu p{color:var(--muted);margin:4px 8px;font-size:.7rem}.devlogin-menu button{text-align:left;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:4px 10px}.devlogin-menu button:hover{background:#f1f1ec}.devlogin-menu small{color:var(--muted);font-size:.72rem;display:block}@media (width<=720px){.wx-frame{--k:.8;--h:min(540px, calc(100dvh - 190px));width:calc(340px * var(--k));height:var(--h)}.weather iframe{height:calc(var(--h) / var(--k))}}.dialog-backdrop{z-index:20;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:#fff;border-radius:14px;flex-direction:column;gap:8px;width:min(420px,100%);max-height:100%;padding:20px;display:flex;overflow:auto;box-shadow:0 12px 40px #0000004d}.dialog h2{font-family:var(--font-heading);color:var(--ils-green);margin:0;font-size:1.25rem}.dialog p{margin:0;font-size:.9rem}.dialog label{color:var(--muted);margin-top:6px;font-size:.8rem}.dialog input,.dialog select{min-height:48px;font:inherit;letter-spacing:.04em;border:1px solid #c9c9c1;border-radius:8px;width:100%;padding:0 12px;font-size:16px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.dialog-actions.wrap{flex-wrap:wrap;justify-content:center}.error-text{color:var(--ils-danger)}.guest-made{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.guest-code{font:600 1.5rem var(--font-heading);letter-spacing:.08em;background:#f1f1ec;border-radius:8px;padding:8px 14px}.muted{color:var(--muted);min-height:1.2em}@media print{body *{visibility:hidden}.dialog,.dialog *{visibility:visible}.dialog{box-shadow:none;position:absolute;inset:0}.dialog-actions{display:none}}.route-edit{gap:0;width:min(340px,100vw - 24px);max-height:min(78%,620px);padding:0;overflow:hidden}.route-head{align-items:baseline;gap:8px;padding:10px 12px 6px;display:flex}.route-head .overlay-note{flex:1}.route-fold{cursor:pointer;background:0 0;border:0;min-width:44px;min-height:36px;font-size:1rem}.route-tools{grid-template-columns:repeat(5,1fr);gap:4px;padding:0 8px 8px;display:grid}.route-tool{min-height:52px;color:var(--text);font:inherit;cursor:pointer;background:#fff;border:1px solid #c9c9c1;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 2px;font-size:.68rem;display:flex}.route-tool.on{background:var(--green,#004b23);border-color:var(--green,#004b23);color:#fff}.route-body{border-top:1px solid #eee;flex-direction:column;flex:auto;gap:8px;min-height:0;padding:8px 12px;display:flex;overflow:auto}.route-foot{background:#fff;border-top:1px solid #e3e3dd;flex-direction:column;gap:6px;padding:8px 8px 10px;display:flex}.route-foot .overlay-row{gap:6px}.route-foot .btn{flex:1;padding:0 8px}.route-foot .btn.on{border-color:var(--ils-gold);background:#fff3c4}.route-foot .btn.save{background:var(--ils-gold);border-color:var(--ils-gold);font-weight:600}.route-foot .btn.save:disabled{background:#f1f1ec;border-color:#c9c9c1}.route-edit input[type=range]{width:100%}.route-edit input[type=text]{border:1px solid #c9c9c1;border-radius:8px;width:100%;min-height:44px;padding:0 10px;font-size:16px}.route-selected{background:#fffbea;border:1px solid #f0e2a6;border-radius:8px;flex-direction:column;gap:6px;padding:8px;display:flex}.route-selected-head{align-items:center;gap:8px;display:flex}.route-selected-head .overlay-note{flex:1}.btn.small.danger{color:var(--ils-danger);border-color:#e3b9b5;min-height:36px}.route-items summary{cursor:pointer;align-items:center;min-height:32px;font-size:.85rem;font-weight:600;display:flex}.route-list{border:1px solid #eee;border-radius:8px;flex-direction:column;max-height:160px;display:flex;overflow:auto}.route-item{text-align:left;min-height:40px;font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #f1f1ec;align-items:center;gap:8px;padding:4px 8px;font-size:.82rem;display:flex}.route-item.on{background:#fff3c4}.chip{color:#fff;border-radius:999px;padding:2px 6px;font-size:.68rem;font-weight:600}.chip.barrier{background:#b3261e}.chip.gate{background:#1f8a4c}.chip.path{background:#b88a00}.chip.tree{background:#2f7d32}.chip.palm{background:#6b8e23}.chip.clump{background:#1b5e20}.nav-wrap{z-index:2;flex-direction:column;align-items:flex-end;gap:10px;display:flex;position:absolute;bottom:16px;right:12px}.nav-dock{touch-action:none;-webkit-user-select:none;user-select:none;align-items:flex-end;gap:10px;display:flex}.nav-photo{color:#55554f;background:#fffffff0;border:1px solid #d9d9d3;border-radius:22px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex;box-shadow:0 2px 10px #00000024}.nav-photo input{width:120px;accent-color:var(--ils-gold,#c9a227)}.nav-arrows{grid-template-rows:repeat(2,40px);grid-template-columns:repeat(3,40px);gap:4px;display:grid}.nav-arrow{color:var(--text);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:#fffffff0;border:1px solid #d9d9d3;border-radius:12px;place-items:center;padding:0;display:grid;box-shadow:0 2px 8px #00000024}.nav-arrow-up{grid-area:1/2}.nav-arrow-left{grid-area:2/1}.nav-arrow-down{grid-area:2/2}.nav-arrow-right{grid-area:2/3}.nav-arrow:hover{background:#f1f1ec}.nav-arrow.held,.nav-arrow:active{background:var(--ils-gold,#c9a227);color:#fff;border-color:#0000}.nav-arrow:focus-visible{outline:3px solid var(--ils-gold);outline-offset:-3px}.nav-dial{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background:#fffffff0;border:1px solid #d9d9d3;border-radius:50%;width:84px;height:84px;position:relative;box-shadow:0 2px 10px #00000024}.nav-dial.held{cursor:grabbing;background:#fff}.nav-ring{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.nav-dial-mid{color:#8a8a85;cursor:ns-resize;background:#f3f3ee;border:1px solid #d9d9d3;border-radius:50%;flex-direction:column;justify-content:space-between;align-items:center;width:38px;height:38px;margin:-19px 0 0 -19px;padding:3px 0;display:flex;position:absolute;top:50%;left:50%}.nav-dial-dot{background:var(--ils-gold,#c9a227);border-radius:50%;width:6px;height:6px}.nav-col{flex-direction:column;align-items:center;gap:8px;display:flex}.nav-btn{width:44px;height:44px;color:var(--text);cursor:pointer;background:#fff;border:1px solid #d9d9d3;border-radius:10px;place-items:center;padding:0;display:grid;box-shadow:0 2px 10px #0000001a}.nav-btn:hover{background:#f1f1ec}.nav-btn:focus-visible{outline:3px solid var(--ils-gold);outline-offset:-3px}.nav-btn:active{background:#e6e6df}.nav-btn.on{background:var(--ils-gold,#c9a227);color:#fff;border-color:#0000}.nav-slider{color:#8a8a85;background:#ffffffeb;border:1px solid #d9d9d3;border-radius:22px;flex-direction:column;justify-content:space-between;align-items:center;width:44px;height:150px;padding:6px 0;font-size:9px;line-height:1;display:flex;box-shadow:0 2px 10px #0000001a}.nav-slider input{writing-mode:vertical-lr;width:30px;min-height:0;accent-color:var(--ils-gold,#c9a227);cursor:pointer;touch-action:none;direction:rtl;flex:1;margin:4px 0}@media (width<=720px){.nav-wrap{right:8px;bottom:max(12px, env(safe-area-inset-bottom))}.nav-dock{gap:8px}.nav-photo input{width:96px}.nav-dial{width:76px;height:76px}.nav-arrows{grid-template-rows:repeat(2,38px);grid-template-columns:repeat(3,38px)}.nav-slider{height:120px}}.credit{z-index:1;color:#ffffffe6;text-shadow:0 1px 2px #0009;max-width:48%;margin:0;font-size:10px;line-height:1.3;position:absolute;bottom:6px;left:8px}.credit a{color:inherit;text-decoration:underline}@media (width<=720px){.credit{max-width:none;font-size:8px;line-height:1.2;bottom:2px;left:8px;right:8px}.nav-wrap{bottom:calc(max(12px, env(safe-area-inset-bottom)) + 30px)}}.time-btn{align-items:center;gap:6px;display:inline-flex}.time-dot{background:var(--ils-gold,#c9a227);border-radius:50%;width:7px;height:7px}.time-panel{background:#fffffff5;border:1px solid #d9d9d3;border-radius:12px;width:250px;padding:10px 12px;box-shadow:0 2px 12px #0000002e}.time-panel input[type=range]{width:100%;accent-color:var(--ils-gold,#c9a227)}.time-ticks{color:#8a8a85;justify-content:space-between;margin:-2px 2px 8px;font-size:9px;display:flex}.time-presets{flex-wrap:wrap;gap:6px;display:flex}.time-note{color:#6b6b66;margin:8px 0 0;font-size:11px;line-height:1.3}@media (width<=720px){.time-panel{width:min(250px,100vw - 24px)}}.nav-sliders{gap:6px;display:flex}.nav-slider-wrap{flex-direction:column;align-items:center;gap:3px;display:flex}.nav-cap{color:#fff;text-shadow:0 1px 2px #000000b3;font-size:10px;line-height:1}.nav-slider{width:38px}.finder-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.finder-head strong{font-family:var(--font-heading);color:var(--ils-green-dark)}.finder-devices button{min-height:44px;font:600 .85rem var(--font-body);cursor:pointer;background:#fff;border:1px solid #d9d9d3;border-radius:8px;padding:0 14px}.finder-devices button.on{color:#0f4fae;background:#eaf2fd;border-color:#1f6fe5}.finder-devices small{color:var(--muted);font-weight:400}.finder-devices{flex-wrap:wrap;gap:6px;display:flex}.finder-devices button{align-items:center;gap:6px;display:flex}.finder-status{background:#f5f5f0;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.finder-status.online{background:#eaf2fd}.finder-status.online strong{color:#0f4fae}.finder-status small{color:var(--muted)}.dot{background:#b5b5ad;border-radius:50%;flex:none;width:10px;height:10px}.dot.online{background:#1f6fe5;box-shadow:0 0 0 3px #1f6fe540}button.link{color:#0f4fae;min-height:32px;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:4px 0;text-decoration:underline}button.link:disabled{color:var(--muted)}.viewas{width:100%;min-height:44px;color:var(--text);font:600 .85rem var(--font-body);background:#fff;border:1px solid #c9c9c1;border-radius:8px;padding:0 8px}.viewas-banner{color:#5a4300;background:#fff4d0;border-bottom:1px solid #e8d48a;flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:6px 16px;font-size:.85rem;display:flex}.finder-searching{color:var(--muted);align-items:center;gap:8px;margin:0;font-size:.85rem;display:flex}.spinner{border:3px solid #d6e4fb;border-top-color:#1f6fe5;border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{border-top-color:#d6e4fb;border-right-color:#1f6fe5;animation:none}}.finder-actions{gap:6px;display:flex}.btn.small.icon{place-items:center;width:44px;padding:0;display:grid}@media (width<=720px){.finder{gap:6px;max-height:30vh;margin-top:2px;padding:6px 8px;font-size:.85rem}.finder-head strong{font-size:.95rem}.finder .btn.small.icon,.finder-tabs button{min-height:38px}.finder .btn.small.icon{width:38px}.finder-devices{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.finder-devices button{white-space:nowrap;flex:none;min-height:38px;padding:0 10px}.finder-devices small{display:none}.finder-status{gap:0;padding:6px 8px}.finder-status small{font-size:.75rem}}.nav-body{display:contents}.nav-wrap[hidden]{display:none}.quick{z-index:2;flex-wrap:wrap;gap:2px;width:min(360px,100% - 24px);display:flex;position:absolute;top:66px;left:12px}.quick button{cursor:pointer;min-height:44px;font:inherit;background:0 0;border:0;padding:0 2px}.quick button span{color:var(--text);background:#fff;border:1px solid #d9d9d3;border-radius:999px;padding:6px 12px;font-size:.85rem;font-weight:600;display:inline-block;box-shadow:0 1px 6px #0000001a}.place-card{z-index:2;background:#fff;border:1px solid #d9d9d3;border-radius:14px;flex-direction:column;gap:6px;width:min(360px,100% - 24px);padding:12px 14px;display:flex;position:absolute;top:66px;left:12px;box-shadow:0 6px 18px #00000029}.place-card h2{font:600 1.05rem var(--font-heading);color:var(--ils-green-dark);margin:0}.place-detail{color:var(--muted);margin:0;font-size:.85rem}.place-note{color:var(--muted);margin:0;font-size:.78rem}.place-actions{gap:8px;margin-top:2px;display:flex}.place-actions .btn.gold{flex:1}.place-floors{flex-wrap:wrap;gap:6px;display:flex}.place-floors button{min-width:44px;min-height:44px;font:600 .85rem var(--font-body);cursor:pointer;background:#fff;border:1px solid #d9d9d3;border-radius:10px;padding:0 12px}.place-floors button.on{border-color:var(--ils-green);color:var(--ils-green-dark);background:#e3efe6}.device-card{max-height:calc(100dvh - 140px);overflow:auto}@media (width<=720px){.quick,.place-card{width:calc(100% - 16px);top:62px;left:8px}}.acct{flex:none;align-items:center;gap:4px;display:inline-flex;position:relative}.acct-btn{color:#6b6b66;cursor:pointer;background:0 0;border:0;place-items:center;min-width:44px;min-height:44px;font-size:1.3rem;display:grid}.acct-avatar{background:var(--ils-green);color:#fff;width:32px;height:32px;font:600 .75rem var(--font-body);border-radius:50%;place-items:center;display:grid}.acct-menu{z-index:6;width:min(280px,100vw - 24px);color:var(--text);background:#fff;border:1px solid #d9d9d3;border-radius:14px;flex-direction:column;gap:6px;padding:10px;font-size:.9rem;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 6px 18px #0003}.acct-who{overflow-wrap:anywhere;border-bottom:1px solid #eee;flex-direction:column;gap:4px;padding:2px 4px 6px;display:flex}.acct-badge{color:var(--ils-green-dark);background:#e3efe6;border-radius:999px;margin:2px 4px 0 0;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.acct-menu>button{text-align:left;min-height:44px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 10px}.acct-menu>button:hover{background:#f1f1ec}.acct-tools{border-top:1px solid #eee;flex-direction:column;gap:6px;padding-top:4px;display:flex}.acct-tools p{color:var(--muted);margin:4px 4px 0;font-size:.75rem;font-weight:600}.fallback-account{position:absolute;top:8px;right:8px}.btn.small.gold,.btn.gold.small{background:var(--ils-gold);color:#000;border:0;min-height:40px;padding:0 14px}.devlogin-menu{z-index:7}.ctl-col{z-index:2;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:12px;right:12px}.ctl-item{position:relative}.ctl-btn{min-width:44px;height:44px;color:var(--text);cursor:pointer;font:600 .8rem var(--font-body);background:#fff;border:1px solid #d9d9d3;border-radius:12px;justify-content:center;align-items:center;gap:4px;padding:0 8px;display:inline-flex;box-shadow:0 2px 10px #0000001f}.ctl-btn:hover{background:#f1f1ec}.ctl-btn.on{background:var(--ils-gold);border-color:#0000}.ctl-btn:focus-visible{outline:3px solid var(--ils-gold);outline-offset:2px}.ctl-pop{z-index:4;position:absolute;top:0;right:52px}.ctl-note{background:#fff;border:1px solid #d9d9d3;border-radius:10px;width:max-content;max-width:220px;padding:6px 10px;font-size:.78rem}.time-now{margin:0 0 8px;font-size:.85rem;font-weight:600}.ctl-zoom{display:none}@media (width>=721px){.ctl-zoom{display:inline-flex}}@media (width<=720px){.ctl-col{top:64px;right:8px}.quick,.place-card{width:calc(100% - 68px)}.search-card{margin-right:0}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.directions-text{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:.9rem;display:flex}.directions-text small{color:var(--muted);font-size:.75rem}.nav-notice{z-index:5;border:1px solid #d9d9d3;border-left:4px solid var(--ils-gold);background:#fff;border-radius:14px;align-items:center;gap:10px;width:min(360px,100% - 16px);padding:12px 14px;display:flex;position:absolute;top:8px;left:8px;box-shadow:0 6px 18px #00000029}.nav-banner{z-index:5;padding:max(12px, env(safe-area-inset-top)) 16px 12px;background:var(--ils-green);color:#fff;align-items:center;gap:14px;display:flex;position:absolute;top:0;left:0;right:0}.nav-banner-title{font:600 1.35rem var(--font-heading)}.nav-banner-sub{opacity:.92;font-size:.85rem}.eta-bar{z-index:5;padding:12px 16px max(18px, env(safe-area-inset-bottom));background:#fff;border-top:1px solid #d9d9d3;border-radius:18px 18px 0 0;align-items:center;gap:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.eta-main{flex-direction:column;flex:1;min-width:0;display:flex}.eta-min{font:600 1.25rem var(--font-heading);color:var(--ils-green)}.eta-sub,.eta-main small{color:var(--muted);font-size:.8rem}.eta-end{min-height:44px;color:var(--ils-danger);font:600 .9rem var(--font-body);cursor:pointer;background:#fdecea;border:0;border-radius:999px;padding:0 20px}@media (width>=721px){.nav-banner{border-radius:14px;width:360px;top:12px;left:12px;right:auto}.eta-bar{border:1px solid #d9d9d3;border-radius:16px;width:min(380px,100% - 24px);bottom:12px;left:50%;right:auto;transform:translate(-50%);box-shadow:0 6px 18px #00000029}.nav-notice{top:12px;left:12px}}body.navigating .ctl-col{top:100px}body.navigating .nav-wrap{bottom:112px}@media (width>=721px){body.navigating .ctl-col{top:12px}body.navigating .nav-wrap{bottom:84px}}.changes-tray{z-index:4}.changes-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.changes-list li{border-bottom:1px solid #eee;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.changes-list span{flex-direction:column;min-width:0;display:flex}.changes-list small{color:var(--muted);font-size:.78rem}.acct-avatar{position:relative}.acct-pending{background:var(--ils-gold);color:#000;min-width:18px;height:18px;font:700 .68rem var(--font-body);border-radius:999px;place-items:center;padding:0 4px;display:grid;position:absolute;top:-6px;right:-8px}.indoor-steps{flex-wrap:wrap}.indoor-steps-main{flex:200px;align-items:center;gap:10px;display:flex}.indoor-arrow{font-size:28px;line-height:1}.indoor-steps-buttons{flex-wrap:wrap;gap:8px;display:flex}.indoor-steps .btn{min-width:44px;min-height:44px}.indoor-floors{flex-wrap:wrap;gap:8px;width:100%;display:flex}.indoor-steps-list{width:100%;max-height:40vh;margin:0;padding-left:20px;overflow:auto}.indoor-steps-list li.on{font-weight:700}.where-are-you{gap:6px;margin-top:8px;display:grid}.indoor-ask{z-index:6;color:#1a1a1a;background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex;position:absolute;bottom:96px;left:12px;right:12px;box-shadow:0 4px 14px #00000040}.indoor-ask .btn{min-height:44px}.inside-btn{z-index:6;min-height:44px;position:absolute;bottom:96px;left:12px}.edit-panel.indoor-edit{flex-direction:column;max-height:min(620px,100dvh - 84px);padding:0;display:flex;overflow:hidden}.indoor-head{justify-content:space-between;align-items:center;padding:10px 12px 6px;display:flex}.indoor-scroll{flex:auto;min-height:0;padding:0 12px 8px;overflow:auto}.indoor-foot{background:inherit;border-top:1px solid #0000001f;flex:none;padding:8px 12px 10px}.indoor-next{margin:0 0 4px;font-size:13px;line-height:1.3}.indoor-foot .btn{min-height:40px}@media (height<=520px){.edit-panel.indoor-edit{max-height:calc(100dvh - 84px)}.indoor-head{padding:6px 12px 2px}.indoor-foot{padding:6px 12px 8px}}.indoor-problems{max-height:120px;margin:4px 0;padding-left:18px;font-size:13px;overflow:auto}.indoor-floors-row{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.indoor-chip{flex-direction:column;align-items:flex-start;min-height:44px;line-height:1.15;display:flex}.indoor-chip small{opacity:.75;font-size:11px}.indoor-chip.reviewed{border-color:#2e9e5b}.indoor-chip.problems{border-color:#f59e0b}.indoor-steps-row{gap:6px;margin:8px 0;display:grid}.indoor-step{text-align:left;min-height:44px;color:inherit;cursor:pointer;background:0 0;border:1px solid #0003;border-radius:10px;grid-template-columns:22px auto 1fr;align-items:center;gap:6px;padding:6px 10px;display:grid}.indoor-step.on{border-color:var(--ils-gold,#ffc20e);background:#ffc20e2e}.indoor-step.done .indoor-step-mark{color:#2e9e5b}.indoor-step-detail{opacity:.75;text-align:right;font-size:12px}.indoor-rooms{flex-wrap:wrap;gap:6px;padding:6px 0;display:flex}.indoor-room{min-height:36px;color:inherit;cursor:pointer;background:0 0;border:1px solid #0003;border-radius:999px;padding:4px 10px}.indoor-room.missing{background:#f59e0b26;border-color:#f59e0b}.indoor-room.ok span{color:#2e9e5b}.indoor-room.on{outline:2px solid var(--ils-gold,#ffc20e)}.indoor-show{z-index:6;min-height:44px;position:absolute;bottom:12px;left:12px}
