:root{--ink:#1b1f24;--muted:#59636e;--line:#d9dee4;--paper:#fff;--tint:#f3f6fa;--accent:#14407a;--accent-ink:#fff;--danger:#a4161a;--radius:12px;--content:720px;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.6}*,:before,:after{box-sizing:border-box}body{margin:0;font-size:1.0625rem}a{color:var(--accent)}h1,h2,h3{line-height:1.25}h1{margin:.5rem 0;font-size:1.75rem}h2{margin:2.25rem 0 .75rem;font-size:1.35rem}h3{margin:1.5rem 0 .25rem;font-size:1.1rem}code{background:var(--tint);border-radius:4px;padding:.05em .3em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header,.content,.site-footer{max-width:var(--content);margin:0 auto;padding:0 1rem}.site-header{padding-top:.75rem;padding-bottom:.25rem}.site-name{color:var(--ink);font-weight:700;text-decoration:none}.lead{color:var(--muted);margin-top:0}.content table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.content th,.content td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;min-width:9rem;padding:.5rem}.faq-item p{margin-top:.25rem}.related ul{padding-left:1.25rem}.site-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:3rem;padding-top:1rem;padding-bottom:2rem;font-size:.9rem}.site-footer nav{flex-wrap:wrap;gap:.5rem 1.25rem;display:flex}.disclaimer{font-size:.85rem}.button{min-height:48px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.6rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex}.button--primary{background:var(--accent);color:var(--accent-ink)}.button--secondary{background:var(--paper);color:var(--accent);border-color:var(--accent)}.button--link{color:var(--accent);background:0 0;min-height:44px;text-decoration:underline}.button:focus-visible,.visually-hidden:focus-visible+.button{outline-offset:2px;outline:3px solid #f2c14e}.viewer{margin:1.25rem 0 2rem}.dropzone{border-radius:var(--radius);background:var(--tint);text-align:center;border:2px dashed #9fb3cc;padding:1.5rem 1rem}.dropzone.is-dragging{border-color:var(--accent);background:#e4ecf7}.dropzone-hint{color:var(--muted);margin:.5rem 0 0}.dropzone-note{color:var(--muted);margin:.5rem 0 0;font-size:.9rem}.viewer-error{border-radius:var(--radius);color:var(--danger);background:#fdecec;border:1px solid #f3b9bb;margin:1rem 0;padding:.75rem 1rem}.viewer-bundle{margin:1rem 0}.bundle-list{gap:.5rem;padding:0;list-style:none;display:grid}.bundle-list li{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.bundle-type,.bundle-error{color:var(--muted);font-size:.9rem}.bundle-error{color:var(--danger)}.viewer-result{margin-top:1.25rem;scroll-margin-top:.5rem}.viewer-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin:1rem 0;display:flex}.viewer-panel{border:1px solid var(--line);border-radius:var(--radius);margin:.75rem 0;padding:0 1rem}.viewer-panel summary{cursor:pointer;min-height:44px;padding:.75rem 0;font-weight:600}.raw-json{white-space:pre;max-height:24rem;font-size:.8rem;line-height:1.45;overflow:auto}.raw-json code{background:0 0;padding:0}.pass-meta,.pass-back{grid-template-columns:minmax(7rem,max-content) 1fr;gap:.25rem 1rem;font-size:.95rem;display:grid}.pass-back{padding-bottom:1rem}.pass-meta dt,.pass-back dt{color:var(--muted);font-weight:600}.pass-meta dd,.pass-back dd{white-space:pre-line;overflow-wrap:anywhere;margin:0}.pass{--pass-bg:#fff;--pass-fg:#000;--pass-label:#000;background:var(--pass-bg);max-width:360px;color:var(--pass-fg);border-radius:14px;margin:0 auto;padding:14px 16px 16px;line-height:1.25;position:relative;overflow:hidden;box-shadow:0 6px 24px #0000002e}.pass>*{position:relative}.pass .pass-background{object-fit:cover;filter:blur(10px);width:calc(100% + 40px);height:calc(100% + 40px);position:absolute;inset:-20px}.pass-header{justify-content:space-between;align-items:center;gap:12px;min-height:40px;display:flex}.pass-brand{align-items:center;gap:8px;min-width:0;display:flex}.pass-logo{object-fit:contain;max-width:150px;max-height:36px}.pass-logo-text{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.pass-header-fields{text-align:right;gap:12px;display:flex}.pass-field{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.pass-header-fields .pass-field{flex:none}.pass-field.is-right,.pass-header-fields .pass-field{text-align:right}.pass-label{color:var(--pass-label);letter-spacing:.02em;font-size:11px;font-weight:600}.pass-value{overflow-wrap:anywhere;font-size:15px}.pass-header-fields .pass-value{font-size:17px}.pass-primary{align-items:center;gap:12px;margin:12px 0;display:flex;position:relative}.pass-primary.has-strip{align-items:flex-start;min-height:110px;margin:12px -16px;padding:14px 16px}.pass-strip{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.pass-primary-fields{flex:1;gap:12px;min-width:0;display:flex;position:relative}.pass-field--primary .pass-value{font-size:26px}.pass-primary--transit .pass-field--primary .pass-value,.has-strip .pass-field--primary .pass-value{font-size:34px;font-weight:300}.pass-transit{flex:none;width:28px;height:28px}.pass-thumbnail{object-fit:contain;flex:none;width:80px;height:80px}.pass-row{gap:12px;margin:10px 0;display:flex}.pass-footer{max-width:100%;margin:8px auto;display:block}.pass-barcode{color:#000;text-align:center;background:#fff;border-radius:8px;width:fit-content;max-width:100%;margin:16px auto 0;padding:14px}.pass-barcode-slot{font-size:13px}.barcode-canvas{height:auto;margin:0 auto;display:block}.barcode-canvas.is-square{width:200px}.barcode-canvas.is-wide{width:296px;max-width:100%}.pass-barcode-alt{margin:6px 0 0;font-size:13px}.pass-barcode-error{max-width:260px;color:var(--danger);margin:0}.pass-void{color:#dc1e1e8c;pointer-events:none;justify-content:center;align-items:center;margin:0;font-size:72px;font-weight:800;display:flex;position:absolute;inset:0;transform:rotate(-22deg)}@media (width>=640px){h1{font-size:2.1rem}.dropzone{padding:2.25rem 1.5rem}}
