.athlete-photo-card{display:grid;grid-template-columns:150px 1fr;gap:18px;margin:18px 0;padding:18px;background:#fff8e8;border:1px solid #f0d5ab;border-radius:18px}.athlete-photo-preview{display:grid;width:150px;height:150px;place-items:center;overflow:hidden;color:#ad6b27;background:#ffe3a1;border:2px dashed #e9a63f;border-radius:22px;text-align:center;font-weight:900}.athlete-photo-preview img{width:100%;height:100%;object-fit:cover}.athlete-photo-card h2{margin:0}.athlete-photo-card p{margin:5px 0 12px;color:#7d6855;font-size:13px}.athlete-photo-upload{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.athlete-photo-delete{margin-top:8px;padding:0;color:#c83b2b;background:transparent;border:0;text-decoration:underline}.profile-image-error{padding:12px 16px;color:#a8291f;background:#ffe0d8;border-radius:10px}.checkin-profile-image{float:left;width:76px;height:76px;margin:0 12px 8px 0;border-radius:18px;object-fit:cover}@media(max-width:540px){.athlete-photo-card{grid-template-columns:1fr}.athlete-photo-preview{width:120px;height:120px}}
.athlete-pass-page{background:linear-gradient(180deg,#fff7de,#fff 38%,#fff0e7)}.pass-back-link{display:inline-flex;margin:0 0 14px;color:#bf3a22;font-weight:800;text-decoration:none}.athlete-pass-card{overflow:hidden;background:#fff;border:1px solid #ffd4a0;border-radius:28px;box-shadow:0 22px 55px #d8541726}.athlete-pass-hero{display:flex;gap:18px;justify-content:space-between;padding:26px;color:#4f210e;background:radial-gradient(circle at 12% 8%,#fff 0 12%,transparent 13%),linear-gradient(135deg,#ffd91f,#ff9226 58%,#f44725)}.athlete-pass-hero span{font-size:12px;font-weight:950;letter-spacing:1px}.athlete-pass-hero h1{margin:5px 0;font-size:30px;font-weight:950}.athlete-pass-hero p{margin:0;font-size:13px}.pass-status{align-self:flex-start;padding:9px 14px;color:#fff;border-radius:999px;background:#e95724;white-space:nowrap}.pass-status.ready{background:#13935f}.pass-status.pending{background:#e95724}.athlete-pass-body{display:grid;grid-template-columns:1fr 1.2fr;gap:22px;padding:24px}.pass-athlete{display:grid;grid-template-columns:112px 1fr;gap:16px;align-items:center}.pass-photo{display:grid;width:112px;height:112px;place-items:center;overflow:hidden;background:#fff0bf;border:2px dashed #f4a337;border-radius:24px;color:#a76321;text-align:center;font-weight:900}.pass-photo img{width:100%;height:100%;object-fit:cover}.pass-athlete small,.pass-checklist small{color:#8a6a55;font-weight:800}.pass-athlete h2{margin:3px 0;font-size:25px;font-weight:950}.pass-athlete p{margin:0;color:#714932}.pass-athlete b{display:inline-block;margin-top:8px;padding:6px 10px;background:#fff2d8;border-radius:12px}.pass-scan-box{padding:18px;background:#fffaf0;border:1px solid #f4d1a0;border-radius:22px;text-align:center}.athlete-pass-barcode{display:block;width:100%;max-width:430px;height:auto;margin:0 auto 10px}.pass-scan-box strong{display:block;font-size:22px;letter-spacing:1px}.pass-scan-box p{margin:5px 0 0;color:#806650;font-size:12px}.pass-warning{margin:0 24px 18px;padding:13px 16px;color:#8c2c19;background:#ffe3d7;border-radius:16px}.pass-warning a{margin-left:8px;color:#c23320;font-weight:900}.pass-checklist,.pass-souvenirs{padding:0 24px 24px}.pass-checklist h2,.pass-souvenirs h2{font-size:18px;font-weight:950}.pass-checklist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pass-checklist-grid article{padding:14px;background:#fff7e6;border:1px solid #f4d1a0;border-radius:17px}.pass-checklist-grid b{display:block;margin-top:5px}.pass-souvenirs div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #f0e0ce}.pass-souvenirs strong{color:#bf3a22}@media(max-width:720px){.athlete-pass-hero,.athlete-pass-body{grid-template-columns:1fr;flex-direction:column}.pass-checklist-grid{grid-template-columns:1fr}.athlete-pass-hero h1{font-size:24px}.athlete-pass-body{padding:18px}.pass-athlete{grid-template-columns:86px 1fr}.pass-photo{width:86px;height:86px}}
