:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#080c18;--bg-glow:#101a3a;--surface:#101527;--surface-2:#161d33;--surface-3:#1d2542;--border:#ffffff12;--border-strong:#ffffff29;--text:#eef1f8;--text-muted:#98a1bb;--text-faint:#646d88;--accent:#efb63f;--accent-hover:#f6c357;--accent-soft:#efb63f21;--accent-border:#efb63f59;--accent-ink:#191f33;--navy:#1b2a63;--success:#3ddc97;--success-soft:#3ddc9721;--danger:#f2555a;--danger-soft:#f2555a21;--info-soft:#78a0ff21;--info:#8fb0ff;--radius-xl:24px;--radius-lg:18px;--radius-md:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #0006;--shadow-md:0 12px 32px #00000059;--shadow-lg:0 28px 70px #00000080;--nav-height:66px;--content-width:1180px;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,Segoe UI,Roboto,Arial,sans-serif;font-size:16px;line-height:1.55}html,body,#root{max-width:100%;min-height:100vh;overflow-x:hidden}*,:before,:after{box-sizing:border-box}body{background:radial-gradient(1100px 620px at 12% -10%, var(--bg-glow) 0%, transparent 62%), radial-gradient(900px 520px at 88% 0%, #efb63f12 0%, transparent 58%), var(--bg);background-attachment:fixed;min-height:100vh;margin:0;overflow-x:hidden}img{max-width:100%}h1,h2,h3,h4{letter-spacing:-.02em;margin:0;font-weight:650;line-height:1.2}h1{font-size:clamp(1.75rem,3.4vw,2.6rem)}h2{font-size:1.2rem}h3{font-size:1rem}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,monospace;font-size:.85em}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface-3);border:2px solid var(--bg);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.app{flex-direction:column;max-width:100%;min-height:100vh;display:flex;overflow-x:hidden}.page{width:100%;max-width:var(--content-width);flex-direction:column;flex:1;gap:1.5rem;min-width:0;margin:0 auto;padding:2.25rem 1.5rem 4rem;display:flex}.site-footer{border-top:1px solid var(--border);color:var(--text-faint);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;font-size:.82rem;display:flex}.route-loading{color:var(--text-muted);flex-direction:column;align-items:center;gap:.9rem;padding:5rem 0;display:flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.7s linear infinite spin}.spinner.large{border-width:3px;width:42px;height:42px}.download-overlay{z-index:120;background:#040710b8;place-items:center;padding:1.5rem;display:grid;position:fixed;inset:0}.download-dialog{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;align-items:center;gap:.85rem;width:min(420px,100%);padding:2rem 1.6rem 1.7rem;display:flex;box-shadow:0 24px 60px #00000059}.download-dialog h2{margin:0;font-size:1.2rem}.download-dialog p{color:var(--text-muted);margin:0;line-height:1.45}@keyframes spin{to{transform:rotate(360deg)}}.nav{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:#080c18d1;position:sticky;top:0;overflow-x:hidden}.nav-inner{width:100%;max-width:var(--content-width);height:var(--nav-height);align-items:center;gap:1.5rem;min-width:0;margin:0 auto;padding:0 1.5rem;display:flex}.brand-link,.brand-link:hover{min-width:0;text-decoration:none}.brand{align-items:center;gap:.65rem;min-width:0;max-width:100%;display:inline-flex}.brand-mark{object-fit:contain;background:#fff;border-radius:50%;flex:none}.brand-name{letter-spacing:-.02em;color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;font-weight:650;overflow:hidden}.nav-links{align-items:center;gap:.35rem;margin-right:auto;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap;padding:.45rem .7rem;font-size:.9rem;font-weight:500;transition:color .15s,background .15s}.nav-link:hover{color:var(--text);background:var(--surface-2);text-decoration:none}.nav-link.active{color:var(--text);background:var(--surface-2)}.nav-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.nav-account{align-items:center;gap:.7rem;display:flex}.nav-account-name{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-size:.85rem;overflow:hidden}.nav-admin{border-top:1px solid var(--border);background:#efb63f09}.nav-admin .nav-inner{gap:.9rem;height:46px}.nav-admin-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:999px;flex:none;padding:.2rem .5rem;font-size:.66rem;font-weight:700}.nav-admin-links{scrollbar-width:none;gap:.2rem;display:flex;overflow-x:auto}.nav-admin-links::-webkit-scrollbar{display:none}.nav-link.admin{padding:.35rem .6rem;font-size:.85rem}.nav-link.admin.active{color:var(--accent);background:var(--accent-soft)}.nav-burger{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;padding:0 9px;display:none}.nav-burger span{background:var(--text);border-radius:2px;height:1.5px;display:block}.nav-drawer{border-top:1px solid var(--border);flex-direction:column;gap:.15rem;padding:.75rem 1.5rem 1.25rem;display:none}.nav-drawer-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-top:.6rem;padding:0 .7rem;font-size:.66rem;font-weight:700}.nav-drawer-account{border-top:1px solid var(--border);margin-top:.9rem;padding-top:.9rem}.btn{border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.7rem 1.15rem;font-family:inherit;font-size:.92rem;font-weight:600;transition:background .15s,border-color .15s,transform 60ms,opacity .15s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:hover{text-decoration:none}.btn.sm{border-radius:var(--radius-sm);padding:.42rem .75rem;font-size:.82rem}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.ghost{background:var(--surface-2);border-color:var(--border);color:var(--text)}.btn.ghost:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong)}.btn.danger{background:var(--danger-soft);color:#ff9296;border-color:#f2555a4d}.btn.danger:hover:not(:disabled){background:#f2555a33}.btn.wallet{flex:1;padding:.8rem 1rem}.btn.wallet.apple{color:#0b0b0d;background:#f4f5f8}.btn.wallet.apple:hover:not(:disabled){background:#fff}.btn.wallet.google{background:var(--surface-3);border-color:var(--border-strong);color:var(--text)}.btn.wallet.google:hover:not(:disabled){background:var(--surface-2)}.btn.google-btn{color:#14161c;background:#fff;width:100%}.btn.google-btn:hover:not(:disabled){background:#eceef4}.file-btn{display:inline-flex;position:relative}.link-btn{font:inherit;color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.88rem}.link-btn:hover{text-decoration:underline}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);flex-direction:column;gap:1.15rem;padding:1.6rem;display:flex}.panel.narrow{width:100%;max-width:460px;margin:1.5rem auto}.panel.center{text-align:center;align-items:center}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.panel-head>div:first-child{flex-direction:column;gap:.25rem;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.page-head>div:first-child{flex-direction:column;gap:.3rem;display:flex}.muted{color:var(--text-muted);font-size:.9rem}.small{font-size:.82rem}.note{background:var(--info-soft);border-radius:var(--radius-md);color:#c3d3ff;border:1px solid #8fb0ff38;padding:.8rem 1rem;font-size:.86rem}.note code{background:#0000004d;border-radius:4px;padding:.1rem .3rem}.empty{text-align:center;color:var(--text-muted);background:var(--surface-2);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:1.6rem;font-size:.9rem}.split{grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:start;gap:1.5rem;display:grid}.preview-pane{top:calc(var(--nav-height) + 1.25rem);flex-direction:column;gap:1rem;display:flex;position:sticky}.pane-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-size:.72rem;font-weight:700}.danger-panel{border-color:#f2555a38}.hero{grid-template-columns:minmax(0,1fr) minmax(0,380px);align-items:center;gap:3rem;padding:1.5rem 0 1rem;display:grid}.hero-copy{flex-direction:column;align-items:flex-start;gap:1rem;display:flex}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.72rem;font-weight:700}.lede{color:var(--text-muted);max-width:52ch;font-size:1.02rem}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:.35rem;display:flex}.hero-actions.center{justify-content:center}.hero-art{justify-content:center;display:flex}.form{flex-direction:column;gap:1.05rem;display:flex}.field{flex-direction:column;gap:.4rem;display:flex}.field-label{color:var(--text);font-size:.82rem;font-weight:600}.optional{color:var(--text-faint);font-size:.76rem;font-weight:400}input[type=text],input[type=email],input[type=tel],input[type=password],input[type=date],input:not([type]),select{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text);padding:.68rem .85rem;font-family:inherit;font-size:.92rem;transition:border-color .15s,background .15s}input::placeholder{color:var(--text-faint)}input:focus-visible,select:focus-visible,.btn:focus-visible,.nav-link:focus-visible{outline:2px solid var(--accent-border);outline-offset:1px}input:focus,select:focus{border-color:var(--accent-border);background:var(--surface-3);outline:none}input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--text-faint) 50%), linear-gradient(135deg, var(--text-faint) 50%, transparent 50%);background-position:calc(100% - 1.05rem) 55%,calc(100% - .75rem) 55%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:2.2rem}select option{background:var(--surface-2);color:var(--text)}.form-section{border:0;border-top:1px solid var(--border);flex-direction:column;gap:1.05rem;margin:0;padding:1.35rem 0 0;display:flex}.form-section:first-of-type{border-top:0;padding-top:0}.form-section legend{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding:0;font-size:.72rem;font-weight:700}.checkbox-group{flex-wrap:wrap;gap:.5rem;display:flex}.check-item{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:.5rem;padding:.45rem .75rem;font-size:.86rem;transition:border-color .15s,background .15s;display:inline-flex}.check-item:hover{border-color:var(--accent-border)}.check-item:has(input:checked){background:var(--accent-soft);border-color:var(--accent-border);color:var(--text)}.check-item input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}.other-input{margin-top:.15rem}.repeat-list{flex-direction:column;gap:.5rem;display:flex}.repeat-row{align-items:center;gap:.5rem;display:flex}.repeat-row input{flex:1}.add-row{align-self:flex-start}.check-item.consent{align-items:flex-start;padding:.85rem 1rem;line-height:1.5}.readonly-value{background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-muted);flex:1;padding:.68rem .85rem;font-size:.92rem}.input-row{align-items:center;gap:.5rem;display:flex}.input-row input{flex:1}.upload-row{align-items:center;gap:1rem;display:flex}.upload-row>div:last-child{flex-direction:column;align-items:flex-start;gap:.4rem;display:flex}.upload-thumb{object-fit:cover;background:var(--surface-3);border:1px solid var(--border);border-radius:50%;flex:none;width:68px;height:68px}.upload-thumb.empty{color:var(--text-faint);border-style:dashed;justify-content:center;align-items:center;font-size:.68rem;display:flex}.toolbar{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}input.search{width:240px}.segmented{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:3px;display:inline-flex}.segmented button{border-radius:var(--radius-sm);font:inherit;text-transform:capitalize;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.35rem .75rem;font-size:.8rem;font-weight:600}.segmented button.active{background:var(--surface-3);color:var(--text)}.swatches{flex-wrap:wrap;gap:.5rem;display:flex}.swatch{cursor:pointer;color:#fff;border:2px solid #0000;border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;font-size:.8rem;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff1a}.swatch.selected{border-color:var(--text)}.swatch.custom{background:conic-gradient(#ef4444,#f59e0b,#10b981,#3b82f6,#8b5cf6,#ef4444);position:relative;overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.status-banner{border-radius:var(--radius-md);border:1px solid #0000;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.7rem .95rem;font-size:.87rem;display:flex}.status-banner.info{background:var(--info-soft);color:var(--info);border-color:#8fb0ff40}.status-banner.success{background:var(--success-soft);color:var(--success);border-color:#3ddc9740}.status-banner.error{background:var(--danger-soft);color:#ff9296;border-color:#f2555a47}.status-dismiss{color:inherit;cursor:pointer;opacity:.6;background:0 0;border:none;font-size:1.15rem;line-height:1}.status-dismiss:hover{opacity:1}.member-list,.event-list,.admin-list{flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none;display:flex}.member-list>li,.event-list>li,.admin-list>li{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:.9rem;padding:.75rem .9rem;display:flex}.member-list>li.active{border-color:var(--accent-border);background:var(--accent-soft)}.row-avatar{object-fit:cover;background:var(--surface-3);border-radius:50%;flex:none;width:42px;height:42px}.row-avatar.empty{color:var(--text-faint);justify-content:center;align-items:center;font-weight:650;display:flex}.row-main{min-width:180px;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;gap:.2rem;padding:0;display:flex}.row-main.static{cursor:default}.row-title{flex-wrap:wrap;align-items:center;gap:.45rem;font-size:.94rem;font-weight:600;display:flex}.row-meta{color:var(--text-muted);overflow-wrap:anywhere;font-size:.8rem}.row-actions{flex-wrap:wrap;gap:.4rem;display:flex}.badge{letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border-strong);color:var(--text-muted);border-radius:999px;padding:.15rem .45rem;font-size:.66rem;font-weight:700}.badge.approved,.badge.owner{background:var(--success-soft);color:var(--success);border-color:#3ddc974d}.badge.pending{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent)}.badge.you,.badge.headshot{background:var(--info-soft);color:var(--info);border-color:#8fb0ff4d}.count-pill{background:var(--surface-3);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:.25rem .6rem;font-size:.78rem;font-weight:600}.inline-edit{flex-wrap:wrap;align-items:center;gap:.5rem;width:100%;display:flex}.inline-edit input{flex:1;min-width:140px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;display:grid}.stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:.2rem;padding:1.05rem 1.15rem;display:flex}.stat strong{letter-spacing:-.03em;font-size:1.9rem;font-weight:650;line-height:1.1}.stat span{color:var(--text-muted);font-size:.8rem}.quick-links{flex-wrap:wrap;gap:.6rem;display:flex}.steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.1rem;margin:0;padding:0;list-style:none;display:grid}.steps li{align-items:flex-start;gap:.85rem;display:flex}.step-number{background:var(--accent-soft);border:1px solid var(--accent-border);width:28px;height:28px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:.82rem;font-weight:700;display:grid}.steps h3{margin-bottom:.2rem}.my-card{grid-template-columns:minmax(260px,380px) minmax(0,1fr);align-items:stretch;gap:1.6rem 2rem;display:grid}.my-card .pass{align-self:start;width:100%;max-width:380px}.my-card-side{flex-direction:column;gap:1.15rem;min-width:0;min-height:100%;display:flex}.my-card-side .detail-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem 1rem}.my-card-side .detail-list dd{color:var(--text);overflow-wrap:anywhere;font-size:1.05rem;font-weight:600}.my-card-side .wallet-actions{flex-direction:column;margin-top:auto}.my-card-side .wallet-actions .btn{width:100%}.change-panel{border-top:1px solid var(--border);flex-direction:column;gap:.85rem;padding-top:.4rem;display:flex}.request-note{color:var(--text-muted);margin:0;font-size:.9rem}.request-note.danger{color:#ff9296}.delete-confirm{background:var(--danger-soft);border-radius:var(--radius-lg);border:1px solid #f2555a4d;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.delete-confirm h3,.change-panel h3{margin:0;font-size:1rem}.delete-confirm p{color:var(--text-muted);margin:0}.request-list{flex-direction:column;gap:1rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.request-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:.85rem;padding:1rem;display:flex}.request-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.9rem;display:flex}.detail-list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin:0;display:grid}.detail-list dt{letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:.25rem;font-size:.72rem;font-weight:700}.detail-list dd{margin:0;font-size:.98rem;font-weight:550}.detail-list.stacked{grid-template-columns:1fr;gap:.75rem}.detail-list.stacked dd{color:var(--text-muted);font-size:.9rem;font-weight:500}.details-panel{padding:1.25rem}.details-panel h3{margin:0;font-size:.98rem}.details-panel .muted.small{margin:.3rem 0 1rem}.wallet-actions{flex-wrap:wrap;gap:.6rem;display:flex}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.87rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.7rem .9rem}.table thead th{background:var(--surface-2);letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:700;position:sticky;top:0}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface-2)}.th-sub{text-transform:none;letter-spacing:0;color:var(--text-faint);font-size:.7rem;font-weight:400;display:block}.table .center{text-align:center}.table .strong{font-weight:600}.table.matrix .sticky-col{background:var(--surface);z-index:1;position:sticky;left:0}.table.matrix thead .sticky-col{background:var(--surface-2);z-index:2}.tick{font-weight:700}.tick.yes{color:var(--success)}.tick.no{color:var(--text-faint)}.scanner{flex-direction:column;align-items:stretch;gap:.9rem;display:flex}.qr-reader{border-radius:var(--radius-lg);background:var(--surface-2);border:1px solid var(--border);width:100%;max-width:380px;margin:0 auto;overflow:hidden}.qr-reader img[alt=Info\ icon],.qr-reader img[alt="Camera based scan"]{display:none}.qr-reader button{cursor:pointer;font-family:inherit!important}.event-qr{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:1.1rem;margin-bottom:1.1rem;padding:1rem;display:flex}.event-qr>img{border-radius:var(--radius-md);background:#fff;width:128px;height:128px;padding:.35rem}.event-qr-actions{flex-direction:column;flex:1;gap:.35rem;min-width:200px;display:flex}.event-qr-actions h3{margin:0;font-size:1rem}.event-qr-actions .row-actions{margin-top:.35rem}.qr-overlay{z-index:100;cursor:zoom-out;background:#040710eb;place-items:center;padding:2rem;display:grid;position:fixed;inset:0}.qr-overlay-inner{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.qr-overlay-inner h2{color:#fff;margin:0}.qr-overlay-inner p{color:#ffffffb3;letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.8rem}.qr-overlay-inner img{border-radius:var(--radius-lg);background:#fff;width:min(60vh,80vw);height:auto;padding:1rem}.manual-add{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:.55rem;margin:1.1rem 0;padding:1rem;display:flex}.manual-add h3,.missed-panel h3{margin:0;font-size:1rem}.manual-add .row-actions{margin-top:.15rem}.missed-panel{margin:0 0 1.1rem}.row-actions select.role-select{max-width:170px;padding:.38rem 1.8rem .38rem .55rem;font-size:.78rem}.attendance-list{flex-direction:column;gap:.55rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.attendance-list>li{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:.9rem;padding:.75rem .9rem;display:flex}.attendance-list .row-title,.attendance-list .row-meta{display:block}.badge.attended{background:var(--success-soft);color:var(--success);border-color:#3ddc974d}.badge.missed{background:var(--danger-soft);color:var(--danger);border-color:#f2555a4d}.badge.upcoming,.badge.open{background:var(--info-soft);color:var(--info);border-color:#8fb0ff4d}.image-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.image-grid>li{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:.55rem;padding:.75rem;display:flex}.image-thumb{aspect-ratio:1;border-radius:var(--radius-md);background:var(--surface-3);display:block;overflow:hidden}.image-thumb img{object-fit:cover;width:100%;height:100%;display:block}.image-meta{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.image-label{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;overflow:hidden}.image-url{color:var(--text-faint);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;padding:.35rem .5rem;font-size:.7rem;overflow:hidden}.auth-panel{gap:1.25rem}.auth-head{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.auth-head h1{font-size:1.6rem}.divider{color:var(--text-faint);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.8rem;font-size:.76rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-foot{text-align:center;flex-direction:column;align-items:center;gap:.5rem;display:flex}.form-page{flex-direction:column;gap:1.75rem;display:flex}.form-page-head{flex-direction:column;gap:.5rem;max-width:58ch;display:flex}.success-mark{background:var(--success-soft);width:56px;height:56px;color:var(--success);border:1px solid #3ddc974d;border-radius:50%;place-items:center;font-size:1.6rem;display:grid}.pass{--pass-radius:22px;border-radius:var(--pass-radius);background:linear-gradient(160deg, var(--brand) 0%, var(--brand-secondary) 100%);width:100%;max-width:360px;box-shadow:var(--shadow-lg);color:#fff;border:1px solid #ffffff24;flex-direction:column;gap:1rem;padding:1.15rem 1.2rem 1.3rem;display:flex}.pass-top{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.pass-top-left{align-items:center;gap:.6rem;min-width:0;display:flex}.pass-logo{object-fit:contain;background:#fff;border-radius:50%;flex:none;width:34px;height:34px}.pass-logo.fallback{background:#ffffff2e;place-items:center;font-size:.8rem;font-weight:700;display:grid}.pass-org{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:650;overflow:hidden}.pass-field{flex-direction:column;gap:.15rem;min-width:0;display:flex}.pass-field.right{text-align:right;flex:none;align-items:flex-end}.pass-label{letter-spacing:.11em;text-transform:uppercase;color:#ffffff9e;font-size:.6rem;font-weight:700}.pass-value{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:600;overflow:hidden}.pass-primary{justify-content:space-between;align-items:center;gap:1rem;display:flex}.pass-name{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:1.32rem;font-weight:650;line-height:1.15}.pass-photo{object-fit:cover;border:2px solid #ffffff73;border-radius:50%;flex:none;width:74px;height:74px}.pass-photo.fallback{background:#ffffff29;place-items:center;font-size:1.4rem;font-weight:650;display:grid}.pass-row{border-top:1px solid #ffffff29;grid-template-columns:1fr 1fr;gap:.75rem;padding-top:.75rem;display:grid}.pass-barcode{background:#fff;border-radius:12px;align-self:center;margin-top:.25rem;padding:7px;line-height:0}.pass-barcode img{width:108px;height:108px;display:block}.pass-barcode-placeholder{text-align:center;color:#6b7280;place-items:center;width:108px;height:108px;padding:.4rem;font-size:.62rem;font-weight:600;line-height:1.3;display:grid}@media (width<=960px){.split,.hero,.my-card{grid-template-columns:minmax(0,1fr)}.hero{gap:2rem}.preview-pane{position:static}.hero-art,.preview-pane .pass,.my-card .pass{margin:0 auto}}@media (width<=760px){.nav-links,.nav-right,.nav-admin{display:none}.nav-inner{gap:.75rem;padding:0 1rem}.nav-burger{flex:none;margin-left:auto;display:flex}.nav-drawer{display:flex}.page{padding:1.5rem 1rem 3rem}.panel{border-radius:var(--radius-lg);min-width:0;padding:1.25rem}input.search,.toolbar,.row-actions{width:100%}.hero-copy,.form-page,.split,.my-card,.table-wrap{min-width:0;max-width:100%}}
