*{box-sizing:border-box}body{margin:0;background:#f5f4ef;color:#203b33;font-family:Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}.shell{max-width:460px;margin:0 auto;padding:30px 22px 24px}.brand{display:flex;align-items:center;gap:9px}.brand-symbol{display:grid;place-items:center;background:#174d3d;color:#fff;width:40px;height:40px;border-radius:13px;font-family:Georgia,serif;font-size:31px;padding-bottom:5px}.brand strong{display:block;font-size:17px;letter-spacing:-.7px}.brand div>span{display:block;font-size:8px;letter-spacing:1.8px;margin-top:2px;color:#74877f}.brand-tag{margin-left:auto;color:#78877e;font-size:11px}.intro{padding:32px 4px 22px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#7b897b}.intro h1{font-size:29px;line-height:1.4;letter-spacing:-1.5px;margin:9px 0;font-weight:750}.intro p{font-size:13px;color:#738279;margin:0}.ticket{background:#fff;border:1px solid #e1e6de;border-radius:23px;box-shadow:0 10px 30px #244b3510;overflow:hidden}.ticket-top{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;border-bottom:1px solid #eff0eb;font-size:12px;font-weight:700}.badge{border-radius:30px;padding:6px 10px;font-size:10px}.available{background:#e7f3e9;color:#2c6744}.neutral{background:#f0eee7;color:#787566}.pass-title{text-align:center;padding-top:21px}.pass-title h2{font-size:25px;letter-spacing:-1px;margin:0 0 5px}.pass-title p{font-size:11px;color:#839087;margin:0}.test-note{text-align:center;background:#fbf5e4;color:#876e35;font-size:10px;line-height:1.5;padding:7px 6px;margin:16px 22px 0;border-radius:6px}.qr-frame{width:258px;min-height:258px;margin:12px auto 0;display:grid;place-items:center}.qr-frame img{width:100%;height:auto;display:block}.scan-hint{text-align:center;font-size:11px;color:#7a877e;margin:0 10px 18px}.scan-hint strong{color:#355e4a}.countdown{margin:0 22px 22px;background:#f1f6f0;border-radius:12px;padding:13px;text-align:center}.countdown span{display:block;color:#738572;font-size:10px;margin-bottom:6px}.countdown strong{font-size:26px;font-variant-numeric:tabular-nums;letter-spacing:2px;color:#245a41;font-weight:650}.time-details{position:relative;border-top:1px dashed #dce4d9;padding:18px 22px;background:#fcfdfa}.time-details div{display:flex;justify-content:space-between;gap:10px;font-size:11px;line-height:2.2}.time-details span{color:#839180}.time-details strong{font-weight:500;color:#415642}.time-details small{display:block;text-align:right;font-size:9px;color:#9aa496;margin-top:4px}.guidance{display:flex;gap:11px;margin:20px 8px 0;color:#818c7f}.guidance>span{font-size:23px;color:#74866f}.guidance p{margin:0;font-size:10px;line-height:1.9}.guidance strong{color:#52684d;font-size:11px;font-weight:600}footer{text-align:center;margin-top:27px;font-size:10px;color:#9ba294}footer span{padding:0 8px}.empty{min-height:305px;padding:35px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty h2{font-size:18px;margin:20px 0 5px}.empty p{font-size:12px;color:#7c897f;line-height:1.8}.empty button{border:0;border-radius:10px;padding:11px 22px;background:#174d3d;color:#fff;margin-top:15px}.empty button:focus-visible{outline:3px solid #d3ae6f;outline-offset:3px}.state-icon{width:56px;height:56px;border-radius:50%;background:#eff3ec;font-size:25px;display:grid;place-items:center;color:#718065}.spinner{width:30px;height:30px;border:3px solid #e3ebdf;border-top-color:#355e4a;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}@media(max-width:360px){.shell{padding:22px 14px}.qr-frame{width:232px;min-height:232px}.intro h1{font-size:26px}.brand-tag{display:none}}.guidance{display:block;margin:16px 22px 0;padding:13px 14px;background:#f1f6f0;border-radius:10px}.guidance p{margin:0;line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}.guidance strong{display:block;font-size:12px;font-weight:600;color:#355e4a}.guidance strong+strong{margin-top:5px}.guidance{text-align:center}
