:root{--bg0: #fff0f7;--bg1: #ffe4f2;--card: rgba(255, 255, 255, .68);--border: rgba(255, 153, 204, .35);--text: #2b2b2b;--muted: rgba(43, 43, 43, .68);--accent0: #ff4fa3;--accent1: #ff9ad5;--shadow: 0 18px 60px rgba(255, 79, 163, .18);--radius: 18px;--ring: 0 0 0 4px rgba(255, 79, 163, .13);--glass: linear-gradient(135deg, rgba(255, 255, 255, .72), rgba(255, 231, 246, .5));--glass2: linear-gradient(135deg, rgba(255, 255, 255, .62), rgba(255, 231, 246, .35));--radiusSm: 12px;--radiusLg: 22px;--easeOut: cubic-bezier(.2, .9, .2, 1);--easeInOut: cubic-bezier(.4, 0, .2, 1);--shadowSm: 0 10px 30px rgba(0, 0, 0, .08);--shadowMd: 0 18px 60px rgba(0, 0, 0, .1);--shadowAccent: 0 14px 42px rgba(255, 79, 163, .18)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,Noto Sans,Liberation Sans,sans-serif;color:var(--text);line-height:1.45;background:radial-gradient(900px 700px at 15% 0%,#fffffff2,#fff0f7d9 40%,#ffe4f2e6),radial-gradient(700px 540px at 90% 22%,rgba(255,79,163,.1) 0%,transparent 55%),radial-gradient(900px 700px at 40% 110%,rgba(255,154,213,.14) 0%,transparent 60%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}#portal-root{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999}#portal-root>*{pointer-events:auto}a{color:inherit}img,video,canvas{max-width:100%}::selection{background:#ff4fa338}.wrap{min-height:100%;padding:14px 16px calc(90px + env(safe-area-inset-bottom,0px));display:flex;justify-content:center}.appHeader{position:sticky;top:0;z-index:40;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;background:#fff0f78c;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,153,204,.22)}.appHeaderInner{max-width:980px;margin:0 auto;display:flex;align-items:center;justify-content:center}.logoBtn{cursor:pointer;border:0;background:transparent;padding:6px 10px;border-radius:14px;transition:transform .12s var(--easeOut),background .12s var(--easeOut)}.logoBtn:hover{background:#ffffff8c;transform:translateY(-1px)}.logoBtn:focus-visible{outline:none;box-shadow:var(--ring)}.logoImg{height:28px;width:auto;display:block}.container{width:min(980px,100%);display:grid;gap:14px}.hero{border:1px solid var(--border);background:var(--glass);border-radius:var(--radius);box-shadow:var(--shadowAccent);padding:18px 18px 16px;overflow:hidden;position:relative;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero:before{content:"";position:absolute;inset:-120px -120px auto auto;width:320px;height:320px;background:radial-gradient(circle at 30% 30%,rgba(255,79,163,.35),rgba(255,154,213,.08) 60%,transparent 72%);transform:rotate(12deg);filter:blur(.2px)}.heroTop{display:flex;align-items:center;justify-content:space-between;gap:10px;position:relative;z-index:1}.brand{display:grid;gap:4px}.brandTitle{font-weight:780;letter-spacing:.2px;font-size:20px}.brandSubtitle{color:var(--muted);font-size:13px;line-height:1.25}.pill{border:1px solid rgba(255,79,163,.32);background:#ffffffb8;padding:9px 12px;border-radius:999px;display:flex;gap:10px;align-items:center;white-space:nowrap}.pill strong{font-weight:780}.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}@media (max-width: 860px){.grid{grid-template-columns:1fr}.pill{width:100%;justify-content:space-between}.heroTop{flex-direction:column;align-items:stretch}}.card{border:1px solid var(--border);background:var(--glass2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius);padding:14px;box-shadow:var(--shadowSm);position:relative;overflow:hidden;transition:transform .16s var(--easeOut),box-shadow .16s var(--easeOut),border-color .16s var(--easeOut)}.card:hover{transform:translateY(-1px);box-shadow:var(--shadowMd);border-color:#ff4fa342}.card:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;background:radial-gradient(420px 220px at 20% 0%,rgba(255,79,163,.1),transparent 60%),radial-gradient(520px 240px at 90% 30%,rgba(255,154,213,.12),transparent 58%);pointer-events:none;opacity:.9}.card>*{position:relative}.tabs{display:flex;flex-wrap:wrap;gap:6px}.tab{cursor:pointer;border:1px solid rgba(255,79,163,.25);background:#ffffffbf;border-radius:999px;padding:7px 10px;font-weight:650;font-size:12px;transition:transform .08s ease,background .12s ease,border-color .12s ease;-webkit-user-select:none;user-select:none}.tab:hover{transform:translateY(-1px)}.tabActive{border-color:#ff4fa3a6;background:linear-gradient(135deg,#ff4fa31f,#ff9ad533)}.row{display:grid;gap:8px}.field{display:grid;gap:4px}label{font-size:11px;color:var(--muted)}input,textarea,select{width:100%;border:1px solid rgba(43,43,43,.14);background:#ffffffe0;color:var(--text);caret-color:#ff4fa3f2;border-radius:10px;padding:8px 10px;font:inherit;font-size:14px;outline:none;transition:box-shadow .14s var(--easeOut),border-color .14s var(--easeOut),background .14s var(--easeOut)}input::placeholder,textarea::placeholder{color:#2b2b2b73}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='rgba(43,43,43,0.65)' d='M5.6 7.7a1 1 0 0 1 1.4 0L10 10.7l3-3a1 1 0 1 1 1.4 1.4l-3.7 3.7a1 1 0 0 1-1.4 0L5.6 9.1a1 1 0 0 1 0-1.4z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px 16px}textarea{min-height:72px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:#ff4fa399;box-shadow:var(--ring)}.btn,.tab,.navItem,.adminMenuItem{-webkit-tap-highlight-color:transparent}.actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.btn{cursor:pointer;border:0;border-radius:10px;padding:8px 10px;font:inherit;font-size:13px;font-weight:700;letter-spacing:.1px;background:linear-gradient(135deg,var(--accent0),var(--accent1));color:#fff;box-shadow:0 8px 20px #ff4fa32e;transition:transform .14s var(--easeOut),filter .14s var(--easeOut),box-shadow .14s var(--easeOut)}.btn:hover{filter:saturate(1.05) brightness(1.03);transform:translateY(-1px);box-shadow:0 12px 28px #ff4fa338}.btn:focus-visible,.tab:focus-visible,.navItem:focus-visible{outline:none;box-shadow:var(--ring)}.btn:active{transform:translateY(0) scale(.98);filter:saturate(.98) brightness(.98)}.btnSm{padding:6px 8px;font-size:12px;border-radius:8px;box-shadow:0 6px 16px #ff4fa324}.btnSoft{background:#ffffffc7;border:1px solid rgba(255,79,163,.28);color:var(--text);box-shadow:none}.btnSoft:hover{background:#ffffffe0;transform:translateY(-1px)}.btnDanger{background:#ff4fa31a;border:1px solid rgba(255,79,163,.3);color:#b20047eb;box-shadow:none}.btnDanger:hover{background:#ff4fa324;transform:translateY(-1px)}.btn:disabled,.btn[disabled],.tab:disabled,.tab[disabled],.navItem:disabled,.navItem[disabled],input:disabled,textarea:disabled,select:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.15)}.hint{color:var(--muted);font-size:11px;line-height:1.35}.list{display:grid;gap:8px}.item{border:1px solid rgba(43,43,43,.1);border-radius:12px;background:#ffffff9e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:10px;display:grid;gap:6px;transition:transform .16s var(--easeOut),border-color .16s var(--easeOut),background .16s var(--easeOut)}.item:hover{transform:translateY(-1px);border-color:#ff4fa333;background:#ffffffb3}.itemTop{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}.badge{font-size:11px;padding:4px 8px;border-radius:999px;border:1px solid rgba(43,43,43,.12);background:#ffffffb3}.badgePending{border-color:#ff9ad5cc;background:#ff9ad52e}.badgeApproved{border-color:#5cc884bf;background:#5cc88424}.badgeRejected{border-color:#ff4fa38c;background:#ff4fa31a}.split{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media (max-width: 620px){.split{grid-template-columns:1fr}}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.miniItem{padding:8px;gap:4px}.miniItem .itemTop{align-items:center}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:11px}.divider{height:1px;background:#2b2b2b14;margin:6px 0}.toast{border:1px solid rgba(43,43,43,.12);background:#ffffffdb;border-radius:12px;padding:8px 10px;position:fixed;left:12px;right:12px;top:calc(12px + env(safe-area-inset-top,0px));max-width:520px;margin:0 auto;z-index:2500;box-shadow:0 16px 50px #00000029;animation:popIn .18s var(--easeOut) both}.modalCard,.scanCard{animation:popIn .18s var(--easeOut) both}.modalOverlay,.scanOverlay{animation:fadeIn .16s var(--easeOut) both}.modalCard{border-radius:var(--radiusLg)}.toastOk{border-color:#5cc8848c}.toastErr{border-color:#ff4fa38c}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140a1294;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:16px;z-index:2600}.modalCard{width:min(520px,100%);border-radius:18px;border:1px solid rgba(255,153,204,.35);background:#fffffff0;overflow:hidden;box-shadow:0 28px 80px #00000052}.modalHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px 10px;border-bottom:1px solid rgba(43,43,43,.08)}.modalTitle{font-weight:800;font-size:15px;letter-spacing:.1px}.modalBody{padding:10px 14px 6px}.modalText{color:#2b2b2bc7;font-size:13px;line-height:1.35}.phoneModalField{margin-top:10px}.formError{margin-top:8px;color:#d2176d;font-size:12px;font-weight:700}.consentCheck{display:flex;align-items:center;gap:10px;margin-top:12px;-webkit-user-select:none;user-select:none}.consentCheck input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--accent0);flex:0 0 auto}.consentCheckText{color:#2b2b2be6;font-size:13px;line-height:1.3;font-weight:600}.modalActions{padding:10px 14px 14px}.modalActions .btn{width:100%;justify-content:center}.scanStatusCenter{min-height:140px;display:grid;place-items:center;gap:10px}.scanStatusCenter .scanSpinner{border:3px solid rgba(255,79,163,.2);border-top-color:#ff4fa3f2}.scanStatusText{color:#2b2b2be6;font-size:14px;font-weight:700;text-align:center}.adminTop{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.adminBurger{font-weight:900}.adminMenuList{display:grid;gap:6px}.adminMenuItem{cursor:pointer;border:1px solid rgba(255,79,163,.22);background:#ffffffc7;border-radius:10px;padding:10px;font:inherit;font-size:13px;font-weight:700;letter-spacing:.1px;text-align:left}.adminMenuItemActive{border-color:#ff4fa39e;background:linear-gradient(135deg,#ff4fa31a,#ff9ad524)}.adminMenuModal{width:min(520px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column}.adminMenuBody{overflow:auto;padding:12px}.kv{display:grid;gap:6px}.kvRow{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid rgba(43,43,43,.12);background:#ffffffbd;border-radius:10px}.kvKey{font-size:11px;color:var(--muted)}.kvVal{font-weight:700;font-size:13px;letter-spacing:.1px;color:#2b2b2beb}.bottomNav{position:fixed;left:12px;right:12px;bottom:12px;padding:6px;border-radius:14px;border:1px solid rgba(255,153,204,.3);background:#ffffffb8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 60px #ff4fa329;display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;max-width:980px;margin:0 auto}.bottomNavHidden{transform:translateY(140%);opacity:0;pointer-events:none}.navItem{cursor:pointer;border:1px solid rgba(255,79,163,.18);background:#ffffff9e;border-radius:10px;padding:7px 7px 6px;font:inherit;font-weight:700;font-size:13px;letter-spacing:.1px;color:var(--text);display:grid;place-items:center;gap:3px;transition:transform .14s var(--easeOut),background .14s var(--easeOut),border-color .14s var(--easeOut)}.navItem:hover{transform:translateY(-1px);background:#ffffffbd;border-color:#ff4fa342}.navActive{border-color:#ff4fa38c;background:linear-gradient(135deg,#ff4fa31f,#ff9ad529)}.navIcon{display:inline-flex;align-items:center;justify-content:center;color:#2b2b2bc7}.navActive .navIcon{color:#ff4fa3f2}.navLabel{font-size:10px;line-height:1}.titleRow{display:flex;align-items:center;justify-content:space-between;gap:8px}.profileHeader{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.avatar{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;font-weight:900;font-size:14px;letter-spacing:.2px;color:#ff4fa3f2;background:radial-gradient(circle at 30% 30%,#ffffffeb,#ffe3f47a);border:1px solid rgba(255,79,163,.22);box-shadow:0 12px 32px #ff4fa324;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover;display:block}.profileMeta{display:grid;gap:2px;min-width:140px;flex:1}.profileName{font-weight:800;font-size:15px;letter-spacing:.1px}.profileSub{color:#2b2b2bb3;font-size:11px}.chip{border:1px solid rgba(255,79,163,.28);background:#ffffffc7;border-radius:999px;padding:6px 8px;font-size:11px;color:#2b2b2bd1;display:inline-flex;align-items:center;gap:6px}.prizeCard{border-color:#ff4fa338;background:linear-gradient(135deg,#ffffffb3,#ffe3f470);position:relative;overflow:hidden}.prizeCard:before{content:"";position:absolute;inset:-40px -60px auto auto;width:260px;height:260px;background:radial-gradient(circle at 30% 30%,rgba(255,79,163,.22),rgba(255,154,213,.1) 55%,transparent 70%);transform:rotate(18deg);pointer-events:none}.prizeCard:after{content:"";position:absolute;inset:auto auto -120px -120px;width:320px;height:320px;background:radial-gradient(circle at 40% 40%,rgba(255,154,213,.2),transparent 65%);pointer-events:none}.prizeCard>*{position:relative}.prizeBadge{border-color:#5cc8848c;background:#5cc8841f}.prizeMain{display:flex;gap:10px;align-items:center}.prizeIcon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;color:#ff4fa3f5;background:#ffffff9e;border:1px solid rgba(255,79,163,.22);box-shadow:0 12px 28px #ff4fa324}.prizeText{display:grid;gap:2px}.prizeMoreBtn{margin-top:6px;width:fit-content;text-decoration:none}.prizeTitle{font-size:11px;color:#2b2b2bb8;font-weight:700;letter-spacing:.1px;text-transform:uppercase}.prizeValue{font-size:20px;font-weight:900;letter-spacing:.2px}.prizeStats{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.prizeRules{display:grid;gap:6px;margin-top:4px}.prizeRule{display:grid;grid-template-columns:8px 1fr;gap:8px;align-items:start;color:#2b2b2bc7;font-size:12px;line-height:1.3}.prizeDot{width:8px;height:8px;border-radius:999px;margin-top:3px;background:linear-gradient(135deg,#ff4fa3f2,#ff9ad5f2);box-shadow:0 8px 18px #ff4fa333}.scanOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140a12ad;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px;z-index:2000;isolation:isolate;transform:translateZ(0);touch-action:none}.scanCard{width:min(520px,100%);border-radius:18px;border:1px solid rgba(255,153,204,.35);background:#ffffffeb;overflow:hidden;box-shadow:0 28px 80px #00000047;transform:translateZ(0)}.scanHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(43,43,43,.08)}.scanHeaderActions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.scanVideoWrap{position:relative;background:#111;aspect-ratio:3 / 4;transform:translateZ(0)}.scanVideo{width:100%;height:100%;object-fit:cover;display:block;transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.scanCanvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;opacity:0;pointer-events:none;transform:translateZ(0)}.scanCanvasOn{opacity:1}.scanBusy{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;gap:10px;opacity:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,#00000026,#00000073);transition:opacity .12s var(--easeOut)}.scanBusyOn{opacity:1}.scanSpinner{width:26px;height:26px;border-radius:999px;border:3px solid rgba(255,255,255,.35);border-top-color:#ffffffeb;animation:spin .75s linear infinite}.scanBusyText{font-size:12px;font-weight:750;color:#ffffffeb;letter-spacing:.1px}.scanFrame{position:absolute;top:18%;right:10%;bottom:18%;left:10%;border-radius:18px;border:2px solid rgba(255,255,255,.85);box-shadow:0 0 0 2000px #0000002e;animation:scanPulse 1.35s var(--easeInOut) infinite}.scanFooter{padding:10px 12px;display:grid;gap:8px}.scanHint{font-size:11px;color:#2b2b2bb8;line-height:1.35}.adminLedgerCard{width:min(520px,100%);max-height:min(78dvh,calc(100dvh - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));display:grid;grid-template-rows:auto minmax(0,1fr)}.adminLedgerBody{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}@keyframes popIn{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scanPulse{0%,to{opacity:.82}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@media (max-width: 420px){.wrap{padding:12px 12px calc(90px + env(safe-area-inset-bottom,0px))}.card{padding:10px}.hero{padding:14px 12px 12px}.brandTitle{font-size:17px}}@supports selector(::-webkit-scrollbar){::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#ff4fa338;border:2px solid rgba(255,255,255,.75);border-radius:999px}::-webkit-scrollbar-track{background:#ffffff59}}.authGate{display:flex;justify-content:center}.authCard{width:min(520px,100%);border:1px solid var(--border);background:var(--glass2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radiusLg);box-shadow:var(--shadowMd);padding:22px;display:grid;gap:14px}.authTitle{font-size:24px;font-weight:780}.authText,.authMessage{color:var(--muted)}.authActions{display:flex;flex-wrap:wrap;gap:10px}.authDevBox{border:1px dashed rgba(255,79,163,.35);border-radius:var(--radiusSm);padding:10px 12px;background:#ffffff80;display:grid;gap:4px;word-break:break-all}
