:root{--navy:#10233f;--blue:#146c94;--teal:#19a7a0;--gold:#f4b942;--paper:#f5f7fb;--ink:#152033;--muted:#65758b;--danger:#b42318;--ok:#087a5a;--line:#dce3ec;--white:#fff;--shadow:0 18px 50px rgba(16,35,63,.12)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper)}a{color:var(--blue)}.public-body{min-height:100vh;background:radial-gradient(circle at top right,#c9f1eb 0,transparent 34%),linear-gradient(145deg,#eef4fb,#f9fbfd);padding:42px 18px}.registration-shell{max-width:980px;margin:auto}.hero-card{padding:42px;border-radius:24px 24px 0 0;background:linear-gradient(135deg,var(--navy),#174e70);color:white;box-shadow:var(--shadow)}.eyebrow{font-size:.78rem;letter-spacing:.18em;color:#83ded4;font-weight:800}.hero-card h1{font-size:clamp(2rem,5vw,3.6rem);line-height:1.02;margin:14px 0}.hero-card p{max-width:620px;color:#d9e7f1}.status-pill{display:inline-flex;padding:8px 13px;border-radius:999px;font-size:.85rem;font-weight:800}.status-pill.open{background:#d1fae5;color:#065f46}.status-pill.closed{background:#fee2e2;color:#991b1b}.form-card{background:white;border-radius:0 0 24px 24px;padding:36px;box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}label{display:flex;flex-direction:column;gap:7px;font-size:.9rem;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 13px;font:inherit;color:var(--ink);background:white}input:focus,select:focus,textarea:focus{outline:3px solid rgba(25,167,160,.16);border-color:var(--teal)}small,.muted{color:var(--muted);font-weight:400}.consent{flex-direction:row;align-items:flex-start;margin:22px 0;font-weight:500}.consent input{width:auto;margin-top:3px}.btn{display:inline-flex;border:0;border-radius:10px;padding:11px 17px;text-decoration:none;font-weight:800;cursor:pointer;font:inherit;justify-content:center}.btn.primary{background:var(--teal);color:white}.btn.secondary{background:#e8eef5;color:var(--navy)}.btn.danger{background:#fee2e2;color:var(--danger)}.btn.gold{background:var(--gold);color:#3f2d05}.btn.wide{width:100%;padding:15px}.admin-link{display:block;text-align:center;margin:22px;color:var(--muted);font-size:.88rem}.alert{padding:13px 16px;border-radius:10px;margin:0 0 18px}.alert.error{background:#fee4e2;color:#912018}.alert.success{background:#d8f7e9;color:#076548}.alert ul{margin:0;padding-left:20px}.success-card{max-width:600px;margin:10vh auto;background:white;border-radius:24px;padding:45px;text-align:center;box-shadow:var(--shadow)}.success-icon{display:grid;place-items:center;width:66px;height:66px;border-radius:50%;margin:auto;background:#d1fae5;color:var(--ok);font-size:2rem;font-weight:900}.ticket-number{font-size:clamp(1.7rem,6vw,3rem);font-weight:900;color:var(--navy);letter-spacing:.04em;margin:18px 0;padding:18px;background:#eef7f7;border:2px dashed var(--teal);border-radius:12px}.admin-nav{background:var(--navy);color:white;padding:16px max(20px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{color:white;text-decoration:none;font-weight:900}.admin-nav nav{display:flex;gap:17px;flex-wrap:wrap}.admin-nav nav a{color:#dce8f4;text-decoration:none;font-size:.88rem}.container{max-width:1180px;margin:28px auto;padding:0 18px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.page-head h1{margin:0}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card,.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:20px;box-shadow:0 5px 20px rgba(16,35,63,.04)}.stat-card span{color:var(--muted);font-size:.86rem}.stat-card strong{display:block;font-size:2rem;color:var(--navy);margin-top:6px}.panel{margin-top:20px}.panel h2{margin-top:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.badge{display:inline-flex;border-radius:99px;padding:5px 9px;font-size:.75rem;font-weight:800}.badge.eligible{background:#d1fae5;color:#065f46}.badge.pending{background:#fff1c7;color:#7a4d00}.badge.ineligible{background:#fee2e2;color:#991b1b}.inline-form{display:inline-flex;align-items:center;gap:7px}.inline-form select,.inline-form input{padding:7px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.toolbar form{display:flex;gap:8px;flex-wrap:wrap}.toolbar input,.toolbar select{width:auto}.footer{text-align:center;color:var(--muted);padding:30px;font-size:.82rem}.empty-state{text-align:center;padding:35px}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.check-row{flex-direction:row;align-items:center}.check-row input{width:auto}.login-card{max-width:430px;margin:9vh auto;background:white;padding:32px;border-radius:18px;box-shadow:var(--shadow)}.login-card form{display:grid;gap:16px}.draw-body{background:#071426;color:white;min-height:100vh;overflow:hidden}.draw-top{display:flex;justify-content:space-between;align-items:center;padding:20px 28px}.draw-top a{color:#aac0d5}.draw-stage{min-height:calc(100vh - 90px);display:grid;place-items:center;text-align:center;padding:24px;position:relative}.draw-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(25,167,160,.24),transparent 36%);pointer-events:none}.draw-content{position:relative;z-index:1;width:min(900px,95vw)}.draw-content h1{font-size:clamp(2rem,5vw,4.6rem);margin:0 0 10px}.draw-select{display:flex;gap:12px;justify-content:center;margin:28px auto;flex-wrap:wrap}.draw-select select{max-width:520px}.random-name{min-height:120px;display:grid;place-items:center;margin:25px 0;font-size:clamp(2rem,7vw,5.4rem);font-weight:950;color:#79ded3;text-shadow:0 0 34px rgba(25,167,160,.4)}.countdown{font-size:clamp(5rem,20vw,13rem);font-weight:950;color:var(--gold)}.winner-card{background:linear-gradient(135deg,#fff7dc,#fff);color:var(--navy);padding:34px;border-radius:25px;box-shadow:0 0 70px rgba(244,185,66,.3)}.winner-card .winner-name{font-size:clamp(2.2rem,7vw,5.5rem);font-weight:950}.hidden{display:none!important}.draw-actions{display:flex;justify-content:center;gap:12px}.draw-actions .btn{font-size:1.1rem;padding:14px 22px}.confetti{position:fixed;width:10px;height:18px;top:-20px;animation:fall linear forwards;z-index:5}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
@media(max-width:800px){.form-grid,.settings-grid{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}.admin-nav{align-items:flex-start;flex-direction:column}.hero-card,.form-card{padding:25px}.page-head{align-items:flex-start;flex-direction:column}}@media(max-width:480px){.cards{grid-template-columns:1fr}.public-body{padding:14px}.hero-card h1{font-size:2.1rem}}
.admin-nav nav form{margin:0}.nav-button{border:0;background:transparent;color:#dce8f4;padding:0;cursor:pointer;font:inherit;font-size:.88rem}
.member-entry{max-width:520px;margin:0 auto 24px}.member-entry input{font-size:1.1rem;padding:15px}

/* KSKM-UI-001: polished public registration experience */
.public-body{padding:52px 20px 38px;background:radial-gradient(circle at 88% 4%,rgba(25,167,160,.2),transparent 30%),radial-gradient(circle at 8% 96%,rgba(20,108,148,.09),transparent 28%),linear-gradient(145deg,#edf3f9,#fbfcfe)}
.registration-shell{max-width:820px}
.hero-card{padding:48px 54px 44px;border-radius:26px 26px 0 0;background:linear-gradient(138deg,#0d203b 0%,#123b5b 58%,#155f72 100%);box-shadow:0 22px 58px rgba(16,35,63,.16)}
.hero-card .eyebrow{display:block;margin-bottom:16px;font-size:.75rem;letter-spacing:.2em;color:#82e4d8}
.hero-card h1{margin:0;font-size:clamp(2.35rem,5.2vw,3.7rem);line-height:1.08;letter-spacing:-.035em}
.hero-card h1 span{display:block}
.hero-card p{max-width:610px;margin:21px 0 25px;color:#dce9f2;font-size:1.02rem;line-height:1.68}
.status-pill{align-items:center;gap:8px;padding:9px 14px;font-size:.82rem;letter-spacing:.01em}
.status-pill i{display:block;width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 4px rgba(255,255,255,.24)}
.form-card{padding:38px 40px 42px;border-radius:0 0 26px 26px;background:rgba(255,255,255,.96);box-shadow:0 22px 58px rgba(16,35,63,.12)}
.form-card>.alert{margin-bottom:26px}
.registration-panel{padding:32px;border:1px solid #e1e8f0;border-radius:20px;background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%);box-shadow:0 8px 24px rgba(16,35,63,.045)}
.registration-heading{display:flex;align-items:flex-start;gap:17px;margin-bottom:28px;padding-bottom:26px;border-bottom:1px solid #e6ecf2}
.registration-heading>div{min-width:0}
.member-mark{display:grid;flex:0 0 52px;place-items:center;width:52px;height:52px;border-radius:15px;background:#e5f7f5;color:#11877f}
.member-mark svg{width:27px;height:27px}
.section-kicker{display:block;margin:1px 0 7px;color:#138a83;font-size:.7rem;font-weight:850;letter-spacing:.14em}
.registration-heading h2{margin:0;color:var(--navy);font-size:1.55rem;letter-spacing:-.015em}
.registration-heading p{max-width:560px;margin:8px 0 0;color:var(--muted);font-size:.95rem;line-height:1.6}
.member-entry{max-width:none;margin:0 0 18px}
.member-entry label{gap:11px;color:#233750;font-size:.94rem}
.input-shell{position:relative;color:#77869a}
.input-shell>svg{position:absolute;z-index:1;top:50%;left:18px;width:23px;height:23px;transform:translateY(-50%);pointer-events:none}
.input-shell input{height:62px;padding:0 18px 0 54px;border:1px solid #cbd6e2;border-radius:13px;background:#fff;color:var(--ink);font-size:1rem;font-weight:650;letter-spacing:.025em;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.input-shell input::placeholder{color:#94a1b2;font-weight:500;letter-spacing:0}
.input-shell:focus-within{color:var(--teal)}
.input-shell input:focus{border-color:#2baaa3;background:#fff;box-shadow:0 0 0 4px rgba(25,167,160,.14);outline:0}
.info-panel{display:flex;align-items:flex-start;gap:12px;margin:0 0 24px;padding:14px 16px;border:1px solid #ccebe7;border-radius:12px;background:#eefaf8;color:#28605e;font-size:.88rem;line-height:1.5}
.info-panel svg{flex:0 0 20px;width:20px;height:20px;margin-top:1px;color:#15978f}
.info-panel strong{font-weight:650}
.closed-note{margin:-8px 0 22px;padding:13px 15px;border:1px solid #f0dda7;border-radius:11px;background:#fff9e8;color:#76540c;font-size:.88rem;line-height:1.5}
.registration-submit{min-height:59px;align-items:center;gap:11px;padding:14px 18px;border-radius:13px;background:linear-gradient(135deg,#169d95,#12877f);box-shadow:0 10px 22px rgba(18,135,127,.2);font-size:1.02rem;font-weight:850;transition:transform .16s ease,box-shadow .16s ease,filter .16s ease}
.registration-submit>svg{flex:0 0 23px;width:23px;height:23px}
.registration-submit .button-arrow{margin-left:auto;width:20px;height:20px}
.registration-submit:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 13px 26px rgba(18,135,127,.25)}
.registration-submit:active{transform:translateY(1px);box-shadow:0 7px 16px rgba(18,135,127,.2)}
.registration-submit:focus-visible{outline:3px solid rgba(25,167,160,.34);outline-offset:3px}
.reminder-panel{display:flex;align-items:flex-start;gap:13px;margin-top:23px;padding:16px;border:1px solid #d7eee7;border-radius:13px;background:#f4fbf8;color:#315d53}
.reminder-panel>svg{flex:0 0 22px;width:22px;height:22px;margin-top:1px;color:#148a75}
.reminder-panel strong,.reminder-panel span{display:block}
.reminder-panel strong{margin-bottom:4px;color:#245147;font-size:.88rem}
.reminder-panel span{font-size:.82rem;line-height:1.5;color:#607871}
.admin-link{margin:28px 0 0;color:#718096;font-size:.82rem;text-decoration:none}
.admin-link:hover{color:var(--blue);text-decoration:underline}
.success-card{border:1px solid #e1e8f0;border-radius:24px;box-shadow:0 22px 58px rgba(16,35,63,.13)}
.success-card h1{color:var(--navy);letter-spacing:-.025em}

@media(max-width:600px){
  .public-body{padding:16px 12px 28px}
  .registration-shell{max-width:100%}
  .hero-card{padding:30px 24px 29px;border-radius:21px 21px 0 0}
  .hero-card .eyebrow{margin-bottom:13px;font-size:.66rem;letter-spacing:.17em}
  .hero-card h1{font-size:clamp(2rem,10vw,2.55rem);line-height:1.1}
  .hero-card p{margin:17px 0 21px;font-size:.93rem;line-height:1.58}
  .status-pill{padding:8px 12px;font-size:.77rem}
  .form-card{padding:18px;border-radius:0 0 21px 21px}
  .form-card>.alert{margin-bottom:18px}
  .registration-panel{padding:22px 18px;border-radius:16px}
  .registration-heading{gap:13px;margin-bottom:23px;padding-bottom:21px}
  .member-mark{flex-basis:44px;width:44px;height:44px;border-radius:13px}
  .member-mark svg{width:23px;height:23px}
  .section-kicker{font-size:.62rem;letter-spacing:.11em}
  .registration-heading h2{font-size:1.3rem}
  .registration-heading p{margin-top:7px;font-size:.88rem;line-height:1.52}
  .member-entry label{font-size:.9rem}
  .input-shell input{height:59px;padding-left:50px;font-size:1rem}
  .input-shell>svg{left:16px;width:22px;height:22px}
  .info-panel{margin-bottom:21px;padding:13px 14px;font-size:.83rem}
  .registration-submit{min-height:58px;padding:13px 15px;font-size:.94rem}
  .registration-submit>svg{width:21px;height:21px;flex-basis:21px}
  .reminder-panel{margin-top:21px;padding:14px}
  .reminder-panel strong{font-size:.84rem}
  .reminder-panel span{font-size:.79rem}
  .admin-link{margin-top:24px;font-size:.8rem}
  .success-card{margin:5vh auto;padding:32px 23px;border-radius:21px}
}

@media(max-width:380px){
  .hero-card{padding-left:21px;padding-right:21px}
  .form-card{padding:14px}
  .registration-panel{padding:20px 15px}
  .registration-heading{gap:11px}
  .info-panel{margin-bottom:16px}
  .registration-submit{font-size:.89rem}
  .registration-submit .button-arrow{display:none}
}

@media(prefers-reduced-motion:reduce){.registration-submit{transition:none}}

/* KSKM-003: admin-only dynamic registration QR */
.qr-admin-panel{max-width:660px;margin:0 auto;text-align:center;padding:30px}
.qr-event-label{margin:0 0 5px;color:var(--teal);font-size:.75rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.qr-admin-panel h2{margin:0 0 22px;color:var(--navy)}
.registration-qr{display:grid;place-items:center;width:356px;min-height:356px;margin:0 auto 18px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}
.registration-qr img,.registration-qr canvas{display:block;max-width:100%;height:auto!important}
.qr-status{margin:8px 0;color:var(--ok);font-weight:800}
.qr-countdown{margin:8px 0 14px;color:var(--navy);font-size:1.05rem;font-weight:700}
.qr-countdown span{display:inline-block;min-width:2ch;font-size:2rem;font-weight:950;color:var(--teal)}
.qr-help{max-width:520px;margin:0 auto 20px;line-height:1.55}
@media(max-width:480px){.registration-qr{width:100%;min-height:auto;aspect-ratio:1}.qr-admin-panel{padding:20px}}

/* KSKM-005: active-event participant management */
.participant-summary{grid-template-columns:repeat(3,1fr);margin-bottom:20px}.participant-toolbar{justify-content:space-between;margin:0 0 18px}.participant-toolbar form{flex:1;max-width:720px}.participant-toolbar input{flex:1;min-width:260px}.participant-result-count{margin:0}.participant-panel{margin-top:0}.participant-table .draw-number,.draw-number{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:7px 9px;border-radius:9px;background:#e8f7f5;color:#087a71;font-weight:950;letter-spacing:.08em}.badge.winner{background:#fff1c7;color:#7a4d00}.badge.neutral{background:#edf1f5;color:#58677a}.pagination{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;margin-top:20px}.pagination a{display:grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--navy);text-decoration:none;font-weight:800}.pagination a.active{border-color:var(--teal);background:var(--teal);color:white}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:800px){.participant-summary{grid-template-columns:1fr}.participant-toolbar{align-items:stretch;flex-direction:column}.participant-toolbar form{width:100%;max-width:none}.participant-toolbar input{width:100%;min-width:0}.participant-table{min-width:860px}}

/* KSKM-006: Stage 1 lucky draw presentation */
.draw-brand{display:flex;align-items:center;gap:13px}.draw-brand-mark{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(255,255,255,.22);border-radius:14px;background:rgba(255,255,255,.08);color:var(--gold);font-weight:950;letter-spacing:.05em}.draw-brand div{display:flex;flex-direction:column;gap:2px}.draw-brand small{color:#83ded4;font-size:.68rem;font-weight:850;letter-spacing:.14em}.draw-view{display:grid;justify-items:center}.draw-status{min-height:1.5em;margin:8px 0 13px;color:#c7d8e7;font-size:1.05rem}.pool-pill{display:inline-flex;align-items:center;gap:6px;margin-bottom:18px;padding:8px 14px;border:1px solid rgba(121,222,211,.28);border-radius:999px;background:rgba(25,167,160,.1);color:#d7f7f2;font-weight:750}.pool-pill span{color:#79ded3;font-size:1.15rem;font-weight:950}.empty-draw-state{max-width:560px;margin:0 auto 20px;padding:11px 16px;border:1px solid rgba(244,185,66,.24);border-radius:10px;background:rgba(244,185,66,.08);color:#ffe6a7}.number-wheel{position:relative;display:grid;place-items:center;width:min(390px,68vw);aspect-ratio:1;margin:12px auto}.number-wheel:before{content:"";position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,rgba(25,167,160,.2),rgba(7,20,38,.72) 68%);box-shadow:inset 0 0 55px rgba(25,167,160,.2),0 0 70px rgba(25,167,160,.16)}.orbit{position:absolute;border:2px solid rgba(121,222,211,.28);border-radius:50%}.orbit:before,.orbit:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 18px rgba(244,185,66,.8)}.orbit-one{inset:2%;border-style:dashed}.orbit-one:before{top:11%;left:15%}.orbit-one:after{right:7%;bottom:25%}.orbit-two{inset:16%;border-color:rgba(244,185,66,.24)}.orbit-two:before{top:-5px;left:50%}.orbit-two:after{bottom:-5px;left:28%}.draw-number{position:relative;z-index:2;display:block;min-width:0;padding:0;background:transparent;color:#f7fbff;font-size:clamp(5rem,15vw,10rem);font-variant-numeric:tabular-nums;font-weight:950;letter-spacing:.04em;line-height:1;text-shadow:0 0 38px rgba(121,222,211,.54)}.number-wheel.is-spinning .orbit-one{animation:draw-orbit 1.2s linear infinite}.number-wheel.is-spinning .orbit-two{animation:draw-orbit-reverse .82s linear infinite}.number-wheel.is-spinning .draw-number{animation:number-pulse .5s ease-in-out infinite alternate}.draw-primary{min-width:210px;font-size:1.14rem!important;letter-spacing:.04em}.draw-primary:disabled{cursor:not-allowed;filter:grayscale(.5);opacity:.55}.stage1-winner{max-width:920px;margin:auto;padding:clamp(28px,5vw,58px)}.winner-label{margin-top:20px;color:#6d7890;font-size:.78rem;font-weight:900;letter-spacing:.16em}.winner-number{color:var(--teal);font-size:clamp(6rem,20vw,13rem);font-weight:950;letter-spacing:.05em;line-height:.95;text-shadow:0 10px 30px rgba(25,167,160,.22)}.stage1-winner .winner-name{margin:22px 0 8px;font-size:clamp(2rem,6vw,4.8rem);line-height:1.05}.winner-member{margin:0 0 26px;color:#66748a;font-size:clamp(1rem,2vw,1.3rem)}body[data-draw-state="spinning"] .draw-status{color:var(--gold)}body[data-draw-state="winner"] .draw-top{opacity:.72}
@keyframes draw-orbit{to{transform:rotate(360deg)}}@keyframes draw-orbit-reverse{to{transform:rotate(-360deg)}}@keyframes number-pulse{to{transform:scale(1.035);filter:brightness(1.16)}}
@media(max-width:640px){.draw-top{padding:14px 16px}.draw-brand-mark{width:42px;height:42px}.draw-brand strong{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draw-top>a{font-size:.78rem}.draw-stage{padding:12px}.number-wheel{width:min(320px,82vw)}.draw-actions{flex-direction:column;width:min(320px,90vw)}.draw-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.number-wheel.is-spinning .orbit-one,.number-wheel.is-spinning .orbit-two,.number-wheel.is-spinning .draw-number{animation:none}}

/* KSKM-007: Stage 2 prize-number draw */
.prize-stage{display:grid;justify-items:center;margin:24px auto 0;padding-top:24px;border-top:1px solid rgba(16,35,63,.12)}.prize-draw-button{min-width:min(520px,88vw);padding:20px 30px!important;font-size:clamp(1.05rem,2.6vw,1.55rem)!important;letter-spacing:.055em;box-shadow:0 12px 28px rgba(244,185,66,.28);animation:prize-button-glow 1.5s ease-in-out infinite alternate}.prize-draw-button:disabled{cursor:not-allowed;opacity:.6}.prize-status{min-height:1.5em;margin:14px 0 0;color:#68758a}.prize-result{display:grid;justify-items:center;min-width:min(470px,82vw);padding:12px 24px 20px;border-radius:22px;background:radial-gradient(circle,rgba(244,185,66,.18),transparent 68%)}.prize-label{color:#78622d;font-size:.78rem;font-weight:950;letter-spacing:.2em}.prize-number{color:#d6930b;font-size:clamp(5.5rem,18vw,11rem);font-variant-numeric:tabular-nums;font-weight:950;letter-spacing:.06em;line-height:1;text-shadow:0 10px 35px rgba(244,185,66,.34)}.next-draw-button{margin-top:20px;padding:14px 25px!important;font-size:1.06rem!important}body[data-draw-state="prize-spinning"] .prize-result{animation:prize-panel-pulse .38s ease-in-out infinite alternate}body[data-draw-state="prize-spinning"] .prize-number{filter:blur(.5px)}
.prize-number-small{font-variant-numeric:tabular-nums;font-weight:950;letter-spacing:.08em;color:#a56b00}
@keyframes prize-button-glow{to{transform:translateY(-2px);box-shadow:0 17px 38px rgba(244,185,66,.42)}}@keyframes prize-panel-pulse{to{transform:scale(1.025)}}
@media(max-width:640px){.stage1-winner{padding:24px 15px}.prize-stage{width:100%}.prize-draw-button{min-width:100%}.prize-result{min-width:100%}}
@media(prefers-reduced-motion:reduce){.prize-draw-button,body[data-draw-state="prize-spinning"] .prize-result{animation:none}}

.stage1-winner .winner-identity{transition:opacity .45s ease,transform .45s ease}
.stage1-winner .winner-identity.is-concealed{opacity:0;transform:translateY(12px)}
@media(prefers-reduced-motion:reduce){.stage1-winner .winner-identity{transition:none}}

/* KSKM-011: keep the complete draw flow visible on projector screens. */
.draw-body{height:100vh;height:100dvh}
.draw-top{height:72px;padding:10px 24px}
.draw-stage{height:calc(100vh - 72px);height:calc(100dvh - 72px);min-height:0;padding:12px;overflow:hidden}
@media(min-width:641px) and (max-height:1100px){
  .draw-content h1{font-size:clamp(1.8rem,4vh,3.2rem);margin-bottom:4px}
  .number-wheel{width:min(32vh,330px,48vw);margin:4px auto}
  .draw-status{margin:4px 0 8px;font-size:1rem}
  .pool-pill{margin-bottom:10px;padding:6px 12px}
  .draw-actions .btn{padding:11px 20px}
  .stage1-winner{padding:clamp(16px,2.5vh,28px)}
  .winner-label{margin-top:8px}
  .winner-number{font-size:clamp(4.5rem,17vh,9rem)}
  .stage1-winner .winner-name{margin:8px 0 4px;font-size:clamp(1.7rem,5vh,3.4rem)}
  .winner-member{margin-bottom:10px}
  .prize-stage{margin-top:8px;padding-top:8px}
  .prize-draw-button{padding:14px 26px!important}
  .prize-status{margin-top:7px}
  .prize-result{padding:4px 20px 6px}
  .prize-number{font-size:clamp(4.5rem,15vh,8rem)}
  .next-draw-button{margin-top:8px;padding:11px 22px!important}
}
@media(max-width:640px){
  .draw-body{height:auto;min-height:100vh;overflow:auto}
  .draw-top{height:auto}
  .draw-stage{height:auto;min-height:calc(100vh - 70px);overflow:visible}
}

/* KSKM-009: final active-event draw history */
.history-summary{margin-bottom:20px}.history-panel{margin-top:0}.history-toolbar{justify-content:space-between;margin-bottom:18px}.history-toolbar form{flex:1}.history-toolbar input{min-width:280px;flex:1}.history-toolbar select{min-width:190px}.history-result-count{margin:0}.history-table{min-width:1060px}.history-table td{vertical-align:top}.history-row.is-void{background:#fff8f7;color:#6f5960}.history-row.is-void .draw-number,.history-row.is-void .prize-number-small{filter:saturate(.45);opacity:.82}.history-no-prize{font-size:1.2rem;color:var(--muted)}.void-prize-note,.void-reason{display:block;margin-top:5px;color:#8e5b5b;white-space:normal}.history-void-form{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:7px;min-width:280px}.history-void-form input{padding:8px}.history-void-form .btn{padding:8px 12px}
@media(max-width:800px){.history-summary{grid-template-columns:repeat(2,1fr)}.history-toolbar{align-items:stretch;flex-direction:column}.history-toolbar form{width:100%}.history-toolbar input,.history-toolbar select{width:100%;min-width:0}.history-void-form{min-width:240px}}
@media(max-width:480px){.history-summary{grid-template-columns:1fr}}
@media print{.admin-nav,.history-toolbar,.history-page-head .btn,.history-void-form,.pagination,.footer,.history-table th:last-child,.history-table td:last-child{display:none!important}.admin-body{background:#fff}.container{max-width:none;margin:0;padding:0}.panel,.stat-card{box-shadow:none;border-color:#bbb}.history-table{min-width:0;font-size:10pt}.history-table th,.history-table td{padding:7px 5px;white-space:normal}.history-row.is-void{background:#f3f3f3!important}.history-page-head{margin-bottom:10px}}

/* Member master list and public draw-number recheck */
.member-summary{grid-template-columns:repeat(3,1fr);margin-bottom:20px}.member-share-card{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(320px,1.3fr);gap:8px 24px;align-items:center;margin:0 0 20px}.member-share-card h2,.member-share-card p{margin:0}.member-share-card p{margin-top:6px}.share-link-row{display:flex;gap:8px}.share-link-row input{min-width:0}.member-share-card>small{grid-column:2}.member-toolbar{justify-content:space-between;margin-bottom:18px}.member-toolbar form{display:flex;flex:1;gap:8px;max-width:800px}.member-toolbar input{flex:1;min-width:240px}.member-toolbar select{min-width:170px}.member-result-count{margin:0}.member-panel{margin-top:0}.member-table{min-width:760px}
.admin-draw-number{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:6px 10px;border-radius:8px;background:#e8f0f7;color:var(--navy);font-size:1.25rem;font-variant-numeric:tabular-nums;font-weight:900;letter-spacing:.06em;line-height:1.1;text-shadow:none}
.lookup-shell{width:min(560px,100%);margin:auto}.lookup-card{padding:38px;border:1px solid #e1e8f0;border-radius:24px;background:#fff;box-shadow:var(--shadow)}.lookup-card .eyebrow{color:#11877f}.lookup-card h1{margin:12px 0 8px;color:var(--navy);font-size:clamp(2rem,8vw,2.8rem);line-height:1.08}.lookup-form{display:grid;gap:13px;margin-top:28px}.lookup-form input{height:58px;font-size:1.08rem}.lookup-result{margin-top:24px;padding:20px;border-radius:16px;text-align:center}.lookup-result.registered{background:#ecfaf7;border:1px solid #bde9e1}.lookup-result.pending{background:#fff8df;border:1px solid #f1d889}.lookup-result.error{background:#fee4e2;border:1px solid #f2bbb6;color:#81201a}.lookup-result>span{font-size:.76rem;font-weight:900;letter-spacing:.16em;color:#087a71}.lookup-result .ticket-number{margin:12px 0}.lookup-result p{margin:0;font-weight:750}
.member-details{display:grid;gap:14px;margin:20px 0}.member-detail{display:grid;min-width:0;gap:5px;text-align:center}.member-detail-label,.public-draw-label{display:block;margin:0;color:#087a71;font-size:.74rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}.member-detail-value{display:block;min-width:0;color:var(--navy);font-weight:850;line-height:1.35;overflow-wrap:anywhere;word-break:normal}.member-name{font-size:clamp(1.125rem,4.8vw,1.35rem)}.member-number{font-size:clamp(1.125rem,4.4vw,1.25rem)}.public-draw-label{margin-top:18px}.lookup-result .member-details{margin:0 0 18px}
@media(max-width:800px){.member-summary{grid-template-columns:1fr}.member-share-card{grid-template-columns:1fr}.member-share-card>small{grid-column:auto}.member-toolbar{align-items:stretch;flex-direction:column}.member-toolbar form{width:100%;max-width:none;flex-wrap:wrap}.member-toolbar input,.member-toolbar select{width:100%;min-width:0}.lookup-card{padding:28px 22px}}
@media(max-width:480px){.share-link-row{align-items:stretch;flex-direction:column}.lookup-card{padding:25px 18px;border-radius:20px}}

/* Configurable numbered prizes */
.prize-limit-panel{margin-top:20px}.prize-limit-form{display:flex;align-items:flex-end;gap:10px;max-width:440px}.prize-limit-form label{flex:1}.prize-name-panel{margin-top:20px}.prize-config-table{min-width:760px}.prize-config-table input{min-width:220px}.prize-config-table select{min-width:150px}.prize-row-form{margin:0}.grand-prize-control{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:0}.grand-prize-control h2{margin-bottom:10px}.badge.grand-prize{background:#fff1c7;color:#7a4d00}.draw-mode-badge{display:inline-flex;margin:0 auto 18px;padding:8px 15px;border-radius:999px;font-size:.8rem;font-weight:950;letter-spacing:.1em}.draw-mode-badge.normal{border:1px solid rgba(121,222,211,.35);background:rgba(25,167,160,.12);color:#79ded3}.draw-mode-badge.grand{border:1px solid rgba(244,185,66,.5);background:rgba(244,185,66,.18);color:#ffe391}.winner-card .draw-mode-badge.normal{color:#087a71}.winner-card .draw-mode-badge.grand{color:#7a4d00}.prize-category-label{margin-bottom:8px;color:#9a6700;font-size:clamp(1rem,2.5vw,1.35rem);font-weight:950;letter-spacing:.14em}.prize-name-display{max-width:720px;margin:10px auto 0;color:#5b481a;font-size:clamp(1.15rem,3vw,1.75rem);font-weight:850;line-height:1.25}.history-prize-name{display:block;margin-top:5px;color:var(--ink);font-weight:700;white-space:normal}
@media(max-width:640px){.prize-limit-form{align-items:stretch;flex-direction:column}.grand-prize-control{align-items:stretch;flex-direction:column}.prize-name-display{font-size:1.15rem}}
