:root{color:#1d2a29;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#f6f8f7;font-family:Tahoma,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #2878d0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{direction:rtl;min-height:100svh}.masthead{background:#fff;border-bottom:1px solid #e5eae8;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:12px clamp(18px,3vw,42px);display:flex}h1{letter-spacing:-.4px;margin:0;font-size:clamp(20px,2vw,27px);line-height:1.5}.floor-pill{white-space:nowrap;color:#405351;background:#f1f4f3;border-radius:100px;align-items:center;padding:8px 15px;font-size:13px;font-weight:700;display:inline-flex}.main-content{max-width:1240px;margin:0 auto;padding:18px 24px 26px}.map-card{background:#fff;border:1px solid #e5eae8;border-radius:22px;overflow:hidden;box-shadow:0 10px 32px #1d2a2910}.map-stage{position:relative}.map-frame{background:#fff;width:100%;height:min(100svh - 220px,820px);min-height:510px;position:relative;overflow:hidden}.map-stage.search-open .map-frame{height:min(100svh - 134px,900px)}.map-touch{touch-action:none;cursor:grab;position:absolute;inset:0;overflow:hidden}.map-touch:active{cursor:grabbing}.floor-svg{transform-origin:50%;width:100%;height:100%;display:block}.unit-labels{fill:#344653;pointer-events:none;font:10px Tahoma,sans-serif}.unit-labels rect{fill:#fff;stroke:#dce5e1;stroke-width:.6px}.unit-leaders line{stroke:#748796;stroke-width:.7px}.unit-leaders circle{fill:#748796}.route-halo{fill:none;stroke:#fff;stroke-width:21px;stroke-linecap:round;stroke-linejoin:round;opacity:.96}.route-line{fill:none;stroke:#16a572;stroke-width:11px;stroke-linecap:round;stroke-linejoin:round}.qr-pin circle{fill:#718a94;stroke:#fff;stroke-width:5px}.qr-pin text{fill:#fff;pointer-events:none;font:800 18px Arial,sans-serif}.qr-anchor,.unit-anchor{opacity:0}.map-marker{z-index:1;pointer-events:none;width:0;height:0;position:absolute}.marker-label{color:#fff;white-space:nowrap;border-radius:100px;width:max-content;padding:7px 11px;font-size:12px;font-weight:800;display:block;position:absolute;bottom:25px;left:0;transform:translate(-50%);box-shadow:0 5px 15px #1d2a2933}.map-marker.below .marker-label{top:25px;bottom:auto}.marker-dot{color:#fff;border:3px solid #fff;border-radius:50%;place-items:center;width:36px;height:36px;font:800 10px Arial,sans-serif;display:grid;position:absolute;top:-18px;left:-18px;box-shadow:0 3px 10px #1d2a2940}.origin-marker .marker-label,.origin-marker .marker-dot{background:#2878d0}.destination-marker .marker-label,.destination-marker .marker-dot{background:#f47b2a}.destination-marker .marker-dot{width:20px;height:20px;top:-10px;left:-10px}.destination-marker .marker-label{bottom:19px}.destination-marker.below .marker-label{top:19px}.map-tools{z-index:2;gap:5px;display:grid;position:absolute;top:16px;left:16px}.map-tools button{color:#405351;background:#fff;border:1px solid #e5eae8;border-radius:11px;width:40px;height:40px;padding:0;font:700 23px Arial,sans-serif;box-shadow:0 4px 12px #1d2a291c}.map-tools button:hover{background:#f1f6f8}.search-panel,.scan-panel{z-index:3;background:#fff;border:1px solid #e5eae8;position:absolute;box-shadow:0 14px 42px #1d2a292b}.search-panel{border-radius:22px;width:min(430px,100% - 44px);padding:22px;bottom:22px;right:22px}.search-panel-header{justify-content:space-between;gap:14px;display:flex}.search-kicker{color:#526764;margin-bottom:6px;font-size:12px;font-weight:800;display:block}.search-panel h3,.scan-panel h3{margin:0;font-size:21px;line-height:1.55}.close-search{color:#405351;background:#f1f4f3;border:0;border-radius:50%;flex:none;width:31px;height:31px;padding:0;font:24px Arial,sans-serif}.close-search:hover{background:#e7eff2}.search-form{margin-top:23px}.search-form label{margin-bottom:8px;font-size:13px;font-weight:700;display:block}.search-row{gap:8px;display:flex}.search-row input{color:#1d2a29;text-align:center;background:#f0f7fb;border:1px solid #b8d7e9;border-radius:12px;flex:1;min-width:0;padding:12px 13px;font-size:17px;font-weight:700}.search-row input::placeholder{color:#7995a2;font-weight:400}.search-row button{color:#fff;background:#1d2a29;border:0;border-radius:12px;flex:none;padding:0 15px;font-size:13px;font-weight:800}.search-row button:hover{background:#314542}.search-trigger{z-index:2;color:#31536a;text-align:right;background:#f0f7fb;border:1px solid #b8d7e9;border-radius:16px;align-items:center;gap:12px;width:min(430px,100% - 44px);min-height:58px;margin:16px 22px 22px;padding:13px 18px;font-size:17px;font-weight:700;display:flex;position:relative;box-shadow:0 5px 15px #1d2a291c}.search-trigger:hover{background:#e7f2f8;border-color:#93c5e0}.search-trigger svg{color:#2878d0;flex:none}.form-error{color:#b14935;margin:11px 0 0;font-size:12px;line-height:1.7}.scan-panel{text-align:center;border-radius:24px;width:min(400px,100% - 36px);padding:30px 25px;top:50%;left:50%;transform:translate(-50%,-50%)}.scan-icon{color:#2878d0;background:#eaf4fa;border-radius:18px;place-items:center;width:58px;height:58px;margin:0 auto 15px;font-size:36px;display:grid}.scan-panel p{color:#526764;margin:8px 0 0;font-size:13px;line-height:1.9}@media (width<=680px){.masthead{gap:10px;min-height:66px;padding:10px 16px}.floor-pill{padding:7px 10px;font-size:10px}h1{font-size:19px}.main-content{max-width:none;padding:0}.map-card{box-shadow:none;border:0;border-radius:0}.map-frame{height:calc(100svh - 152px);min-height:480px}.map-stage.search-open .map-frame{height:calc(100svh - 66px)}.map-tools{top:12px;left:12px}.map-tools button{width:36px;height:36px}.search-panel{width:100%;padding:20px 18px max(20px, env(safe-area-inset-bottom));border-bottom:0;border-radius:24px 24px 0 0;bottom:0;right:0}.search-panel h3{font-size:18px}.search-form{margin-top:15px}.search-trigger{width:calc(100% - 24px);margin:12px 12px 14px}}@media (width<=370px){.search-row{flex-direction:column}.search-row button{min-height:44px}}
