*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:Tahoma,Arial,sans-serif;color:#102d4a;background:transparent}button,a{touch-action:manipulation}button{border:0;border-radius:12px;padding:13px 24px;background:#075bea;color:white;font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #ffb900;outline-offset:4px}[hidden]{display:none!important}.brand{position:fixed;z-index:10;top:calc(env(safe-area-inset-top) + 16px);left:18px;right:18px;display:flex;align-items:center;gap:10px;pointer-events:none;color:white;text-shadow:0 1px 5px #0008}.logo{display:grid;place-items:center;width:38px;height:38px;background:#075bea;border-radius:12px;font-size:24px;font-weight:bold;text-shadow:none}.brand strong{font-size:15px;letter-spacing:1px}.brand small{display:block;font-size:11px;margin-top:3px}.version{margin-left:auto;font-size:11px;background:#102d4acc;border:1px solid #ffffff50;padding:5px 9px;border-radius:20px}.panel{position:fixed;z-index:11;top:50%;left:50%;transform:translate(-50%,-50%);width:min(88vw,390px);padding:28px;background:#fffffff2;box-shadow:0 16px 60px #102d4a25;border:1px solid #fff;border-radius:22px;text-align:center}.eyebrow{color:#075bea;font-size:10px;letter-spacing:2px;font-weight:bold}h1{font-size:23px;line-height:1.45;margin:13px 0}p{font-size:14px;line-height:1.8;margin:0 0 20px}.card-link{display:block;font-size:13px;margin-top:18px;color:#245787;text-underline-offset:4px}.status{position:fixed;z-index:10;bottom:calc(env(safe-area-inset-bottom) + 22px);left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;width:max-content;max-width:90vw;padding:12px 18px;background:#102d4aed;border:1px solid #ffffff30;border-radius:40px;color:white;font-size:13px;line-height:1.5;text-align:center;pointer-events:none}.status i{flex:none;width:8px;height:8px;border-radius:50%;background:#ffca55}.status[data-mode=found] i{background:#66e4b2}.status[data-mode=error] i{background:#ff7979}#diagnostics{position:fixed;z-index:20;top:80px;left:12px;right:12px;max-height:50vh;overflow:auto;padding:10px;border-radius:8px;background:#111e;color:#fff;font:11px monospace}pre{white-space:pre-wrap;overflow-wrap:anywhere}body:has(#panel:not([hidden])){background-color:#e9f2fa}.a-enter-vr,.a-enter-ar{display:none!important}
/* AR.js owns the camera and renderer dimensions. Do not force video/canvas to 100%, cover, inset:0, or CSS transforms. */

/* The app provides an accessible Thai camera error instead of the vendor popup. */
#error-popup{display:none!important}

.model-switcher{position:fixed;z-index:12;left:50%;bottom:calc(env(safe-area-inset-bottom) + 82px);transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:7px;width:max-content;max-width:94vw;padding:8px;background:#fffffff0;border:1px solid #ffffffa0;border-radius:16px;box-shadow:0 6px 24px #102d4a30;font-size:12px;color:#102d4a}.model-switcher span{padding:0 4px;font-weight:bold}.model-switcher button{padding:10px 12px;border-radius:10px;font-size:12px;white-space:nowrap;background:#dce8f5;color:#153b61}.model-switcher button.active{background:#075bea;color:white}.model-switcher button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:420px){.model-switcher{gap:4px}.model-switcher span{display:none}.model-switcher button{padding:10px 9px;font-size:11px}}
