.ref-shell{--ref-surface:#fff;--ref-soft:#fff8fb;--ref-ink:#2b2030;--ref-muted:#6c5e69;--ref-line:#e8dce4;--ref-accent:#b71358;display:grid;gap:24px;max-width:1180px;min-width:0;color:var(--ref-ink);font-size:14px;line-height:1.55}
html[data-theme="dark"] .ref-shell{--ref-surface:#17131e;--ref-soft:#201925;--ref-ink:#f8f3f7;--ref-muted:#b8aab6;--ref-line:rgba(255,255,255,.12);--ref-accent:#ff82b5}
.ref-shell *{box-sizing:border-box}.ref-shell h1{font-size:32px}.ref-shell h2{font-size:28px;line-height:1.2;letter-spacing:-.025em}.ref-shell h3{font-size:18px}.ref-shell h1,.ref-shell h2,.ref-shell h3{margin:0 0 12px;color:var(--ref-ink)}
.ref-shell p{margin:0 0 12px;max-width:72ch}.ref-shell p:last-child{margin-bottom:0}.ref-shell a{color:var(--ref-accent);text-underline-offset:3px}.ref-header{display:flex;align-items:start;justify-content:space-between;gap:24px}.ref-header>div{max-width:70ch}.ref-panel,.ref-notice{min-width:0;background:var(--ref-surface);border:1px solid var(--ref-line);border-radius:14px;padding:24px}.ref-notice{background:var(--ref-soft)}
.ref-shell .ref-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid transparent;border-radius:9px;background:#b71358;color:#fff;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;transition:background-color .15s ease}
.ref-shell .ref-button:hover{background:#921047}.ref-shell .ref-secondary{background:var(--ref-surface);color:var(--ref-accent);border-color:var(--ref-line)}.ref-shell .ref-secondary:hover{background:var(--ref-soft)}.ref-shell :is(a,button,input,textarea,select,summary):focus-visible{outline:3px solid var(--ref-accent);outline-offset:3px}.ref-shell input,.ref-shell textarea,.ref-shell select{max-width:100%;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--ref-line);border-radius:9px;background:var(--ref-surface);color:var(--ref-ink);font:inherit;caret-color:var(--ref-accent)}
.ref-copy{display:flex;gap:12px;margin-top:8px}.ref-copy input{flex:1;min-width:0}.ref-copy button{flex-shrink:0}.ref-feedback{min-height:24px;margin-top:8px!important}.ref-muted,.ref-shell small{color:var(--ref-muted)}.ref-shell small{font-size:12px}.ref-metrics{display:flex;flex-wrap:wrap;gap:24px 32px;margin:18px 0}.ref-metrics>div{min-width:125px}.ref-metrics dt{color:var(--ref-muted)}.ref-metrics dd{margin:4px 0 0;font-size:28px;font-weight:800;font-variant-numeric:tabular-nums}.ref-shell progress{width:100%;height:12px;accent-color:#b71358}.ref-steps{padding-left:22px}.ref-steps li{padding:5px 0}.ref-table-wrap{max-width:100%;overflow-x:auto;scrollbar-color:var(--ref-muted) var(--ref-soft)}
.ref-shell table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.ref-shell th{font-weight:700;color:var(--ref-muted);background:var(--ref-soft)}.ref-shell td,.ref-shell th{padding:12px;vertical-align:top;border-bottom:1px solid var(--ref-line);overflow-wrap:anywhere;min-width:110px}.ref-shell td p{margin:8px 0}.ref-shell td small{display:inline-block}.ref-shell summary{cursor:pointer;min-height:44px;display:list-item;padding:10px 0;min-width:140px}.ref-form{display:grid;gap:18px;max-width:720px}.ref-form label{display:grid;gap:8px}.ref-field>label{display:block;margin-bottom:8px}.ref-check{display:flex!important;align-items:start;gap:12px!important;cursor:pointer;min-height:44px}.ref-check input{width:22px!important;height:22px;min-height:22px;flex-shrink:0;margin-top:2px;accent-color:#b71358}.ref-stop{margin-top:24px;padding-top:24px;border-top:1px solid var(--ref-line)}.ref-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0}.ref-filters label{display:grid;gap:8px;flex:1;min-width:160px}.ref-pagination{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:18px}.ref-pagination a{display:inline-flex;align-items:center;min-height:44px}.ref-public{margin:32px auto;padding:24px;max-width:840px;background:var(--ref-surface)}.ref-public h2{margin-top:18px}.ref-shell ::selection{color:#fff;background:#b71358}
@media(max-width:720px){.ref-shell{gap:18px}.ref-header{flex-direction:column}.ref-panel,.ref-notice{padding:18px}.ref-shell h2{font-size:24px}.ref-copy{flex-direction:column}.ref-shell input,.ref-shell select,.ref-shell textarea{font-size:16px}.ref-public{margin:0;padding:24px 18px}.ref-metrics{gap:18px}.ref-metrics>div{min-width:calc(50% - 18px)}.ref-filters{display:grid}.ref-shell th,.ref-shell td{padding:10px}.ref-table-wrap{overscroll-behavior-x:contain}}
@media(prefers-reduced-motion:reduce){.ref-shell .ref-button{transition:none}}
.ref-mobile-hint{display:none}.ref-table-wrap:focus-visible{outline:3px solid var(--ref-accent);outline-offset:3px}
.ref-shell a:not(.ref-button){color:var(--ref-accent)!important}
@media(max-width:720px){.ref-mobile-hint{display:block;color:var(--ref-muted);font-size:14px}}

/* Participant dashboard and public program rules. */
.ref-dashboard{gap:20px}
.ref-dashboard .ref-header{align-items:center;margin-bottom:4px}
.ref-dashboard .ref-header h2{margin-bottom:10px;text-wrap:balance}
.ref-header-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.ref-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.ref-section-heading>div{min-width:0}
.ref-section-heading h3{margin-bottom:6px}
.ref-section-heading p{margin:0;color:var(--ref-muted)}
.ref-link-panel{background:var(--ref-soft)}
.ref-input-label{display:block;margin-top:20px;font-weight:700}
.ref-state{flex:none;display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--ref-line);border-radius:999px;background:var(--ref-surface);font-size:12px;font-weight:700;white-space:nowrap}
.ref-state::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ref-accent)}
.ref-copy input{font-variant-numeric:tabular-nums}
.ref-copy .ref-link-address{display:flex;align-items:center;flex:1;min-width:0;min-height:52px;padding:12px 16px;border:1px solid var(--ref-line);border-radius:9px;background:var(--ref-surface);font-size:16px;font-weight:650;overflow-wrap:anywhere;word-break:break-word;user-select:all;text-decoration:underline;text-underline-offset:4px}
.ref-link-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px 18px;padding-top:14px;border-top:1px solid var(--ref-line)}
.ref-link-foot p{margin:0;color:var(--ref-muted)}
.ref-link-foot strong{color:var(--ref-ink);font-variant-numeric:tabular-nums}
.ref-progress-panel progress{display:block;height:12px;margin:20px 0 10px}
.ref-progress-count{flex:none;white-space:nowrap;color:var(--ref-ink);font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.ref-progress-count span{font-size:16px;color:var(--ref-muted)}
.ref-progress-note{max-width:none!important;color:var(--ref-muted)}
.ref-dashboard .ref-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:24px 0 14px;padding-top:18px;border-top:1px solid var(--ref-line)}
.ref-dashboard .ref-metrics>div{min-width:0;padding:0 16px;border-left:1px solid var(--ref-line)}
.ref-dashboard .ref-metrics>div:first-child{padding-left:0;border-left:0}
.ref-dashboard .ref-metrics dd{font-variant-numeric:tabular-nums}
.ref-how-panel .ref-steps{display:grid;gap:0;margin:16px 0 20px;padding-left:24px}
.ref-how-panel .ref-steps li{padding:10px 0;border-bottom:1px solid var(--ref-line)}
.ref-how-panel .ref-steps li:last-child{border-bottom:0}
.ref-terms-panel .ref-button{flex:none}
.ref-terms-points{display:grid;gap:0;margin:18px 0;padding-left:20px}
.ref-terms-points li{padding:9px 0}
.ref-terms-points li::marker{color:var(--ref-accent)}

.ref-rules{max-width:920px;gap:0;margin:32px auto;padding:0;background:transparent}
.ref-rules-header{padding:30px;background:var(--ref-surface);border:1px solid var(--ref-line);border-radius:16px 16px 0 0}
.ref-rules-header>a{display:inline-block;margin-bottom:24px;font-weight:700}
.ref-rules-header h1{margin-bottom:12px;line-height:1.15;letter-spacing:-.025em;text-wrap:balance}
.ref-rules-header>p{max-width:62ch;color:var(--ref-muted);font-size:16px}
.ref-rules-status{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;margin-top:24px;padding:14px 16px;border:1px solid var(--ref-line);border-radius:9px;background:var(--ref-soft);font-variant-numeric:tabular-nums}
.ref-rules-status span{color:var(--ref-muted)}
.ref-rules-nav{display:flex;flex-wrap:wrap;gap:8px;padding:16px 30px;background:var(--ref-soft);border-left:1px solid var(--ref-line);border-right:1px solid var(--ref-line)}
.ref-rules-nav a{display:inline-flex;align-items:center;min-height:44px;padding:8px 12px;border:1px solid var(--ref-line);border-radius:9px;background:var(--ref-surface);font-weight:700;text-decoration:none}
.ref-rules-nav a:hover{background:var(--ref-soft);text-decoration:underline}
.ref-rules-content{padding:4px 30px 0;background:var(--ref-surface);border-left:1px solid var(--ref-line);border-right:1px solid var(--ref-line)}
.ref-rules-section{padding:28px 0;border-bottom:1px solid var(--ref-line);scroll-margin-top:24px}
.ref-rules-section:last-child{border-bottom:0}
.ref-rules-section h2{font-size:22px;margin-bottom:12px}
.ref-rules-section p,.ref-rules-section li{max-width:72ch}
.ref-rules-section :is(ul,ol){display:grid;gap:10px;margin:12px 0 18px;padding-left:22px}
.ref-rules-section li::marker{color:var(--ref-accent);font-weight:700}
.ref-rules-footer{padding:0 30px 30px;background:var(--ref-surface);border:1px solid var(--ref-line);border-top:0;border-radius:0 0 16px 16px}
@media(max-width:720px){
  .ref-dashboard .ref-header{align-items:stretch}
  .ref-header-actions{justify-content:stretch;width:100%}
  .ref-header-actions .ref-button{flex:1}
  .ref-section-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}
  .ref-link-panel .ref-section-heading{flex-direction:column}
  .ref-dashboard .ref-metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}
  .ref-dashboard .ref-metrics>div{padding-left:14px}
  .ref-dashboard .ref-metrics>div:nth-child(odd){padding-left:0;border-left:0}
  .ref-terms-panel .ref-button{width:100%}
  .ref-rules{margin:0;padding:12px 12px 28px}
  .ref-rules-header{padding:22px 18px}
  .ref-rules-nav{padding:14px 18px}
  .ref-rules-nav a{flex:1 1 auto;justify-content:center}
  .ref-rules-content{padding:0 18px}
  .ref-rules-section{padding:24px 0}
  .ref-rules-section h2{font-size:20px}
  .ref-rules-footer{padding:0 18px 22px}
}
