@font-face{font-family:Grid;src:local('Arial')}*{box-sizing:border-box} :root{--ink:#161717;--muted:#676a69;--paper:#f3f4f0;--yellow:#e9f45a;--line:#d8dbd5;--red:#a11f25}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 Grid,Arial,sans-serif}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:white;border-radius:6px;padding:11px 16px;font-weight:700;line-height:1.3}button:hover{border-color:var(--ink)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #848e12;outline-offset:4px}a{color:inherit;text-underline-offset:4px}input,select{width:100%;padding:12px;border:1px solid #c7cbc4;border-radius:5px;background:white;color:var(--ink);min-height:48px}input:focus,select:focus{outline:2px solid #7c8615;outline-offset:2px}label{display:grid;gap:6px;font-size:14px;font-weight:700}form{display:grid;gap:17px}h1,h2,h3,p{margin:0}h1{font-size:clamp(32px,4.4vw,57px);line-height:1.05;letter-spacing:-.035em}h2{font-size:26px;line-height:1.15;letter-spacing:-.02em}h3{font-size:18px;line-height:1.3}p+p{margin-top:14px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;margin-bottom:13px}.topbar{background:var(--ink);color:white;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px max(24px,calc((100vw - 1240px)/2))}.brand{text-decoration:none;font-size:26px;font-style:italic;letter-spacing:-1px;font-weight:900;line-height:1}.brand span{display:block;font-style:normal;font-size:10px;letter-spacing:3px;color:var(--yellow);margin-top:8px}.header-actions{display:flex;align-items:center;gap:22px;font-size:14px}.header-actions button{background:transparent;color:white;border-color:#555}.header-actions a{text-decoration:none}main{max-width:1296px;margin:auto;padding:0 28px 60px}#notice:not(:empty){padding:16px;background:#fff9c1;border:1px solid #dfd085;border-radius:6px;margin-top:20px}#loading{margin-top:40px}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:38px 0 30px}.scanner-shortcut{display:flex;gap:16px;align-items:center;font-size:16px;font-weight:800;text-decoration:none;padding:18px 24px;background:var(--yellow);border-radius:8px}.scan-symbol{font-size:48px;line-height:1}.tabs{display:flex;border-bottom:1px solid var(--line);gap:30px;margin-bottom:24px}.tabs button{padding:16px 0;background:none;border:0;border-bottom:3px solid transparent;border-radius:0;color:var(--muted);font-size:15px}.tabs button[aria-pressed=true]{border-color:var(--ink);color:var(--ink)}.eventbar{display:flex;align-items:end;gap:12px;margin-bottom:25px}.eventbar label{flex:1;max-width:670px}.eventbar button{min-height:48px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stats>div{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border:1px solid var(--line);border-radius:8px;background:white}.stats span{font-size:14px;font-weight:700}.stats strong{font-size:34px;letter-spacing:-.04em}.stats>div:nth-child(2){background:var(--yellow);border-color:var(--yellow)}.work-grid{display:grid;grid-template-columns:350px 1fr;gap:24px;align-items:start}.panel{padding:26px;background:white;border:1px solid var(--line);border-radius:10px}.panel>h2+p{margin-top:16px}.muted,.hint{color:var(--muted)}.hint{font-size:13px;line-height:1.5}.issue-panel h2{margin-bottom:12px}.issue-panel form{margin-top:22px}.issue-panel>.muted{font-size:14px;margin-bottom:14px}.issue-panel>button{width:100%}.primary{background:var(--ink);color:white;border-color:var(--ink)}.secondary{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}.danger{background:#fff0f0;border-color:#dfadae;color:var(--red)}.check{display:flex;align-items:center;gap:10px;font-size:14px}.check input{width:20px;height:20px;min-height:0;accent-color:var(--ink)}.payment-note{border-top:1px solid var(--line);margin-top:27px;padding-top:24px}.payment-note h3{margin-top:12px}.payment-note p{font-size:14px;color:var(--muted);margin-top:8px}.badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.08em;background:#edf0e9;padding:5px 8px;border-radius:3px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.search{font-weight:400;margin-bottom:23px}.guest{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:20px 0;border-top:1px solid var(--line)}.guest h3{font-size:17px;margin-bottom:5px;overflow-wrap:anywhere}.guest small{color:var(--muted);font-size:13px}.guest button{padding:8px 12px;font-size:14px}.guest-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.status{font-size:12px;font-weight:700;padding:4px 7px;background:#e9f3e8;display:inline-block;margin-left:6px;border-radius:3px}.status.used{background:#eee;color:#515454}.status.cancelled{background:#ffebeb;color:var(--red)}.status.test{background:#e5efff;color:#2554a7}.empty{padding:55px 20px;text-align:center;border:1px dashed var(--line);border-radius:8px;margin-bottom:22px}.empty h3{margin-bottom:9px}.empty p{font-size:14px;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.scan-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:start}.scan-layout aside{display:grid;gap:20px}.camera{position:relative;background:#1c201f;border-radius:8px;aspect-ratio:4/3;margin-top:22px;overflow:hidden;color:#dfe4dd;display:grid;place-items:center}.camera video{display:none;width:100%;height:100%;object-fit:cover}.camera.active video{display:block}.camera.active #camera-placeholder{display:none}#camera-placeholder{text-align:center;padding:20px;font-size:14px}#camera-placeholder .scan-symbol{font-size:85px}.camera-message{margin-top:10px}#manual-form{margin-top:25px;border-top:1px solid var(--line);padding-top:22px}#manual-form input{text-transform:uppercase}.result{padding:32px;min-height:280px;display:flex;flex-direction:column;justify-content:center}.result h2{font-size:34px;margin-bottom:22px}.result p{font-size:15px}.result.good{background:#e2f3e1;border:2px solid #29863c;color:#145423}.result.bad{background:#fff0ef;border:2px solid #c04741;color:#8c2422}.result.test{background:#e9f1ff;border:2px solid #467fcf;color:#1a488c}.result.neutral{background:var(--ink);border-color:var(--ink);color:white}.result.neutral .eyebrow{color:var(--yellow)}.scan-reminder p{font-size:14px;color:var(--muted);margin-top:12px}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.guide-grid h2{margin-bottom:22px}.guide-grid li{padding-left:5px;margin-bottom:13px}.guide-grid ol{padding-left:23px}.guide-grid p{font-size:15px}.login{max-width:480px;margin:60px auto}.login h1{margin-bottom:23px}.login>p:not(.eyebrow){margin-bottom:25px}.form-error{font-size:14px;color:var(--red)}.form-error:empty{display:none}dialog{width:min(510px,calc(100vw - 28px));border:1px solid var(--line);border-radius:12px;padding:30px;max-height:92dvh;overflow-y:auto;color:var(--ink)}dialog::backdrop{background:#0d131bcc;backdrop-filter:blur(4px)}dialog form{margin-top:25px}dialog h2{margin:10px 0 15px}dialog .close{float:right;border:0;background:none;font-size:27px;padding:0 4px;margin-top:-12px}dialog .hint{margin-top:14px}#ticket-dialog{width:min(540px,calc(100vw - 28px));background:var(--paper);padding:20px}#ticket-dialog .close{margin:0 0 10px}.ticket{max-width:450px;margin:auto;background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden}.ticket-head{background:var(--ink);color:white;padding:24px;display:flex;align-items:center;justify-content:space-between}.ticket-head strong{font-size:25px;font-style:italic;font-weight:900}.ticket-head span{color:var(--yellow);font-size:12px;font-weight:800;letter-spacing:.07em}.ticket-body{padding:26px}.ticket-body .eyebrow{margin-bottom:8px;color:var(--muted)}.ticket-body h2{font-size:28px;overflow-wrap:anywhere;margin:0 0 18px}.ticket-event{font-size:17px;font-weight:800;overflow-wrap:anywhere}.ticket-meta{font-size:14px;margin-top:8px}.ticket-venue{font-size:14px;color:var(--muted);overflow-wrap:anywhere;margin-top:8px}.ticket-qr{text-align:center;padding:22px;border-top:2px dashed var(--line)}.ticket-qr canvas{max-width:100%;height:auto;width:230px;image-rendering:pixelated}.ticket-code{font-family:monospace;font-size:17px;font-weight:700;letter-spacing:.04em}.ticket-foot{background:var(--yellow);text-align:center;font-size:12px;font-weight:800;letter-spacing:.08em;padding:12px}.ticket-alert{background:#e9f1ff;color:#1a488c;padding:12px;text-align:center;font-weight:800}.ticket-alert.invalid{background:#ffe6e5;color:var(--red)}.ticket-actions{justify-content:center}.ticket-actions button{font-size:14px}.ticket-note{text-align:center;max-width:450px;margin:20px auto;color:var(--muted);font-size:14px}#public-view{max-width:560px;margin:38px auto}.public-mode .header-actions{display:none}.public-mode .brand{pointer-events:none}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}
@media(max-width:900px){.work-grid{grid-template-columns:310px 1fr}.page-heading h1{font-size:40px}.scanner-shortcut{padding:16px;font-size:14px}.guest{align-items:start;flex-direction:column}.guest-actions{justify-content:start}.scan-layout{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.topbar{padding:20px}.brand{font-size:23px}.header-actions{gap:12px}.header-actions a{display:none}.header-actions button{font-size:12px;padding:8px}main{padding:0 16px 36px}.page-heading{padding:28px 0 22px;align-items:start}.page-heading h1{font-size:32px}.page-heading .eyebrow{font-size:10px;max-width:180px}.scanner-shortcut{font-size:0;padding:12px}.scanner-shortcut .scan-symbol{font-size:38px}.tabs{gap:18px}.tabs button{font-size:13px}.eventbar{flex-wrap:wrap;gap:8px}.eventbar label{flex-basis:100%;max-width:none}.eventbar button{font-size:13px;min-height:40px}.stats{gap:8px}.stats>div{padding:14px 10px;display:block}.stats span{display:block;font-size:11px}.stats strong{font-size:30px}.work-grid,.scan-layout,.guide-grid{grid-template-columns:1fr}.panel{padding:22px}.guest{flex-direction:row;flex-wrap:wrap}.section-heading h2{font-size:23px}.guest-panel{min-width:0}.scan-layout aside{grid-row:1}.result{min-height:0;padding:24px}.result h2{font-size:28px;margin-bottom:12px}.scan-reminder{display:none}.login{margin-top:28px}.ticket-body{padding:22px}.ticket-head{padding:20px}.ticket-head strong{font-size:23px}dialog{padding:24px}#ticket-dialog{padding:14px}.ticket-code{font-size:15px}.camera{aspect-ratio:1.25}}
@media print{body{background:white}body *{visibility:hidden}.ticket,.ticket *{visibility:visible}.ticket{position:absolute;left:50%;top:0;transform:translateX(-50%);width:390px;margin:0;break-inside:avoid;border:1px solid #aaa}dialog[open]{position:static;overflow:visible;border:0;background:none;max-height:none}dialog::backdrop{background:none}.ticket-head,.ticket-foot,.ticket-alert{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A5 portrait;margin:12mm}}
@media print{.ticket-head{padding:16px 18px}.ticket-head strong{font-size:23px}.ticket-head span{font-size:10px}.ticket-body{padding:18px}.ticket-body h2{font-size:24px;margin-bottom:12px}.ticket-event{font-size:15px}.ticket-meta,.ticket-venue{font-size:12px;margin-top:6px}.ticket-qr{padding:12px}.ticket-qr canvas{width:180px}.ticket-foot{padding:9px;font-size:10px}.ticket-alert{padding:8px;font-size:12px}.ticket-code{font-size:15px}}

#guest-names{display:grid;gap:15px}#guest-names:empty{display:none}.group-navigation{display:flex;align-items:center;justify-content:space-between;gap:8px;clear:both;margin:0 0 16px;font-size:14px}.group-navigation button{padding:8px;font-size:13px}@media print{.group-navigation{display:none}}

.pdf-scope{width:100%}#ticket-email{border-top:1px solid #ddd;margin-top:20px;padding-top:16px}#ticket-email h3{margin:0 0 12px}#ticket-email form{display:grid;gap:10px}#ticket-email input{width:100%}.ticket-actions>p{width:100%}
@media print{#ticket-email{display:none!important}}
