:root{--brand-300: #6ef967;--brand-400: #3af52f;--brand-500: #0df205;--bad: #ff453a;--warn: #ffb020;--bg: #050607;--surface: rgba(255, 255, 255, .055);--surface-2: rgba(255, 255, 255, .09);--ring: rgba(255, 255, 255, .12);--ring-strong: rgba(255, 255, 255, .2);--text: #f7f8f7;--muted: #9aa39b;--glow-green: 0 10px 30px rgba(13, 242, 5, .28);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{background:radial-gradient(60rem 32rem at 50% -12rem,rgba(13,242,5,.09),transparent 60%),radial-gradient(40rem 26rem at 110% 110%,rgba(13,242,5,.05),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:ui-rounded,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none;user-select:none;-webkit-user-select:none}#app{height:100dvh;display:flex;flex-direction:column}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}input{font:inherit}.screen{flex:1;display:flex;flex-direction:column;padding:calc(var(--safe-top) + 1.25rem) 1.25rem calc(var(--safe-bottom) + 1.25rem);max-width:28rem;width:100%;margin:0 auto;overflow-y:auto;animation:screen-in .28s cubic-bezier(.2,.9,.3,1)}@keyframes screen-in{0%{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:none}}.field{display:block;margin:1.1rem 0}.field span{display:block;font-size:.8rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}.input{display:block;width:100%;border-radius:.9rem;background:#ffffff0b;border:1px solid var(--ring);padding:.85rem 1rem;color:var(--text);font-size:1rem;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.input:focus{outline:none;border-color:var(--brand-400);background:#0df2050d;box-shadow:0 0 0 3px #0df2052e}.btn{display:block;width:100%;text-align:center;border-radius:.9rem;padding:.9rem 1rem;font-weight:700;font-size:1rem;letter-spacing:.01em;background:linear-gradient(135deg,var(--brand-500),var(--brand-400) 55%,var(--brand-300));color:#04140a;box-shadow:var(--glow-green),inset 0 1px #ffffff59;transition:transform .12s ease,filter .12s ease,box-shadow .12s ease}.btn:active{transform:scale(.97) translateY(1px);filter:brightness(.92);box-shadow:0 4px 14px #0df20533}.btn:disabled{opacity:.55;box-shadow:none}.btn-ghost{background:var(--surface);color:var(--text);border:1px solid var(--ring);box-shadow:none}.btn-ghost:active{background:var(--surface-2);transform:scale(.97)}.error-note{background:#ff453a1a;border:1px solid rgba(255,69,58,.35);color:#ffb4ae;border-radius:.9rem;padding:.75rem 1rem;font-size:.9rem;margin:1rem 0}.muted{color:var(--muted);font-size:.875rem}.spinner{width:1.1rem;height:1.1rem;border:2px solid rgba(0,0,0,.3);border-top-color:#000;border-radius:50%;display:inline-block;vertical-align:-.2rem;animation:spin .7s linear infinite}.spinner.light{border-color:#ffffff40;border-top-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.login-logo{width:5rem;height:5rem;border-radius:1.3rem;margin:2.75rem auto 1.4rem;display:block;border:1px solid rgba(13,242,5,.25);box-shadow:0 0 42px #0df2054d,0 12px 30px #0009}.login-title{text-align:center;font-size:1.85rem;font-weight:800;letter-spacing:-.02em}.login-subtitle{text-align:center;color:var(--muted);margin-top:.4rem;margin-bottom:1.6rem}.login-card{background:linear-gradient(180deg,#ffffff0e,#ffffff07);border:1px solid var(--ring);border-radius:1.4rem;padding:.4rem 1.15rem 1.15rem;box-shadow:0 18px 40px #00000073}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.25rem}.top-bar h1{font-size:1.45rem;font-weight:800;letter-spacing:-.02em}.link-btn{color:var(--muted);font-size:.82rem;font-weight:600;border:1px solid var(--ring);border-radius:999px;padding:.4rem .9rem;background:var(--surface);transition:background .12s ease,transform .12s ease}.link-btn:active{background:var(--surface-2);transform:scale(.96)}.screen>.muted{margin-bottom:1.1rem}.event-card{position:relative;display:block;width:100%;text-align:left;background:linear-gradient(180deg,#ffffff12,#ffffff09);border:1px solid var(--ring);border-radius:1.25rem;padding:1.05rem 2.5rem 1.05rem 1.1rem;margin-bottom:.8rem;box-shadow:0 10px 24px #0000004d;transition:transform .12s ease,border-color .12s ease,background .12s ease}.event-card:after{content:"›";position:absolute;right:1.1rem;top:50%;transform:translateY(-52%);font-size:1.5rem;font-weight:300;color:var(--muted)}.event-card:active{transform:scale(.98);border-color:#0df20566;background:linear-gradient(180deg,#0df20512,#ffffff08)}.event-card h2{font-size:1.08rem;font-weight:700;letter-spacing:-.01em}.event-card .meta{color:var(--muted);font-size:.85rem;margin-top:.3rem}.count-bar{margin-top:.75rem;height:.34rem;border-radius:999px;background:#ffffff14;overflow:hidden}.count-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand-500),var(--brand-300));box-shadow:0 0 10px #0df20580;transition:width .4s ease}.event-card .count{display:inline-block;margin-top:.45rem;font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--brand-300)}.scan-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;overflow:hidden}.scan-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.reticle{position:absolute;top:50%;left:50%;width:min(62vw,17rem);aspect-ratio:1;transform:translate(-50%,-55%);pointer-events:none}.reticle:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:1.4rem;box-shadow:0 0 0 100vmax #00000080;border:1px solid rgba(13,242,5,.35)}.reticle:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:1.5rem;background:linear-gradient(var(--brand-500),var(--brand-500)) left 0 top .9rem / 3px 1.6rem,linear-gradient(var(--brand-500),var(--brand-500)) left .9rem top 0 / 1.6rem 3px,linear-gradient(var(--brand-500),var(--brand-500)) right 0 top .9rem / 3px 1.6rem,linear-gradient(var(--brand-500),var(--brand-500)) right .9rem top 0 / 1.6rem 3px,linear-gradient(var(--brand-500),var(--brand-500)) left 0 bottom .9rem / 3px 1.6rem,linear-gradient(var(--brand-500),var(--brand-500)) left .9rem bottom 0 / 1.6rem 3px,linear-gradient(var(--brand-500),var(--brand-500)) right 0 bottom .9rem / 3px 1.6rem,linear-gradient(var(--brand-500),var(--brand-500)) right .9rem bottom 0 / 1.6rem 3px;background-repeat:no-repeat;filter:drop-shadow(0 0 6px rgba(13,242,5,.55));animation:reticle-breathe 2.6s ease-in-out infinite}@keyframes reticle-breathe{0%,to{opacity:1}50%{opacity:.55}}.scan-top{position:absolute;top:0;left:0;right:0;z-index:6;padding:calc(var(--safe-top) + .75rem) 1rem 1.1rem;display:flex;align-items:center;gap:.75rem;background:linear-gradient(to bottom,rgba(0,0,0,.8),transparent)}.scan-top .title{flex:1;min-width:0;font-weight:700;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{width:2.6rem;height:2.6rem;flex:none;border-radius:999px;background:#0c0e0c8c;border:1px solid var(--ring);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:transform .12s ease,background .12s ease}.icon-btn:active{transform:scale(.92)}.icon-btn.active{background:var(--brand-500);border-color:var(--brand-400);color:#000;box-shadow:0 0 18px #0df2058c}.stats-chip{flex:none;font-size:.85rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--brand-300);background:#0c0e0c99;border:1px solid rgba(13,242,5,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:999px;padding:.38rem .8rem}.scan-bottom{position:absolute;bottom:0;left:0;right:0;padding:1.2rem 1rem calc(var(--safe-bottom) + 1.25rem);display:flex;gap:.75rem;justify-content:center;background:linear-gradient(to top,rgba(0,0,0,.8),transparent)}.scan-bottom .btn-ghost{width:auto;padding:.75rem 1.5rem;border-radius:999px;background:#0c0e0c8c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-weight:600}.scan-hint{position:absolute;bottom:calc(var(--safe-bottom) + 5.5rem);left:0;right:0;text-align:center;color:#ffffffd9;font-size:.9rem;text-shadow:0 1px 3px rgba(0,0,0,.8)}.sync-chip{position:absolute;bottom:calc(var(--safe-bottom) + 7.5rem);left:50%;transform:translate(-50%);z-index:10;white-space:nowrap;background:#140e02b3;border:1px solid rgba(214,138,0,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#ffc966;border-radius:999px;padding:.38rem .95rem;font-size:.8rem;font-weight:600}.result-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:2rem;text-align:center;animation:pop .22s cubic-bezier(.2,1.2,.4,1)}.result-overlay.ok{background:radial-gradient(50rem 40rem at 50% 30%,#18be0cfa,#066e02f7)}.result-overlay.bad{background:radial-gradient(50rem 40rem at 50% 30%,#e02e26fa,#96120cf7)}.result-overlay.warn{background:radial-gradient(50rem 40rem at 50% 30%,#eea010fa,#b47000f7);color:#140b00}.result-overlay .icon{width:6.2rem;height:6.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3.4rem;line-height:1;background:#ffffff2e;border:3px solid rgba(255,255,255,.65);box-shadow:0 10px 40px #0000004d}.result-overlay.warn .icon{border-color:#00000073;background:#0000001f}.result-overlay .offline-tag{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;padding:.3rem .9rem;border-radius:999px;border:2px solid currentColor;opacity:.95}.result-overlay h2{font-size:1.9rem;font-weight:800;letter-spacing:-.01em;text-transform:uppercase}.result-overlay p{font-size:1.05rem;opacity:.92;max-width:22rem}@keyframes pop{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}.busy-chip{position:absolute;top:calc(var(--safe-top) + 4.5rem);left:50%;transform:translate(-50%);z-index:10;background:#0c0e0cb3;border:1px solid var(--ring);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:999px;padding:.45rem 1rem;font-size:.85rem;display:flex;align-items:center;gap:.5rem}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#000000a6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;animation:fade-in .18s ease-out}@keyframes fade-in{0%{opacity:0}}.modal{position:relative;width:100%;max-width:28rem;background:linear-gradient(180deg,#131613,#0b0d0b);border:1px solid var(--ring-strong);border-bottom:0;border-radius:1.6rem 1.6rem 0 0;padding:1.6rem 1.25rem calc(var(--safe-bottom) + 1.25rem);animation:sheet-up .26s cubic-bezier(.2,.9,.3,1)}.modal:before{content:"";position:absolute;top:.55rem;left:50%;transform:translate(-50%);width:2.4rem;height:.28rem;border-radius:999px;background:#ffffff38}@keyframes sheet-up{0%{transform:translateY(2.5rem);opacity:.6}to{transform:none;opacity:1}}.modal h2{font-size:1.2rem;font-weight:800;letter-spacing:-.01em;margin-bottom:.25rem}.peek-card{background:var(--surface);border:1px solid var(--ring);border-radius:1.1rem;padding:1rem;margin:1rem 0}.peek-card .holder{font-weight:700;font-size:1.05rem}.peek-card .meta{color:var(--muted);font-size:.85rem;margin-top:.2rem}.badge{display:inline-block;font-size:.75rem;font-weight:700;border-radius:999px;padding:.22rem .7rem;margin-top:.55rem;text-transform:uppercase;letter-spacing:.03em}.badge.ok{color:var(--brand-300);background:#0df2051f;border:1px solid rgba(13,242,5,.4)}.badge.bad{color:#ffb4ae;background:#ff453a1f;border:1px solid rgba(255,69,58,.4)}.badge.warn{color:#ffd48a;background:#ffb0201f;border:1px solid rgba(255,176,32,.45)}.modal-actions{display:flex;gap:.75rem;margin-top:1rem}.modal-actions .btn,.modal-actions .btn-ghost{flex:1;border-radius:.9rem;padding:.85rem 1rem;font-weight:700;text-align:center}.install-card{position:relative;background:#0df20512;border:1px solid rgba(13,242,5,.35);border-radius:1.1rem;padding:1rem 2.4rem 1rem 1rem;margin:1.25rem 0}.install-title{font-weight:700;font-size:.98rem}.install-note{margin-top:.3rem}.install-btn{margin-top:.8rem}.install-steps{margin:.7rem 0 0;padding-left:1.2rem;font-size:.9rem;color:#d1d5db;display:grid;gap:.35rem}.install-steps strong{color:var(--text)}.share-icon{width:1.05rem;height:1.05rem;vertical-align:-.2rem;color:var(--brand-300)}.install-dismiss{position:absolute;top:.5rem;right:.5rem;width:1.8rem;height:1.8rem;border-radius:999px;color:var(--muted);font-size:.85rem;display:flex;align-items:center;justify-content:center}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:50;background:linear-gradient(90deg,#ffb020,#ffc24d);color:#140b00;font-size:.85rem;font-weight:700;text-align:center;padding:calc(var(--safe-top) + .45rem) 1rem .45rem}.full-note{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;text-align:center;background:var(--bg);z-index:5}.full-note p{color:var(--muted);max-width:18rem}body.barcode-scanner-active,body.barcode-scanner-active .scan-screen{background:transparent}body.barcode-scanner-active .scan-video{display:none}.pw-wrap{position:relative}.pw-wrap .input{padding-right:5.2rem}.pw-toggle{position:absolute;right:.45rem;top:50%;transform:translateY(-50%);font-size:.78rem;font-weight:700;letter-spacing:.02em;color:var(--brand-300);padding:.4rem .7rem;border-radius:.6rem}.pw-toggle:active{background:#0df2051f}
