:root{--brit-blue: #4767b7;--brit-navy: #282a6d;--brit-red: #ea4858;--brit-red-dark: #a82532;--coat: #fbfcfc;--shade: #c6d5dc;--shade-strong: #7596ac;--silver: #8e9aab;--gold: #c9a227;--platinum: #6e7f95;--text: #1d2433;--muted: #5b6b7c;--bg: #f4f7fa;--card: #ffffff;--error: var(--brit-red-dark)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg)}h1{font-size:1.5rem;color:var(--brit-navy)}button{font:inherit;padding:.6rem 1.2rem;border:none;border-radius:8px;background:var(--brit-blue);color:#fff;cursor:pointer}button:hover:not(:disabled){background:var(--brit-navy)}button:disabled{opacity:.55;cursor:default}button.link{background:none;color:var(--brit-blue);text-decoration:underline;padding:0}button.link:hover:not(:disabled){background:none;color:var(--brit-navy)}a{color:var(--brit-blue)}:focus-visible{outline:3px solid var(--brit-red);outline-offset:2px}.auth-page{max-width:28rem;margin:0 auto;padding:3rem 1.25rem}.auth-form{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.auth-form input{font:inherit;padding:.6rem .75rem;border:1px solid var(--shade);border-radius:8px;background:var(--card)}.error{color:var(--error)}.ticket-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.75rem}.ticket-card{display:flex;flex-direction:column;gap:.15rem;background:var(--card);border:1px solid var(--shade);border-left:6px solid var(--brit-blue);border-radius:10px;padding:.9rem 1.1rem;text-decoration:none;color:inherit}.ticket-card:hover{border-color:var(--brit-blue)}.ticket-card.tier-silver{border-left-color:var(--silver)}.ticket-card.tier-gold{border-left-color:var(--gold)}.ticket-card.tier-platinum{border-left-color:var(--platinum)}.ticket-card-tier{font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.ticket-card-name{font-size:1.15rem;font-weight:600;color:var(--brit-navy)}.ticket-card-ref{font-size:.8rem;color:var(--muted)}.shell-header{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.75rem 1.25rem;background:var(--brit-navy);color:#fff}.brand{font-weight:700}.shell-header .link{color:#fff;margin-left:auto}.shell-header .link:hover:not(:disabled){color:var(--shade)}.ticket-switcher{font:inherit;padding:.35rem .5rem;border-radius:6px;border:none;max-width:16rem;min-width:0;background:var(--coat);color:var(--text)}@media(max-width:640px){.ticket-switcher,.ticket-single{order:3;flex-basis:100%;max-width:none}}.tier-banner{padding:.4rem 1.25rem;color:#fff;font-size:.9rem}.tier-banner.tier-silver{background:var(--silver)}.tier-banner.tier-gold{background:var(--gold)}.tier-banner.tier-platinum{background:var(--platinum)}.ticket-nav{display:flex;gap:.25rem;padding:0 1rem;border-bottom:1px solid var(--shade);background:var(--card);overflow-x:auto}.ticket-nav a{padding:.75rem .9rem;text-decoration:none;color:var(--muted);white-space:nowrap;border-bottom:3px solid transparent}.ticket-nav a:hover{color:var(--brit-blue)}.ticket-nav a.active{color:var(--brit-blue);border-bottom-color:var(--brit-red);font-weight:600}.attention-banner{background:#fbf0d7;color:#7a5c10;padding:.7rem 1.25rem;font-size:.95rem}.attention-banner a{color:#7a5c10;font-weight:600}.page{max-width:36rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}.badge-name{font-size:2rem;font-weight:700;color:var(--brit-navy);margin:.5rem 0 1rem}.placeholder{background:var(--card);border:1px dashed var(--shade-strong);border-radius:10px;padding:1rem 1.25rem;color:var(--muted)}.merch-section{margin-bottom:2rem}.merch-section h2{font-size:1.15rem;color:var(--brit-navy)}.perk-list{background:var(--card);border:1px solid var(--shade);border-radius:10px;margin:0;padding:1rem 1.25rem 1rem 2.4rem}.perk-list li{padding:.2rem 0}.field-card{background:var(--card);border:1px solid var(--shade);border-radius:10px;padding:.9rem 1.1rem;margin:.75rem 0}.field-card.is-pending{border-left:6px solid var(--gold)}.field-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.field-label{font-weight:600}.chip{font-size:.78rem;padding:.2rem .6rem;border-radius:999px;white-space:nowrap}.chip-pending{background:#fbf0d7;color:#7a5c10}.chip-collected{background:#e2f2e5;color:#1e6b34}.chip-locked{background:var(--shade);color:var(--text)}.field-hint{color:var(--muted);font-size:.9rem;margin:.35rem 0}.field-value{font-size:1.15rem;font-weight:600;color:var(--brit-navy);margin:.35rem 0}.field-controls{margin-top:.5rem;display:flex;flex-direction:column;gap:.6rem}.field-controls select{font:inherit;padding:.5rem .6rem;border:1px solid var(--shade);border-radius:8px;background:var(--card);max-width:14rem}.field-actions{display:flex;align-items:center;gap:.9rem}.radio-row{display:flex;flex-wrap:wrap;gap:.5rem}.radio-pill{border:1px solid var(--shade);border-radius:999px;padding:.45rem .9rem;cursor:pointer;background:var(--card)}.radio-pill.selected{border-color:var(--brit-blue);background:var(--brit-blue);color:#fff}.radio-pill input{position:absolute;opacity:0;pointer-events:none}.bag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem;margin:.75rem 0}.bag-tile{margin:0;text-align:center}.bag-tile figcaption{margin-top:.35rem;font-weight:600;color:var(--brit-navy)}.bag-image{padding:0;border:1px solid var(--shade);border-radius:10px;background:var(--card);overflow:hidden;width:100%;cursor:zoom-in}.bag-image img{display:block;width:100%;height:auto}.qr-card{background:#fff;border:1px solid var(--shade);border-radius:12px;padding:1.5rem;margin:1rem 0;display:flex;flex-direction:column;align-items:center;gap:.75rem}.qr-card svg{max-width:100%;height:auto}.qr-ticket-ref{font-weight:700;color:var(--brit-navy);font-size:1.1rem;margin:0}.qr-fallback{font-family:ui-monospace,Consolas,monospace;font-size:.85rem;color:var(--muted);margin:0;word-break:break-all;text-align:center}.lightbox{position:fixed;inset:0;background:#141630e0;display:flex;align-items:center;justify-content:center;z-index:100}.lightbox figure{margin:0;max-width:min(90vw,60rem);text-align:center}.lightbox img{max-width:100%;max-height:82vh;border-radius:8px;background:#fff}.lightbox figcaption{color:#fff;margin-top:.6rem}.lightbox-nav,.lightbox-close{position:fixed;background:#ffffff26;color:#fff;border-radius:50%;width:2.75rem;height:2.75rem;padding:0;font-size:1.4rem;line-height:1}.lightbox-nav:hover:not(:disabled),.lightbox-close:hover:not(:disabled){background:#ffffff4d}.lightbox-prev{left:1rem;top:50%;transform:translateY(-50%)}.lightbox-next{right:1rem;top:50%;transform:translateY(-50%)}.lightbox-close{top:1rem;right:1rem}
