[hidden]{display:none!important;}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0b0b0d;color:#fff;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%}body{overscroll-behavior-y:contain}.app-shell{min-height:100dvh}.view{min-height:100dvh}.login-view{display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom))}.login-card{width:min(100%,520px);background:#151519;border:1px solid #2a2a30;border-radius:28px;padding:32px;box-shadow:0 22px 80px rgba(0,0,0,.32)}.brand{display:flex;align-items:baseline;gap:12px;margin-bottom:34px}.brand-mark{font-size:34px;font-weight:850;letter-spacing:.1em}.brand-sub{font-size:18px;color:#b7b7c0}.login-card h1{font-size:clamp(34px,8vw,54px);line-height:1;margin:0 0 14px}.lead{margin:0 0 34px;color:#c9c9d0;font-size:19px;line-height:1.45}.login-card label{display:block;margin-bottom:10px;font-size:16px;font-weight:750}.login-card input,.manual-entry input{width:100%;border:1px solid #44444c;background:#0e0e11;color:#fff;border-radius:16px;padding:17px 18px;font-size:18px;outline:none;box-shadow:none}.login-card input:focus,.manual-entry input:focus{border-color:var(--evanu-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--evanu-accent) 22%,transparent)}.btn{appearance:none;border:0;border-radius:16px;min-height:56px;padding:0 22px;font-size:18px;font-weight:800;cursor:pointer}.btn:disabled{opacity:.55;cursor:wait}.btn-primary{background:var(--evanu-accent);color:#181818}.btn-secondary{background:#2a2a30;color:#fff}.login-card .btn{width:100%;margin-top:18px}.form-error{min-height:22px;margin:14px 0 0;color:#ff7777}.scanner-view{background:#09090b;display:flex;flex-direction:column}.topbar{height:64px;flex:0 0 64px;display:flex;align-items:center;justify-content:space-between;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));border-bottom:1px solid #25252b;background:#111114;font-size:18px;gap:12px}.topbar strong{letter-spacing:.08em}.access-label{display:inline-block;margin-left:8px;color:#a9a9b2;font-size:14px;max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.text-button{border:0;background:transparent;color:#fff;font:inherit;font-weight:700;padding:12px;cursor:pointer}.scanner-main{width:min(100%,900px);margin:0 auto;flex:1;padding:16px 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.camera-stage{position:relative;min-height:min(68dvh,760px);border-radius:24px;overflow:hidden;background:#17171b;border:1px solid #2b2b31;display:grid;place-items:center}.camera-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}.camera-placeholder{position:relative;z-index:2;text-align:center;padding:28px;max-width:480px}.camera-placeholder .camera-icon{width:78px;height:78px;border-radius:24px;background:#232329;display:grid;place-items:center;margin:0 auto 20px;color:var(--evanu-accent);font-size:38px}.camera-placeholder h2{font-size:30px;margin:0 0 10px}.camera-placeholder p{font-size:17px;line-height:1.45;color:#b9b9c2;margin:0 auto 24px}.scan-frame{position:absolute;z-index:3;width:min(72vw,360px);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;display:none}.camera-stage.is-live .scan-frame{display:block}.scan-frame span{position:absolute;width:58px;height:58px;border-color:var(--evanu-accent)}.scan-frame span:nth-child(1){left:0;top:0;border-left:5px solid var(--evanu-accent);border-top:5px solid var(--evanu-accent);border-radius:16px 0 0 0}.scan-frame span:nth-child(2){right:0;top:0;border-right:5px solid var(--evanu-accent);border-top:5px solid var(--evanu-accent);border-radius:0 16px 0 0}.scan-frame span:nth-child(3){left:0;bottom:0;border-left:5px solid var(--evanu-accent);border-bottom:5px solid var(--evanu-accent);border-radius:0 0 0 16px}.scan-frame span:nth-child(4){right:0;bottom:0;border-right:5px solid var(--evanu-accent);border-bottom:5px solid var(--evanu-accent);border-radius:0 0 16px 0}.round-control{position:absolute;z-index:6;right:14px;bottom:14px;width:52px;height:52px;border-radius:50%;border:1px solid #555;background:rgba(5,5,6,.8);color:#fff;font-size:22px}.result-panel{border-radius:24px;padding:28px;text-align:center;background:#18181d;border:1px solid #303039}.result-panel.state-valid{background:#0e291c;border-color:#225d41}.result-panel.state-already,.result-panel.state-invalid,.result-panel.state-error,.result-panel.state-unknown{background:#321515;border-color:#713535}.result-symbol{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#111;font-size:42px;font-weight:900;margin:0 auto 16px}.result-panel h2{font-size:32px;margin:0 0 8px}.result-panel p{font-size:18px;line-height:1.45;margin:0;color:#e1e1e5}.actions{display:grid;gap:12px}.actions>.btn{width:100%}.manual-entry{border:1px solid #303037;border-radius:18px;background:#131317}.manual-entry summary{cursor:pointer;padding:18px;font-weight:750;color:#d7d7dd}.manual-entry form{padding:0 16px 16px;display:grid;grid-template-columns:1fr auto;gap:10px}.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:100;background:#222229;color:#fff;border:1px solid #3a3a44;border-radius:999px;padding:12px 18px;box-shadow:0 12px 35px rgba(0,0,0,.35);max-width:calc(100vw - 32px);text-align:center}.busy-overlay{position:absolute;inset:0;z-index:9;background:rgba(0,0,0,.58);display:grid;place-items:center;font-size:20px;font-weight:800}.busy-overlay::before{content:"";width:34px;height:34px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .75s linear infinite;margin-right:12px}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:640px){.login-card{padding:24px;border-radius:22px}.brand{margin-bottom:26px}.topbar{height:58px;flex-basis:58px;font-size:16px}.scanner-main{padding:10px 10px calc(18px + env(safe-area-inset-bottom));gap:10px}.camera-stage{min-height:calc(100dvh - 58px - 118px);border-radius:18px}.camera-placeholder h2{font-size:26px}.result-panel{border-radius:18px;padding:20px}.result-panel h2{font-size:27px}.manual-entry form{grid-template-columns:1fr}.manual-entry .btn{width:100%}.access-label{display:none}}
@media(orientation:landscape) and (max-height:650px){.scanner-main{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start}.camera-stage{min-height:calc(100dvh - 84px);grid-row:1/4}.result-panel,.actions{grid-column:2}.scan-frame{width:min(52vh,310px)}}
