:root{color:#172033;background:#f4f7f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;background:radial-gradient(circle at top,rgb(57 147 103 / 14%),transparent 38rem),#f4f7f5}button{font:inherit}.mobile-app{width:min(100%,560px);min-height:100vh;margin:0 auto;padding:2rem 1rem 1.5rem}.mobile-app__header{margin-bottom:1.5rem}.mobile-app__eyebrow{margin:0;color:#19714d;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.mobile-app h1{margin:.55rem 0 0;color:#172033;font-size:clamp(2rem,9vw,3.1rem);letter-spacing:-.055em;line-height:1}.mobile-app__intro{margin:.9rem 0 0;color:#667085;font-size:1rem;line-height:1.6}.mobile-app__card{min-height:330px;padding:1.25rem;background:#fff;border:1px solid #dfe6e1;border-radius:20px;box-shadow:0 18px 50px #17203314}.mobile-app__state{margin:0;color:#172033;font-size:1rem;font-weight:800}.mobile-app__state--success{color:#19714d}.mobile-app__state--error{color:#b42318}.mobile-app__message{margin:.6rem 0 1.35rem;color:#667085;font-size:.95rem;line-height:1.55}.mobile-app__button{width:100%;min-height:48px;padding:.75rem 1rem;border:1px solid transparent;border-radius:12px;cursor:pointer;font-size:.95rem;font-weight:800;transition:filter .16s ease,transform .16s ease}.mobile-app__button:hover{filter:brightness(1.04);transform:translateY(-1px)}.mobile-app__button:focus-visible{outline:3px solid rgb(25 113 77 / 28%);outline-offset:3px}.mobile-app__button--primary{color:#fff;background:#19714d}.mobile-app__button--secondary{color:#1d5e43;background:#edf7f1;border-color:#bdddc9}.mobile-app__confirmation{margin-top:1rem;padding:1rem;background:#f6faf7;border:1px solid #d8e9df;border-radius:14px}.mobile-app__confirmation-title{margin:0;color:#172033;font-size:1rem;font-weight:800}.mobile-app__confirmation-text{margin:.55rem 0 0;color:#667085;font-size:.9rem;line-height:1.5}.mobile-app__session{display:grid;gap:.3rem;margin:1rem 0}.mobile-app__session span{color:#667085;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.mobile-app__session code{overflow-wrap:anywhere;color:#172033;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.mobile-app__actions{display:grid;grid-template-columns:1fr 1.3fr;gap:.7rem}.mobile-app__loading{display:flex;justify-content:center;margin-top:1rem}.mobile-app__spinner{width:1.8rem;height:1.8rem;border:3px solid #d8e9df;border-top-color:#19714d;border-radius:999px;animation:mobile-app-spin .7s linear infinite}@keyframes mobile-app-spin{to{transform:rotate(360deg)}}.mobile-app__footer{margin:1.25rem 0 0;color:#667085;font-size:.75rem;line-height:1.5;text-align:center}.qr-scanner{overflow:hidden;border-radius:14px}.qr-scanner__camera{overflow:hidden;min-height:260px;background:#172033;border-radius:14px}.qr-scanner__camera video{display:block;width:100%!important;height:auto!important;object-fit:cover}.qr-scanner__camera img,.qr-scanner__camera button,.qr-scanner__camera select{display:none}.qr-scanner__message,.qr-scanner__error{margin:.9rem 0 0;font-size:.88rem;line-height:1.5;text-align:center}.qr-scanner__message{color:#667085}.qr-scanner__error{color:#b42318}@media(max-width:380px){.mobile-app{padding-inline:.75rem}.mobile-app__actions{grid-template-columns:1fr}}@media(prefers-color-scheme:dark){:root{color:#f2f5f3;background:#101714}body{background:radial-gradient(circle at top,rgb(63 163 112 / 18%),transparent 38rem),#101714}.mobile-app h1,.mobile-app__state,.mobile-app__confirmation-title,.mobile-app__session code{color:#f2f5f3}.mobile-app__intro,.mobile-app__message,.mobile-app__confirmation-text,.mobile-app__session span,.mobile-app__footer,.qr-scanner__message{color:#b0bbb4}.mobile-app__card{background:#19221d;border-color:#33443a;box-shadow:none}.mobile-app__confirmation{background:#1d2a22;border-color:#365443}.mobile-app__button--secondary{color:#a9e5c1;background:#20362a;border-color:#477a59}}
