:root{--bg:#0a0a0a;--panel:#111;--line:#2a2a2a;--text:#f3f3f3;--muted:#9b9b9b;--danger:#ff6868;--ok:#78d69a;--warn:#ffd166}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;letter-spacing:.01em;min-height:100vh}
button,input,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--text);outline-offset:3px}.wrap{max-width:1120px;margin:auto;padding:0 20px}.hide{display:none!important}
.systemBanner{position:fixed;left:0;right:0;bottom:0;z-index:100;padding:12px 18px;background:#252525;border-top:1px solid #555;text-align:center;font-size:12px}.errorBanner{background:#351313;color:#ffdada;border-color:var(--danger)}
.nav{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:rgba(10,10,10,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.navin{display:flex;align-items:center;justify-content:flex-end;min-height:64px}.navlinks{display:flex;gap:8px;flex-wrap:nowrap;justify-content:flex-end;align-items:center}.btn{border:1px solid var(--text);background:var(--text);color:#0a0a0a;padding:12px 16px;min-height:44px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;border-radius:0}.btn.alt{background:transparent;color:var(--text)}.btn.ghost{border-color:var(--line);background:transparent;color:var(--muted)}.btn.danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn.ok{background:var(--ok);border-color:var(--ok);color:#08120c}.btn:disabled{opacity:.4;cursor:not-allowed}
.hero{min-height:70vh;display:grid;align-items:end;padding:72px 0 44px;border-bottom:1px solid var(--line)}.heroGrid{display:grid;grid-template-columns:1.4fr .6fr;gap:40px;align-items:end}.eyebrow{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.16em;margin-bottom:12px}.heroEyebrow{font-size:10px;letter-spacing:.18em;margin-bottom:34px;text-align:left;width:100%}.heroLogoWrap{width:min(100%,900px);display:flex;flex-direction:column;align-items:flex-start;gap:20px}.heroLogoMain{display:block;width:min(100%,880px);height:auto;object-fit:contain}.heroLogoSub{display:block;width:min(82%,720px);height:auto;object-fit:contain;margin-left:auto;margin-right:auto}.heroActions{margin-top:32px;display:flex;gap:10px;flex-wrap:wrap}.meta{border-left:1px solid var(--line);padding-left:24px;display:grid;gap:18px}.metaRow span{display:block}.metaLabel{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin-bottom:6px}.metaValue{font-size:20px;font-weight:800}
.section{padding:64px 0;border-bottom:1px solid var(--line);min-height:60vh}.sectionTitle{font-size:clamp(30px,5vw,56px);margin:0 0 18px;text-transform:uppercase;letter-spacing:-.035em}.compactTitle{font-size:42px}.sectionLead{max-width:720px;color:var(--muted);font-size:17px;line-height:1.6;margin:0 0 28px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.card{border:1px solid var(--line);background:var(--panel);padding:22px}.card h3{margin:0 0 12px;text-transform:uppercase}.form{display:grid;gap:14px}label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}input,textarea{width:100%;margin-top:8px;border:1px solid var(--line);background:#0d0d0d;color:var(--text);padding:14px 13px;min-height:46px;outline:none;border-radius:0}input:focus,textarea:focus{border-color:#777}.small{font-size:12px;color:var(--muted);line-height:1.55}.notice{border:1px solid var(--line);padding:16px;color:var(--muted);line-height:1.55}.inlineActions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.inlineActions.centered{justify-content:center}.statusWrap{margin:10px 0 18px}.status{display:inline-flex;padding:8px 10px;border:1px solid var(--line);text-transform:uppercase;font-size:11px;font-weight:800;letter-spacing:.08em}.status.pending{color:var(--warn);border-color:var(--warn)}.status.approved{color:var(--ok);border-color:var(--ok)}.status.rejected{color:var(--danger);border-color:var(--danger)}
.qrisBox{min-height:320px;border:1px dashed #555;display:grid;place-items:center;background:#fff;color:#111;overflow:hidden}.qrisBox img{max-width:100%;max-height:430px;display:block}.paymentAmount{font-size:44px;font-weight:900;letter-spacing:-.04em}.previewImg{max-width:100%;max-height:360px;border:1px solid var(--line);margin-top:12px;object-fit:contain}.loginPanel{max-width:520px;margin:70px auto;border:1px solid var(--line);padding:30px;background:var(--panel)}.google{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:14px 16px;border:1px solid #555;background:#fff;color:#111;font-weight:800}.googleMark{font-weight:900;font-size:19px}.loginNote{margin-top:14px}.stepper{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}.step{padding:9px 10px;border:1px solid var(--line);font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.1em;font-weight:900}.step.on{color:#fff;border-color:#fff}.step.done{color:var(--ok);border-color:var(--ok)}hr.sep{border:0;border-top:1px solid var(--line);margin:22px 0}
.ticket{background:#f3f3f3;color:#0b0b0b;padding:0;border:0;max-width:620px;margin:auto}.ticketTop{background:#0b0b0b;color:#fff;padding:26px}.ticketTop .mini{color:#aaa;text-transform:uppercase;font-size:12px;letter-spacing:.12em}.ticketTitle{font-size:48px;font-weight:950;letter-spacing:-.05em;margin-top:8px}.ticketTagline{font-weight:800;text-transform:uppercase}.ticketBody{padding:28px}.ticketLabel{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#666}.ticketName{font-size:28px;font-weight:900;text-transform:uppercase;margin:8px 0 24px}.ticketInfo{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}.ticketInfo .k{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:#666}.ticketInfo .v{font-size:16px;font-weight:800;margin-top:4px}.qrWrap{display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:center;margin-top:28px;padding-top:24px;border-top:1px solid #bbb}#ticketQr{background:#fff;width:160px;height:160px;display:grid;place-items:center}.barcodeWrap{overflow:hidden}#ticketBarcode{width:100%;max-height:94px}.codeLabel{margin-top:8px}.codeBig{font-size:23px;font-weight:950;letter-spacing:.09em;word-break:break-all}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.tab.active{background:var(--text);color:#111}.statGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.statCard{border:1px solid var(--line);padding:16px;background:var(--panel)}.statNumber{font-size:30px;font-weight:950;margin-top:6px}.tableCard{overflow:auto}.adminTable{width:100%;border-collapse:collapse;font-size:14px;min-width:900px}.adminTable th,.adminTable td{border-bottom:1px solid var(--line);padding:12px 8px;text-align:left;vertical-align:top}.adminTable th{font-size:11px;text-transform:uppercase;color:var(--muted);letter-spacing:.09em}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions .btn{min-height:36px;padding:8px 10px;font-size:10px}
.scanModes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 18px}.scanModeBtn{border:1px solid var(--line);background:#0d0d0d;color:var(--muted);padding:12px 8px;min-height:44px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;touch-action:manipulation}.scanModeBtn.active{background:var(--text);color:#0a0a0a;border-color:var(--text)}#reader{width:100%;min-height:280px;border:1px solid var(--line);background:#050505;overflow:hidden;position:relative}#reader video{object-fit:cover}.scanResult{min-height:230px;display:flex;flex-direction:column;justify-content:center}.scanResult.success{border-color:var(--ok)}.scanResult.error{border-color:var(--danger)}.scanResult.warning{border-color:var(--warn)}.scanBig{font-size:clamp(27px,5vw,46px);font-weight:950;letter-spacing:-.035em;text-transform:uppercase;margin:8px 0}.scanRunner{font-size:22px;font-weight:900;text-transform:uppercase;margin:4px 0 14px}.scanControls{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.cameraNote{font-size:11px;color:var(--muted);line-height:1.5;margin-top:10px}.manualCard{margin-top:20px}.manualCard .btn{margin-top:12px}.footer{padding:32px 0;color:#777;font-size:12px}
@media(max-width:800px){.wrap{padding-left:16px;padding-right:16px}.navin{min-height:54px}.navlinks{gap:6px;width:100%;justify-content:flex-end}.navlinks .btn{padding:7px 10px;min-height:38px;font-size:10px;letter-spacing:.04em;white-space:nowrap}.hero{padding-top:42px;min-height:auto}.heroGrid,.grid2{grid-template-columns:1fr}.heroEyebrow{font-size:9px;margin-bottom:28px;letter-spacing:.16em}.heroLogoWrap{gap:12px}.heroLogoMain{width:100%}.heroLogoSub{width:88%}.heroActions .btn{flex:1 1 150px}.meta{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.hideMobile{display:none!important}.section{padding:46px 0}.sectionLead{font-size:15px}.ticketInfo{grid-template-columns:1fr}.qrWrap{grid-template-columns:1fr}#ticketQr{margin:auto}.scanModes{grid-template-columns:1fr}.statGrid{grid-template-columns:1fr 1fr}#reader{min-height:330px}.scannerGrid{display:block}.scannerGrid>div+div{margin-top:20px}.tabs{gap:6px}.tabs .btn{padding:8px 10px;min-height:40px;font-size:10px}.compactTitle{font-size:36px}.paymentAmount{font-size:38px}.loginPanel{margin:34px auto;padding:22px}}
@media(max-width:430px){.heroEyebrow{margin-bottom:30px}.heroLogoSub{width:92%}.statGrid{grid-template-columns:1fr 1fr}.statNumber{font-size:25px}.card{padding:18px}.ticketTop,.ticketBody{padding:22px}.ticketTitle{font-size:42px}.codeBig{font-size:19px}.stepper{gap:5px}.step{font-size:9px;padding:7px 8px}}
@media print{body *{visibility:hidden}#ticketSection,#ticketSection *{visibility:visible}#ticketSection{position:absolute;left:0;top:0;width:100%;padding:0;border:0}#ticketSection .sectionTitle,#ticketSection .sectionLead,#ticketSection .stepper,#ticketSection .printHide{display:none!important}.ticket{max-width:100%;box-shadow:none}}

/* v1.1 Invitation and admin data tools */
.guestGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.guestCard{margin:0;min-width:0}.guestCard legend{padding:0 8px;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}.invitationTicketsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.invitationTicketsGrid .ticket{width:100%;max-width:none}.invitationTicketsGrid .ticketTitle{font-size:40px}.invitationTicketsGrid .ticketName{font-size:24px}.invitationTicketsGrid .qrWrap{grid-template-columns:140px 1fr;gap:18px}.invitationTicketsGrid .invQr{background:#fff;width:140px;height:140px;display:grid;place-items:center}.invitationTicketsGrid .invQr img,.invitationTicketsGrid .invQr canvas{max-width:100%;height:auto}.adminToolbar{display:flex;justify-content:flex-end;gap:8px;margin:0 0 12px}.invitationAdminGrid{margin-bottom:20px}.miniStatRows{display:grid;gap:0}.miniStatRows>div{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.miniStatRows>div:last-child{border-bottom:0}.miniStatRows span{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.miniStatRows strong{font-size:24px}.invitationTableCard{margin-top:0}.miniSep{border:0;border-top:1px solid var(--line);margin:10px 0}.heroActions{align-items:stretch}
@media(max-width:800px){.guestGrid,.invitationTicketsGrid{grid-template-columns:1fr}.invitationTicketsGrid{gap:28px}.invitationTicketsGrid .qrWrap{grid-template-columns:1fr}.invitationTicketsGrid .invQr{margin:auto}.adminToolbar{justify-content:stretch}.adminToolbar .btn{width:100%}.invitationAdminGrid{grid-template-columns:1fr}.heroActions .btn{font-size:10px;padding-left:10px;padding-right:10px}}
@media print{#invitationTickets,#invitationTickets *{visibility:visible}#invitationTickets{position:absolute;left:0;top:0;width:100%;padding:0;border:0}#invitationTickets .sectionTitle,#invitationTickets .sectionLead,#invitationTickets .stepper,#invitationTickets .printHide{display:none!important}.invitationTicketsGrid{display:block}.invitationTicket{max-width:100%;margin:0 0 20px;break-inside:avoid;page-break-inside:avoid}}

/* v1.2 Registration capacity */
.fieldHint{display:block;margin-top:7px;font-size:10px;line-height:1.45;color:var(--muted);text-transform:none;letter-spacing:.01em}
