*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff}.container{height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.screen{height:100dvh;display:flex;flex-direction:column;padding:16px 20px;overflow:hidden}.screen.hidden{display:none}.header{text-align:center;padding:12px 0 16px;flex-shrink:0}.welcome-text{font-size:clamp(24px,6vw,32px);font-weight:700}.welcome-text--logo-hidden{display:none!important}.welcome-text{transform:translateY(clamp(53px,calc(108px - (.06875*(100vw - 400px))),108px))}.welcome-logo{display:block;margin:0 auto;max-width:min(320px,88vw);max-height:clamp(72px,20dvh,200px);width:auto;height:auto;object-fit:contain;transform:translateY(clamp(18px,calc(42px - (.03*(100vw - 400px))),42px))}.back-btn{background:#ffffff1a;border:none;color:#fff;padding:10px 16px;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;align-self:flex-start;flex-shrink:0}.back-btn.is-hidden{display:none!important}.entry-options{flex:1;display:flex;flex-direction:column;gap:16px;justify-content:center;max-width:400px;margin:0 auto;width:100%}.entry-question{font-size:18px;color:#ffffffb3;text-align:center;margin-bottom:8px}.entry-btn{background:#ffffff14;border:2px solid rgba(255,255,255,.15);border-radius:20px;padding:24px 20px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px}.entry-icon{font-size:40px;line-height:1}.entry-label{font-size:22px;font-weight:700;color:#fff}.entry-hint{font-size:13px;color:#ffffff80}.instructions-flow{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;max-width:360px;margin:0 auto;width:100%}.step-card{background:#fffffff2;border-radius:16px;padding:16px;width:100%;display:flex;gap:12px;align-items:flex-start;box-shadow:0 4px 20px #0003}.step-badge{background:#3b82f6;color:#fff;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.step-content{flex:1}.step-title{font-size:14px;font-weight:600;color:#1f2937;margin-bottom:4px}.step-note{font-size:12px;color:#6b7280}.step-arrow{font-size:20px;color:#fff6}.dial-code{font-family:SF Mono,monospace;font-size:36px;font-weight:800;color:#3b82f6;letter-spacing:6px;margin:8px 0}.totp-display{margin-top:4px}.totp-code{font-family:SF Mono,monospace;font-size:clamp(24px,7vw,32px);font-weight:700;color:#1f2937;letter-spacing:3px;padding:8px 0}.totp-timer-row{display:flex;align-items:center;gap:10px;margin-top:4px}.totp-progress-bar{flex:1;height:5px;background:#e5e7eb;border-radius:3px;overflow:hidden}.totp-progress{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:3px;transition:width 1s linear}.totp-progress.urgent{background:linear-gradient(90deg,#f59e0b,#d97706)}.totp-timer{font-family:monospace;font-size:13px;font-weight:600;color:#6b7280}.qr-hero{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:0}.qr-code{width:min(280px,65vw);height:min(280px,65vw);background:#fff;border-radius:16px;padding:12px;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 36px #00000040}.qr-code img{width:100%;height:100%;object-fit:contain}.qr-instructions{display:flex;flex-direction:column;align-items:center;gap:4px}.qr-instruction{font-size:16px;font-weight:600;text-align:center}.qr-hint{font-size:13px;color:#fff9;text-align:center}.video-section{width:100%;max-width:320px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:12px}.video-toggle{width:100%;padding:14px 16px;font-size:15px;font-weight:600;color:#fff;background:none;border:none;cursor:pointer;display:flex;justify-content:space-between}.toggle-arrow{font-size:12px;opacity:.6;transform:rotate(-90deg);transition:transform .3s}.video-section.open .toggle-arrow{transform:rotate(0)}.video-content{max-height:0;overflow:hidden;transition:max-height .3s}.video-section.open .video-content{max-height:250px}.video-inner{padding:0 12px 12px}.demo-video{width:100%;border-radius:8px;display:none}.video-loading{padding:24px;text-align:center;font-size:13px;color:#fff9}.qr-hero:has(.video-section.open) .qr-instructions{display:none}.help-section{text-align:center;padding:12px 0;flex-shrink:0}.help-text{font-size:15px;color:#ffffff80}.help-text a{color:#60a5fa;text-decoration:none;font-weight:500}.error-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px}.error-icon{font-size:64px;margin-bottom:16px}.error-title{font-size:24px;font-weight:700;margin-bottom:12px}.error-message{font-size:16px;color:#ffffffb3;margin-bottom:24px;max-width:300px}.error-action{background:#ffffff1a;border-radius:12px;padding:20px;max-width:300px}.error-action-title{font-size:14px;font-weight:600;margin-bottom:8px;color:#60a5fa}.error-action-text{font-size:15px;color:#fffc;line-height:1.5;margin-bottom:12px}.error-phone{display:block;font-size:20px;font-weight:700;color:#fff;text-decoration:none;background:#3b82f6;padding:12px 20px;border-radius:10px;margin-top:4px}.loading-spinner{width:36px;height:36px;border:3px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}body.theme-light{color:#1f2937}body.theme-light .welcome-text{color:#111827}body.theme-light .back-btn{background:#0000000f;color:#1f2937}body.theme-light .entry-question{color:#0000009e}body.theme-light .entry-btn{background:#ffffffb8;border-color:#0000001f}body.theme-light .entry-label{color:#111827}body.theme-light .entry-hint{color:#0000007a}body.theme-light .step-card{background:#fff;box-shadow:0 4px 20px #00000014;border:1px solid rgba(0,0,0,.06)}body.theme-light .step-arrow{color:#00000052}body.theme-light .dial-code{color:#1d4ed8}body.theme-light .qr-instruction{color:#111827}body.theme-light .qr-hint{color:#0000008c}body.theme-light .qr-code{box-shadow:0 10px 28px #0000001f}body.theme-light .video-section{background:#0000000a;border-color:#0000001a}body.theme-light .video-toggle{color:#111827}body.theme-light .video-loading{color:#0000008c}body.theme-light .toggle-arrow{opacity:.45}body.theme-light .help-text{color:#0000008c}body.theme-light .help-text a{color:#1d4ed8}body.theme-light .error-title{color:#111827}body.theme-light .error-message{color:#0000009e}body.theme-light .error-action{background:#0000000d}body.theme-light .error-action-title{color:#1d4ed8}body.theme-light .error-action-text{color:#000000b8}body.theme-light .error-phone{color:#fff}body.theme-light .loading-spinner{border-color:#d1d5db;border-top-color:#1d4ed8}@media(max-height:667px){.screen{padding:12px 16px}.header{padding:8px 0 12px}.welcome-text{font-size:22px}.welcome-logo{max-height:clamp(56px,16dvh,140px)}.entry-btn{padding:18px 16px}.entry-icon{font-size:32px}.entry-label{font-size:18px}.step-card{padding:12px}.dial-code{font-size:30px;margin:6px 0}.totp-code{font-size:22px;padding:6px 0}.qr-code{width:min(220px,55vw);height:min(220px,55vw)}}@media(orientation:landscape)and (max-height:500px){.screen{padding:8px 20px}#screen-garage .header,#screen-front-door .header{display:none}.header{padding:4px 0 8px}.welcome-text{font-size:20px}.welcome-logo{max-height:min(120px,18dvh)}.entry-options{flex-direction:row;gap:12px}.entry-btn{flex:1;padding:16px 12px}.entry-icon{font-size:28px}.entry-label{font-size:16px}.entry-hint{font-size:11px}.entry-question{font-size:14px;margin-bottom:4px}.instructions-flow{gap:4px}.step-card{padding:10px 12px}.step-badge{width:22px;height:22px;font-size:11px}.step-title{font-size:12px;margin-bottom:2px}.step-note{font-size:10px}.step-arrow{font-size:14px}.dial-code{font-size:24px;letter-spacing:4px;margin:4px 0}.totp-code{font-size:18px;letter-spacing:2px;padding:4px 0}.totp-timer-row{margin-top:2px;gap:6px}.qr-hero{gap:8px}.qr-code{width:min(220px,55vh);height:min(220px,55vh)}.qr-instruction{font-size:14px}.qr-hint{font-size:11px}.video-section{display:none}.help-section{padding:6px 0}.help-text{font-size:12px}.back-btn{padding:6px 12px;font-size:13px}}
