:root{--lac-green:#244833;--lac-dark:#12221b;--lac-gold:#d8b44a;--lac-red:#a13328;--lac-paper:#f6f3ea;--lac-line:#d7ceb4}
*{letter-spacing:0}
body{margin:0;background:linear-gradient(180deg,#e9efe9,#f7f3e8);color:var(--lac-dark);font-family:Arial,Helvetica,sans-serif}
.landing-shell,.form-shell,.simple-shell{width:min(100%,760px);margin:0 auto;padding:18px}
.simple-shell.wide{width:min(100%,980px)}
.brand-strip{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 12px;color:var(--lac-green);font-size:.95rem}
.brand-strip span,.muted{color:#647267}
.event-poster{width:100%;height:auto;border-radius:8px;border:1px solid rgba(18,34,27,.16);box-shadow:0 18px 44px rgba(18,34,27,.18);display:block;background:#ddd}
.panel{background:#fff;border:1px solid var(--lac-line);border-radius:8px;padding:18px;margin:18px 0;box-shadow:0 10px 26px rgba(18,34,27,.06)}
.previous-card{border-left:5px solid var(--lac-gold)}
.landing-actions{display:grid;gap:10px;margin:18px 0}
.btn-lac{background:var(--lac-green);border-color:var(--lac-green);color:#fff;font-weight:700}
.btn-lac:hover{background:#193425;border-color:#193425;color:#fff}
.btn-outline-lac{border-color:var(--lac-green);color:var(--lac-green);font-weight:700}
.btn-outline-lac:hover{background:var(--lac-green);color:#fff}
.contact-line{font-size:.95rem;text-align:center;color:#4a594d;margin-bottom:16px}.contact-line span{display:inline-block;margin:0 8px 6px}
.back-link{display:inline-block;color:var(--lac-green);font-weight:700;margin-bottom:12px;text-decoration:none}
h1{font-size:1.75rem;font-weight:800;margin:0 0 4px}h2{font-size:1.15rem;font-weight:800;margin-bottom:14px}.eyebrow{text-transform:uppercase;font-size:.78rem;font-weight:800;color:var(--lac-red)}
.form-label{font-weight:700}.form-control,.form-select{border-color:#cfc8b8;border-radius:8px;padding:.72rem .85rem}.form-control:focus,.form-select:focus{border-color:var(--lac-gold);box-shadow:0 0 0 .2rem rgba(216,180,74,.18)}
.upload-preview{width:150px;height:150px;object-fit:cover;border-radius:8px;border:1px solid var(--lac-line);margin-top:10px}
.package-options{display:grid;gap:10px}
.package-option{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;border:1px solid var(--lac-line);border-radius:8px;padding:13px;background:#fbfaf5;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.package-option:hover{border-color:var(--lac-gold);box-shadow:0 8px 18px rgba(18,34,27,.06)}
.package-option.selected{background:#f7f0d9;border-color:var(--lac-gold);box-shadow:inset 4px 0 0 var(--lac-gold)}
.package-option.disabled{opacity:.58;cursor:not-allowed}
.package-copy strong{display:block;color:var(--lac-green);font-weight:900}
.package-copy small{display:block;margin-top:3px;color:#657064;line-height:1.35;white-space:pre-line}
.package-meta{grid-column:2;display:flex;justify-content:space-between;gap:10px;align-items:center;border-top:1px solid rgba(18,34,27,.08);padding-top:9px}
.package-meta b{color:var(--lac-red);font-size:1.05rem}
.package-meta small{color:#657064;font-weight:700;text-align:right}
.number-search{margin-bottom:12px}.number-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:8px;max-height:420px;overflow:auto;padding:4px}
.number-cell{height:42px;border:1px solid #bed0c0;background:#f8fbf6;color:var(--lac-green);border-radius:8px;font-weight:800}
.number-cell:hover,.number-cell.selected{background:var(--lac-gold);border-color:var(--lac-gold);color:#221b0b}
.number-cell.taken{background:#e6e0d4;color:#908776;border-color:#d4cab7;cursor:not-allowed}
.chosen-number{margin-top:14px;background:#f7f3e8;border:1px solid var(--lac-line);border-radius:8px;padding:14px;display:flex;justify-content:space-between;align-items:center}.chosen-number strong,.start-number{font-size:2.2rem;color:var(--lac-red);font-weight:900}.start-number.huge{font-size:4rem}
.payment-box{background:#f7f3e8;border:1px solid var(--lac-line);border-radius:8px;padding:14px;display:grid;gap:6px}.payment-box strong{font-size:1.5rem}.account-row{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.summary-row,.info-list{display:grid;grid-template-columns:1fr auto;gap:10px;border-bottom:1px solid #eee;padding:10px 0}.status-pill{display:inline-block;background:#eef5ea;color:var(--lac-green);border:1px solid #c8d8c5;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:800}
.timeline{display:grid;grid-template-columns:1fr;gap:10px;margin-top:16px}.timeline div{border-left:4px solid var(--lac-gold);padding:8px 12px;background:#faf8f1;border-radius:6px}.timeline span{display:block;color:#667}
.wa-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}
.success-wa-actions{margin-bottom:14px}
.wa-actions .btn{min-height:42px}
.card-preview-shell{width:min(100%,860px)}
.race-card{position:relative;overflow:hidden;background:#173526;color:#fff;border-radius:8px;padding:0;text-align:left;box-shadow:0 24px 54px rgba(18,34,27,.24);isolation:isolate;border:1px solid rgba(216,180,74,.5)}
.race-card::before{content:"";position:absolute;inset:auto -8% -8% -8%;height:46%;background:linear-gradient(180deg,rgba(8,28,18,0),rgba(8,28,18,.92)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='240' viewBox='0 0 900 240'%3E%3Cpath d='M0 188 C120 120 180 150 280 85 C410 0 520 80 640 42 C760 8 820 72 900 24 L900 240 L0 240 Z' fill='%230b1d15'/%3E%3Cpath d='M0 214 C140 162 224 190 340 128 C455 67 545 126 672 92 C782 62 838 96 900 70' fill='none' stroke='%232f5a40' stroke-width='3' opacity='.42'/%3E%3C/svg%3E") bottom center/cover no-repeat;z-index:-1}
.race-card-bg{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='260' viewBox='0 0 420 260'%3E%3Cg fill='none' stroke='%23d8b44a' stroke-width='1.2' opacity='.18'%3E%3Cpath d='M-20 44c40-22 64-20 94 0 38 25 77 24 116-8 31-25 64-29 102-10 37 18 77 11 122-22'/%3E%3Cpath d='M-25 86c41-18 73-14 99 11 35 34 81 32 119-5 30-30 65-36 105-14 38 21 77 18 127-16'/%3E%3Cpath d='M-30 132c50-28 96-23 132 16 31 34 74 35 112 5 38-30 77-35 119-14 36 18 65 18 112-8'/%3E%3Cpath d='M-22 178c54-34 102-28 139 17 28 34 67 37 108 10 45-30 83-30 122 0 31 24 60 25 96 4'/%3E%3Cpath d='M-18 222c41-20 79-14 115 19 37 33 76 30 117 0 37-27 74-25 116 7 34 26 68 22 103-3'/%3E%3C/g%3E%3C/svg%3E");background-size:420px 260px;opacity:.78;z-index:-2}
.race-card-header{display:grid;grid-template-columns:1fr auto;align-items:start;gap:18px;background:#10291d;padding:18px 22px 16px;border-bottom:4px solid var(--lac-gold)}
.race-brand strong{display:block;font-size:2.1rem;line-height:.9;font-weight:900;color:var(--lac-gold)}.race-brand span{display:block;margin-top:5px;font-size:.78rem;text-transform:uppercase;font-weight:800;color:#dfe9df}
.race-event{text-align:right;text-transform:uppercase}.race-event span{display:block;font-size:1rem;font-weight:900;color:#f4f0df}.race-event strong{display:block;font-size:1.55rem;line-height:1;font-weight:900;color:#fff}
.race-card-main{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center;padding:22px 24px 14px}
.rider-photo-frame{position:relative;width:150px;aspect-ratio:1;border-radius:8px;padding:6px;background:var(--lac-gold);box-shadow:8px 8px 0 rgba(0,0,0,.2)}.rider-photo-frame::after{content:"";position:absolute;inset:12px -12px -12px 22px;border-right:2px solid rgba(216,180,74,.75);border-bottom:2px solid rgba(216,180,74,.75);z-index:-1}.rider-photo-frame img{width:100%;height:100%;object-fit:cover;border-radius:5px;border:0;display:block}
.start-number-panel{text-align:right;text-transform:uppercase}.start-number-panel span{display:block;color:var(--lac-gold);font-size:.82rem;font-weight:900;letter-spacing:0}.start-number-panel strong{display:block;color:#f6f1df;font-family:Impact,Arial Black,Arial,sans-serif;font-size:clamp(5.8rem,20vw,11rem);line-height:.78;font-weight:900;text-shadow:0 8px 0 rgba(0,0,0,.28)}
.rider-identity{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin:0 24px 18px;padding:14px 0;border-top:1px solid rgba(216,180,74,.35);border-bottom:1px solid rgba(216,180,74,.35)}.rider-identity span,.race-card-footer span{display:block;color:#cbd8cc;font-size:.72rem;text-transform:uppercase;font-weight:900}.rider-identity strong{display:block;margin-top:4px;color:#fff;font-size:1.25rem;font-weight:900;line-height:1.1}.rider-identity div+div strong{font-size:1rem;color:#f2e3a8}
.race-card-footer{display:flex;justify-content:space-between;gap:16px;align-items:center;background:rgba(9,25,17,.72);padding:14px 22px 16px}.race-card-footer strong{display:block;margin-top:4px;color:#fff;font-weight:900}.confirmed-badge{white-space:nowrap;border:1px solid rgba(216,180,74,.85);background:rgba(216,180,74,.12);color:#f8e9a8;border-radius:999px;padding:7px 12px;font-size:.78rem;font-weight:900}.confirmed-badge span{display:inline;color:#f8e9a8;margin-right:4px}
@media (min-width:700px){.landing-actions{grid-template-columns:1fr 1fr}.timeline{grid-template-columns:repeat(3,1fr)}}
@media (min-width:760px){.package-option{grid-template-columns:auto 1fr minmax(150px,auto);align-items:center}.package-meta{grid-column:auto;border-top:0;padding-top:0;display:grid;justify-items:end}.wa-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.card-preview-shell{padding:12px}.race-card-header{grid-template-columns:1fr;gap:10px;padding:16px}.race-event{text-align:left}.race-event strong{font-size:1.35rem}.race-card-main{grid-template-columns:1fr;gap:12px;padding:18px 16px 12px}.rider-photo-frame{width:128px}.start-number-panel{text-align:left}.start-number-panel strong{font-size:clamp(5.2rem,34vw,7.5rem)}.rider-identity{grid-template-columns:1fr;margin:0 16px 16px;padding:12px 0}.race-card-footer{display:grid;grid-template-columns:1fr;gap:10px;padding:13px 16px 15px}.confirmed-badge{width:max-content}}
@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body{background:#fff}.btn,.back-link,.print-action{display:none}.card-preview-shell{width:100%;padding:0}.registration-card.race-card,.race-card{background:#173526!important;color:#fff!important;box-shadow:none;break-inside:avoid;page-break-inside:avoid;border:1px solid rgba(216,180,74,.5)!important}.race-card::before{display:block!important;background:linear-gradient(180deg,rgba(8,28,18,0),rgba(8,28,18,.92)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='240' viewBox='0 0 900 240'%3E%3Cpath d='M0 188 C120 120 180 150 280 85 C410 0 520 80 640 42 C760 8 820 72 900 24 L900 240 L0 240 Z' fill='%230b1d15'/%3E%3Cpath d='M0 214 C140 162 224 190 340 128 C455 67 545 126 672 92 C782 62 838 96 900 70' fill='none' stroke='%232f5a40' stroke-width='3' opacity='.42'/%3E%3C/svg%3E") bottom center/cover no-repeat!important}.race-card-bg{display:block!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='260' viewBox='0 0 420 260'%3E%3Cg fill='none' stroke='%23d8b44a' stroke-width='1.2' opacity='.18'%3E%3Cpath d='M-20 44c40-22 64-20 94 0 38 25 77 24 116-8 31-25 64-29 102-10 37 18 77 11 122-22'/%3E%3Cpath d='M-25 86c41-18 73-14 99 11 35 34 81 32 119-5 30-30 65-36 105-14 38 21 77 18 127-16'/%3E%3Cpath d='M-30 132c50-28 96-23 132 16 31 34 74 35 112 5 38-30 77-35 119-14 36 18 65 18 112-8'/%3E%3Cpath d='M-22 178c54-34 102-28 139 17 28 34 67 37 108 10 45-30 83-30 122 0 31 24 60 25 96 4'/%3E%3Cpath d='M-18 222c41-20 79-14 115 19 37 33 76 30 117 0 37-27 74-25 116 7 34 26 68 22 103-3'/%3E%3C/g%3E%3C/svg%3E")!important;background-size:420px 260px!important}.race-card-header{background:#10291d!important;border-bottom-color:var(--lac-gold)!important}.race-brand strong,.start-number-panel span{color:var(--lac-gold)!important}.race-brand span,.race-event span,.rider-identity span,.race-card-footer span{color:#cbd8cc!important}.race-event strong,.rider-identity strong,.race-card-footer strong{color:#fff!important}.start-number-panel strong{color:#f6f1df!important;text-shadow:0 8px 0 rgba(0,0,0,.28)!important}.rider-photo-frame{background:var(--lac-gold)!important}.rider-photo-frame::after{display:block!important;border-color:rgba(216,180,74,.75)!important}.rider-identity{border-top-color:rgba(216,180,74,.35)!important;border-bottom-color:rgba(216,180,74,.35)!important}.rider-identity div+div strong{color:#f2e3a8!important}.race-card-footer{background:rgba(9,25,17,.72)!important}.confirmed-badge{background:rgba(216,180,74,.12)!important;border-color:rgba(216,180,74,.85)!important;color:#f8e9a8!important}.confirmed-badge span{color:#f8e9a8!important}}
