.garage-app[data-v-70c48fd1]{width:100%;max-width:480px;margin:0 auto;padding:24px 20px 0;box-sizing:border-box;opacity:0;transition:opacity .25s ease}.garage-app.ready[data-v-70c48fd1]{opacity:1}.garage-scene[data-v-70c48fd1]{position:relative;width:100%;aspect-ratio:1253 / 797;background-image:url(/garage-off.avif);background-size:contain;background-repeat:no-repeat;background-position:center}.light-overlay[data-v-70c48fd1]{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .5s ease-out;pointer-events:none;z-index:0}.light-overlay.on[data-v-70c48fd1]{opacity:1;transition:opacity 0s}.scene-overlay[data-v-70c48fd1]{position:absolute;pointer-events:none;z-index:0;transition:opacity .2s ease}.scene-overlay--left[data-v-70c48fd1]{top:37%;left:5.1%;width:41.9%;height:62.8%}.door-toggle[data-v-70c48fd1]{position:absolute;top:37%;height:62.8%;background:transparent;border:0;padding:0;cursor:pointer;font:inherit;color:inherit}.door-toggle[data-v-70c48fd1]:disabled{cursor:default}.door-frame[data-v-70c48fd1]{position:absolute;inset:0;overflow:hidden}.door-frame[data-v-70c48fd1]:before{content:"";position:absolute;top:0;left:0;right:0;height:15%;background:linear-gradient(180deg,#000000d9,#0000);pointer-events:none;z-index:1}.door-toggle--left[data-v-70c48fd1]{left:5.1%;width:41.9%}.door-toggle--right[data-v-70c48fd1]{left:52.6%;width:42.2%}.door-panels[data-v-70c48fd1]{position:absolute;top:0;left:0;right:0;height:100%;display:flex;flex-direction:column;transition:transform .2s linear;will-change:transform}.panel[data-v-70c48fd1]{flex:1 1 0;background:linear-gradient(180deg,#f4f4f0,#dcdcd8);box-shadow:inset 0 2px #ffffff80,inset 0 1px #00000040}.panel[data-v-70c48fd1]:not(:last-child){border-bottom:1px solid rgba(0,0,0,.15)}.door-logo[data-v-70c48fd1]{position:absolute;top:75%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .6s ease;pointer-events:none;z-index:2}.door-logo--tesla[data-v-70c48fd1]{width:26.8%}.door-logo--bike[data-v-70c48fd1]{width:36%}.door-logo.visible[data-v-70c48fd1]{opacity:.4}.status[data-v-70c48fd1]{position:absolute;bottom:-2.8em;left:50%;transform:translate(-50%);font-size:13px;white-space:nowrap;padding:4px 10px;border-radius:3px;background:#00000080;text-shadow:0 1px 2px rgba(0,0,0,.8)}.door-toggle.open .status[data-v-70c48fd1]{color:#ff6b6b}.door-toggle.closed .status[data-v-70c48fd1]{color:#67e457}.door-toggle.goingUp .status[data-v-70c48fd1],.door-toggle.goingDown .status[data-v-70c48fd1]{color:orange}.door-toggle.stoppedNextUp .status[data-v-70c48fd1],.door-toggle.stoppedNextDown .status[data-v-70c48fd1]{color:#67bee4}.door-toggle.disabled[data-v-70c48fd1]{pointer-events:none}.door-toggle.disabled .status[data-v-70c48fd1]{opacity:.55}.door-toggle.disabled .panel[data-v-70c48fd1]{background:linear-gradient(180deg,#c8c8c6,#9c9c9a)}.door-toggle.disabled.open .panel[data-v-70c48fd1]{background:linear-gradient(180deg,#b89c9c,#6e5a5a)}.door-toggle.waiting[data-v-70c48fd1]{pointer-events:none}.door-toggle.waiting .status[data-v-70c48fd1]{animation:pulse-70c48fd1 1.2s ease-in-out infinite}.door-frame[data-v-70c48fd1]:after{content:"";position:absolute;inset:0;background:#fff0;pointer-events:none;z-index:3}.door-toggle.waiting .door-frame[data-v-70c48fd1]:after{animation:door-flash-70c48fd1 .4s ease-out 1}@keyframes door-flash-70c48fd1{0%{background:#ffffff38}to{background:#fff0}}@keyframes pulse-70c48fd1{50%{opacity:.5}}.menu-fab[data-v-70c48fd1]{position:fixed;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);right:16px;z-index:50}.menu-toggle[data-v-70c48fd1]{width:36px;height:36px;padding:0;border:1px solid rgba(255,255,255,.1);border-radius:50%;background:#000000b3;color:#ffffffa6;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent;will-change:transform;transition:background .15s ease,color .15s ease,transform 80ms ease}.menu-toggle[data-v-70c48fd1]:active{background:#ffffff1a;color:#fff;transform:scale(.92)}.menu-fab.open .menu-toggle[data-v-70c48fd1]{background:#ffffff1a;color:#fff}.menu-popup[data-v-70c48fd1]{position:absolute;bottom:48px;right:0;background:#161616fa;border-radius:8px;border:1px solid rgba(255,255,255,.08);box-shadow:0 6px 16px #00000080;overflow:hidden;min-width:140px}.menu-item[data-v-70c48fd1]{width:100%;background:transparent;border:0;padding:12px 16px;color:#ddd;font-size:14px;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .12s ease}.menu-item[data-v-70c48fd1]:active{background:#ffffff14}.bilde-frame[data-v-70c48fd1]{position:relative;margin-top:56px;border-radius:8px;overflow:hidden;background:#0d0d0d;box-shadow:0 4px 16px #0006}.bilde-img[data-v-70c48fd1]{display:block;width:100%;height:auto;aspect-ratio:4 / 3;background:#0d0d0d;cursor:pointer}.bilde-loading[data-v-70c48fd1]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000059;pointer-events:none;z-index:2}.bilde-spinner[data-v-70c48fd1]{width:28px;height:28px;border:3px solid rgba(255,255,255,.18);border-top-color:#ffffffe6;border-radius:50%;animation:spin-70c48fd1 .7s linear infinite}.bilde-overlay[data-v-70c48fd1]{position:absolute;bottom:8px;left:8px;right:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}.bilde-time[data-v-70c48fd1]{font-size:11px;color:#ffffffd9;background:#000000b3;padding:4px 8px;border-radius:4px}.dashboard[data-v-70c48fd1]{margin-top:16px;background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden;position:relative}.dashboard[data-v-70c48fd1]:before{content:"";position:absolute;top:0;left:16px;right:16px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);pointer-events:none}.dash-row[data-v-70c48fd1]{display:grid;grid-template-columns:auto 88px minmax(0,1fr) auto;align-items:center;gap:14px;width:100%;min-height:56px;padding:14px 18px;background:transparent;border:0;font:inherit;color:#ffffffe0;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s ease;box-sizing:border-box}.dash-row[data-v-70c48fd1]:active{background:#ffffff0a}.dash-row+.dash-row[data-v-70c48fd1]{border-top:1px solid rgba(255,255,255,.05)}.dash-row.stale[data-v-70c48fd1]{color:#ffffff8c}.dash-row.warn[data-v-70c48fd1]{color:#ff9a9a}.dash-led[data-v-70c48fd1]{width:7px;height:7px;border-radius:50%;background:#fff3;flex-shrink:0}.dash-led.ok[data-v-70c48fd1]{background:#67e457;box-shadow:0 0 6px #67e45799;animation:led-pulse-70c48fd1 2.4s ease-in-out infinite}.dash-led.warn[data-v-70c48fd1]{background:#ff6b6b;box-shadow:0 0 6px #ff6b6b80}.dash-led.stale[data-v-70c48fd1]{background:#ffffff40}@keyframes led-pulse-70c48fd1{50%{opacity:.55}}.dash-label[data-v-70c48fd1]{font-family:ui-monospace,SF Mono,JetBrains Mono,Roboto Mono,monospace;font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#ffffff80}.dash-value[data-v-70c48fd1]{font-size:14px;color:#ffffffeb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-tesla[data-v-70c48fd1]{display:flex;align-items:center;gap:10px;white-space:nowrap}.dash-pct[data-v-70c48fd1]{font-family:ui-monospace,SF Mono,JetBrains Mono,Roboto Mono,monospace;font-feature-settings:"tnum";font-size:14px;color:#ffffffeb;letter-spacing:.02em}.dash-pct-sym[data-v-70c48fd1]{color:#fff6;margin-left:1px}.dash-battery[data-v-70c48fd1]{position:relative;display:inline-block;width:26px;height:11px;border:1px solid currentColor;border-radius:2px;padding:1px;box-sizing:content-box;color:#67e457;flex-shrink:0}.dash-battery[data-v-70c48fd1]:after{content:"";position:absolute;right:-3px;top:3px;width:2px;height:5px;background:currentColor;border-radius:0 1px 1px 0}.dash-battery-fill[data-v-70c48fd1]{display:block;height:100%;background:currentColor;border-radius:1px;transition:width .3s ease,background .3s ease}.dash-battery.mid[data-v-70c48fd1]{color:#ffb84a}.dash-battery.low[data-v-70c48fd1]{color:#ff6b6b}.dash-sep[data-v-70c48fd1]{color:#ffffff2e;font-size:13px;user-select:none}.dash-state[data-v-70c48fd1]{font-size:13px;white-space:nowrap;color:#ffffffb3}.dash-state.home[data-v-70c48fd1]{color:#ffffffeb}.dash-state.away[data-v-70c48fd1]{color:#8fcce8}.dash-state.charging[data-v-70c48fd1]{color:#ffd060}.dash-row--skeleton[data-v-70c48fd1]{pointer-events:none;cursor:default}.skeleton-led[data-v-70c48fd1]{width:7px;height:7px;border-radius:50%;background:#ffffff14;flex-shrink:0}.skeleton-bar[data-v-70c48fd1]{height:11px;border-radius:4px;background:linear-gradient(90deg,#ffffff0a,#ffffff1a,#ffffff0a);background-size:220% 100%;animation:shimmer-70c48fd1 1.6s ease-in-out infinite}@keyframes shimmer-70c48fd1{0%{background-position:220% 0}to{background-position:-220% 0}}.dash-spinner[data-v-70c48fd1]{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease;justify-self:end}.dash-spinner[data-v-70c48fd1]:before{content:"";width:14px;height:14px;border:2px solid rgba(255,255,255,.18);border-top-color:#ffffffd9;border-radius:50%}.dash-row.loading .dash-spinner[data-v-70c48fd1]{opacity:1}.dash-row.loading .dash-spinner[data-v-70c48fd1]:before{animation:spin-70c48fd1 .7s linear infinite}.pull-indicator[data-v-70c48fd1]{position:fixed;top:calc(env(safe-area-inset-top,0px) + 8px);left:50%;margin-left:-18px;width:36px;height:36px;border-radius:50%;background:#000000bf;color:#ffffffe6;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:100;box-shadow:0 2px 8px #0000004d;will-change:transform,opacity}.pull-arrow[data-v-70c48fd1]{width:18px;height:18px;transition:transform .2s ease}.pull-arrow.ready[data-v-70c48fd1]{transform:rotate(180deg)}.pull-spinner[data-v-70c48fd1]{width:18px;height:18px;border:2px solid rgba(255,255,255,.2);border-top-color:#ffffffe6;border-radius:50%;animation:spin-70c48fd1 .7s linear infinite}@keyframes spin-70c48fd1{to{transform:rotate(360deg)}}.login[data-v-358f994d]{max-width:320px;margin:60px auto;padding:0 20px}.error[data-v-358f994d]{color:#ff7c7c}html,body{min-height:100vh}body{background:#161e19;background:linear-gradient(0deg,#000,#161e19);color:#fff;font:16px/23px sans-serif;margin:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}input,button{width:100%;padding:10px;font:16px/23px sans-serif;color:#000}
