:root{--night: oklch(.2 .07 268);--night-2: oklch(.25 .075 268);--night-3: oklch(.31 .08 268);--line: oklch(.86 .02 265 / .2);--line-strong: oklch(.86 .02 265 / .42);--silver: oklch(.86 .025 265);--mist: oklch(.94 .012 265);--muted: oklch(.76 .03 265);--white: oklch(1 0 0);--go: oklch(.52 .13 155);--go-soft: oklch(.78 .13 155);--stop: oklch(.5 .18 25);--stop-soft: oklch(.74 .14 25);--font-ar: "Amiri", "Times New Roman", serif;--font-display: "EB Garamond", Garamond, serif;--font-ui: "IBM Plex Sans Arabic", system-ui, sans-serif;--radius: 10px;--ease: cubic-bezier(.22, 1, .36, 1);--z-sticky: 10;--z-sheet: 30;--z-result: 40;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{min-height:100dvh;background:var(--night) url(/night.jpg) center / cover fixed;color:var(--mist);font:400 16px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}img{display:block;max-width:100%}h1,p{margin:0}h1{text-wrap:balance}:focus-visible{outline:2px solid var(--silver);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:1px solid transparent;border-radius:999px;font-weight:500;text-decoration:none;cursor:pointer;transition:background-color .18s var(--ease),border-color .18s var(--ease),transform .12s var(--ease)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--mist);color:var(--night)}.btn-primary:hover:not(:disabled){background:var(--white)}.btn-quiet{border-color:var(--line-strong);color:var(--mist);background:#09123580}.btn-quiet:hover{background:var(--night-3)}.btn-ghost{background:transparent;color:var(--silver);border-color:var(--line)}.btn-ghost:hover{border-color:var(--line-strong);color:var(--white)}.btn-danger{background:var(--stop);color:var(--white)}.btn-small{min-height:38px;padding:0 14px;font-size:14px}.btn-wide{width:100%}.link{background:none;border:0;padding:0;color:var(--silver);text-decoration:underline;cursor:pointer}.field{display:grid;gap:6px;text-align:start}.field span{font-size:13px;color:var(--muted)}.field input,.search{width:100%;min-height:48px;padding:0 14px;background:#030824b3;color:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius)}.field input::placeholder,.search::placeholder{color:var(--muted)}.field input:focus,.search:focus{outline:none;border-color:var(--silver)}.form-error{color:var(--stop-soft);font-size:14px}.banner{margin:0 0 16px}.stage{min-height:100dvh;display:grid;place-items:center;align-content:center;gap:24px;padding:32px 16px}.invite-panel{width:min(420px,100%);display:grid;gap:18px;justify-items:center;text-align:center;padding:36px 28px 32px;background:#060d30d1;border:1px solid var(--line-strong);border-radius:4px;outline:1px solid var(--line);outline-offset:6px}.bismillah{width:220px}.ar-lede{font:700 44px/1.2 var(--font-ar);color:var(--white)}.en-lede{font:italic 400 19px/1.3 var(--font-display);color:var(--silver);margin-top:-10px}.home-links{display:grid;gap:12px;width:100%;margin-top:8px}.login{justify-items:stretch}.login .bismillah,.login .ar-lede,.login .en-lede{justify-self:center}.credit{display:flex;justify-content:center;padding:24px 16px 32px}.credit img{height:72px;width:auto}.scanner{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--night)}.scanner-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scanner-veil{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(oklch(.2 .07 268 / .85),transparent 22%,transparent 70%,oklch(.2 .07 268 / .92))}.scanner-bar{position:absolute;top:0;inset-inline:0;z-index:var(--z-sticky);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:max(16px,env(safe-area-inset-top)) 16px 16px}.scanner-gate{font:500 italic 22px/1.2 var(--font-display);color:var(--white)}.scanner-count{font-size:14px;color:var(--silver)}.viewfinder{position:absolute;top:50%;left:50%;translate:-50% -58%;width:min(68vw,300px);aspect-ratio:1;border:1px solid var(--line-strong);border-radius:18px;box-shadow:0 0 0 100vmax #09123559}.viewfinder span{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:18px;border:3px solid var(--mist);mask:conic-gradient(#000 0 0) top left / 28% 28% no-repeat,conic-gradient(#000 0 0) top right / 28% 28% no-repeat,conic-gradient(#000 0 0) bottom left / 28% 28% no-repeat,conic-gradient(#000 0 0) bottom right / 28% 28% no-repeat}.scanner-hint{position:absolute;top:calc(48% + min(34vw,150px));inset-inline:24px;margin-top:18px;text-align:center;color:var(--mist);font-size:15px}.scanner-actions{position:absolute;bottom:0;inset-inline:0;z-index:var(--z-sticky);padding:16px 16px max(20px,env(safe-area-inset-bottom))}.scanner-tools{display:flex;justify-content:center;gap:12px;margin-bottom:12px}.tool-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border:1px solid var(--line-strong);border-radius:999px;cursor:pointer;background:#0912358c;color:var(--white);font:inherit;font-size:15px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.tool-btn:disabled{opacity:.45;cursor:not-allowed}.tool-btn.is-on{background:var(--white);color:var(--night)}.result{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-result);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px 20px max(32px,env(safe-area-inset-bottom));border:0;text-align:center;color:var(--white);cursor:pointer;animation:result-in .2s var(--ease)}.result-go{background:var(--go)}.result-stop{background:var(--stop)}.result-icon{display:grid;place-items:center;width:96px;height:96px;border-radius:50%;border:3px solid currentColor;font-size:52px;line-height:1}.result-title{font:500 40px/1.1 var(--font-display);margin-top:8px}.result-ar{font:700 30px/1.3 var(--font-ar)}.result-guest{display:grid;gap:4px;margin-top:18px;padding-top:18px;border-top:1px solid oklch(1 0 0 / .35);max-width:100%}.result-name{font:700 clamp(30px,9vw,46px)/1.2 var(--font-ar);overflow-wrap:anywhere}.result-meta{font-size:17px;opacity:.92}.result-detail{font-size:18px;font-weight:500;margin-top:6px}.result-next{margin-top:28px;padding:12px 26px;border-radius:999px;border:1px solid oklch(1 0 0 / .55);font-weight:500}@keyframes result-in{0%{opacity:0;transform:scale(1.03)}}.sheet{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-sheet);display:flex;flex-direction:column;background:var(--night) url(/night.jpg) center / cover;padding-top:max(16px,env(safe-area-inset-top));animation:sheet-in .22s var(--ease);overflow-y:auto}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}.sheet-head{display:flex;gap:10px;align-items:center;padding:0 16px 12px;position:sticky;top:0}.found{list-style:none;margin:0;padding:0 16px;flex:1}.found-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line)}.found-name{font:700 22px/1.3 var(--font-ar);color:var(--white)}.found-meta{font-size:14px;color:var(--muted)}.found-empty{padding:24px 4px;color:var(--muted);list-style:none}.pill{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:500;white-space:nowrap}.pill-in{background:#007e4638;background:oklch(.52 .13 155 / .22);color:var(--go-soft);border:1px solid oklch(.78 .13 155 / .4)}.pill-out{color:var(--muted);border:1px solid var(--line)}.admin{width:min(1100px,100%);margin:0 auto;padding:28px 16px 0}.loading{padding:40vh 0;text-align:center;color:var(--silver)}.admin-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:28px}.admin-title h1{font:700 40px/1.1 var(--font-ar);color:var(--white)}.admin-title p{font:italic 18px/1.3 var(--font-display);color:var(--silver)}.admin-tools{display:flex;gap:10px}.tally{padding:24px;margin-bottom:28px;background:#060d30db;border:1px solid var(--line-strong);border-radius:4px;outline:1px solid var(--line);outline-offset:5px}.tally-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;font:400 26px/1.2 var(--font-display);color:var(--silver)}.tally-line strong{font:500 64px/1 var(--font-display);color:var(--white)}.tally-rest{font:400 15px/1.4 var(--font-ui);color:var(--muted);margin-inline-start:auto}.meter{display:block;height:8px;margin-top:16px;border-radius:999px;background:#ffffff1a;overflow:hidden}.meter>span{display:block;height:100%;background:var(--silver);border-radius:inherit;transition:width .4s var(--ease)}.meter-thin{height:4px;margin-top:10px}.groups{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.group{width:100%;display:grid;grid-template-columns:1fr auto;align-items:baseline;padding:12px 14px;text-align:start;cursor:pointer;background:transparent;border:1px solid var(--line);border-radius:var(--radius);transition:background-color .18s var(--ease),border-color .18s var(--ease)}.group:hover{background:#1f2d5880}.group.is-on{border-color:var(--silver);background:var(--night-3)}.group-name{font-weight:500;color:var(--mist)}.group-count{font:500 22px/1 var(--font-display);color:var(--white)}.group-count small{font-size:15px;color:var(--muted)}.group .meter{grid-column:1 / -1}.roster{background:#060d30db;border:1px solid var(--line-strong);border-radius:4px}.roster-tools{display:flex;flex-wrap:wrap;gap:12px;padding:18px 18px 12px;position:sticky;top:0;z-index:var(--z-sticky);background:#060d30}.roster-tools .search{flex:1 1 260px}.segmented{display:flex;border:1px solid var(--line-strong);border-radius:999px;padding:3px}.segmented button{min-height:40px;padding:0 16px;border:0;border-radius:999px;background:transparent;color:var(--silver);cursor:pointer;transition:background-color .18s var(--ease),color .18s var(--ease)}.segmented .is-on{background:var(--mist);color:var(--night);font-weight:500}.roster-count{padding:0 18px 12px;font-size:14px;color:var(--muted);border-bottom:1px solid var(--line)}.rows{list-style:none;margin:0;padding:0}.row{display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto auto;align-items:center;gap:4px 16px;padding:12px 18px;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:0}.row-num{font:400 14px/1 var(--font-display);color:var(--muted);font-variant-numeric:tabular-nums}.row-who{display:grid;min-width:0}.row-name{justify-self:start;font:700 19px/1.35 var(--font-ar);color:var(--white);overflow-wrap:anywhere}.row-name em{font:italic 400 17px var(--font-display);color:var(--muted)}.row-meta{font-size:13px;color:var(--muted)}.row-status{display:grid;justify-items:end;gap:2px}.row-gate{font-size:12px;color:var(--muted)}.row-actions{display:flex;gap:8px;justify-content:end;min-width:84px}.spare-form{grid-column:2 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;align-items:end;padding:12px 0 4px}.ushers{margin-bottom:28px}.ushers-title{padding:18px 18px 4px;font:500 24px/1.2 var(--font-display);color:var(--white)}.ushers-title small{color:var(--muted);font-size:16px}.ushers .roster-count{padding-bottom:6px;border-bottom:0}.usher-form{padding:6px 18px 16px;border-bottom:1px solid var(--line)}.usher-row{grid-template-columns:minmax(0,1fr) auto}@media(max-width:640px){.usher-row .row-who{grid-column:1}.usher-row .row-actions{grid-column:2}.admin-title h1{font-size:34px}.tally{padding:18px}.tally-line strong{font-size:52px}.tally-rest{margin-inline-start:0;width:100%}.row{grid-template-columns:2.6rem minmax(0,1fr) auto;gap:8px 12px;padding:12px 14px}.row-num{align-self:start;padding-top:6px}.row-who{grid-column:2 / -1}.row-status{grid-column:2;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;min-width:0}.row-actions{grid-column:3;min-width:0}.spare-form{grid-column:1 / -1}.segmented{width:100%}.segmented button{flex:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;transition-duration:1ms!important}}
