/* V1.51. A Rewards category, not a replacement shop or a new currency. */
#shopGrid.coin-challenge-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.cv-section-heading,.cv-rules,.cv-notice,.cv-error {grid-column:1/-1;min-width:0;}
.cv-refresh {flex:none;min-height:44px;}
.cv-section-heading {display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0 0;}
#shopGrid.coin-challenge-grid > .cv-section-heading:first-child {padding-top:0;}
.cv-section-heading h3 {margin:0;font-size:18px;letter-spacing:-.25px;}
.cv-section-heading>span {font-size:12px;color:#a8b5c6;}
.cv-card {min-width:0;overflow:hidden;border-color:rgba(188,255,54,.15);background:linear-gradient(155deg,rgba(36,49,33,.5),rgba(18,22,32,.98) 50%);}
.cv-card-top {display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 22px 0;}
.cv-icon {display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;border:1px solid rgba(188,255,54,.25);border-radius:14px;background:rgba(188,255,54,.07);color:#bcff36;}
.cv-icon svg {width:28px;height:28px;}
.cv-status {padding:6px 10px;border-radius:20px;border:1px solid rgba(164,185,156,.16);color:#b9c6b9;font-size:10px;line-height:1.4;font-weight:650;}
.cv-status.is-active {color:#c8ff71;background:rgba(188,255,54,.08);border-color:rgba(188,255,54,.3);}
.cv-status.is-completed {color:#73efb2;border-color:rgba(115,239,178,.3);}
.cv-card-copy {padding:20px 22px 22px;}
.cv-period {font-size:9px;font-weight:800;letter-spacing:.12em;color:#a8c17f;}
.cv-card-copy h3 {font-size:21px;line-height:1.3;letter-spacing:-.4px;margin:8px 0;}
.cv-card-copy .cv-goal {margin:0;min-height:44px;font-size:12px;line-height:1.7;color:#b4c0d0;}
.cv-economy {display:grid;grid-template-columns:1fr auto 1.4fr;align-items:center;gap:12px;padding:18px 0 13px;margin-top:8px;border-top:1px solid rgba(255,255,255,.07);}
.cv-economy small,.cv-confirm-economy small {display:block;color:#a8b5c6;font-size:10px;margin-bottom:7px;}
.cv-economy strong {font-size:24px;line-height:1.3;font-weight:800;font-variant-numeric:tabular-nums;}
.cv-economy strong span {font-size:12px;}
.cv-reward strong {color:#c8ff38;}
.cv-arrow {color:#75846b;font-size:20px;}
.cv-gain {display:flex;justify-content:space-between;gap:8px;border-radius:8px;padding:9px 10px;background:rgba(188,255,54,.055);font-size:11px;color:#adb9a5;}
.cv-gain strong {color:#c8ff71;font-variant-numeric:tabular-nums;white-space:nowrap;}
.cv-progress-copy {display:flex;justify-content:space-between;gap:12px;margin:18px 0 7px;font-size:11px;color:#93a0b1;}
.cv-progress-copy strong {font-weight:600;color:#bdc8d5;font-variant-numeric:tabular-nums;}
.cv-progress {height:5px;background:rgba(255,255,255,.06);border-radius:4px;overflow:hidden;}
.cv-progress span {display:block;height:100%;background:linear-gradient(90deg,#c8ff38,#62efac);border-radius:4px;}
.cv-card-copy .cv-timing {font-size:10px;color:#9faaac;min-height:30px;line-height:1.6;margin:10px 0 12px;}
/* Reuse the shared Rewards .shop-action component for every card state.
   Match the dice purchase row's accessible height; inherit its colors, type,
   coin sizing, hover, disabled and equipped treatments from styles.css. */
.cv-action { min-height:44px; margin:0; }
.cv-rules {border-top:1px solid rgba(255,255,255,.09);padding:20px 0 0;margin-top:12px;}
.cv-rules-heading {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;}
.cv-rules strong {font-size:13px;color:#ccd5df;}
.cv-rules p {font-size:12px;color:#96a3b5;line-height:1.8;max-width:900px;margin:8px 0;}
.cv-notice,.cv-error {font-size:13px;line-height:1.6;padding:14px 16px;border:1px solid rgba(188,255,54,.2);border-radius:12px;color:#d6e5c1;background:rgba(188,255,54,.03);}
.cv-error {border-color:rgba(255,138,152,.3);color:#ffb8c0;}
.cv-error button {margin-left:8px;min-height:44px;color:inherit;border:1px solid currentColor;border-radius:8px;background:transparent;padding:8px 14px;}
.cv-confirm-economy {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:rgba(188,255,54,.04);border:1px solid rgba(188,255,54,.17);border-radius:16px;padding:20px;}
.cv-confirm-economy strong {font-size:24px;font-variant-numeric:tabular-nums;line-height:1.3;}
.cv-confirm-economy div:nth-child(n+2) strong {color:#c8ff38;}
.cv-confirm-balance {color:#a8b5c6;font-size:13px;line-height:1.6;margin:18px 0;}
.cv-confirm-rules {padding:14px 16px;border-left:2px solid #c8ff38;color:#b6c2d0;font-size:12px;line-height:1.8;background:rgba(188,255,54,.03);}
.cv-confirm-error {color:#ffb8c0;font-size:13px;line-height:1.6;}
.cv-confirm-error:empty {display:none;}
.cv-refresh:focus-visible,.cv-error button:focus-visible {outline:2px solid #c8ff38;outline-offset:4px;}
@media(max-width:1000px) and (min-width:601px){#shopGrid.coin-challenge-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){
 #shopGrid.coin-challenge-grid {grid-template-columns:minmax(0,1fr);gap:14px;}
 .cv-section-heading h3 {font-size:17px;}
 .cv-section-heading>span {font-size:11px;}
 .cv-card-top {padding:18px 18px 0;}
 .cv-card-copy {padding:16px 18px 18px;}
 .cv-card-copy .cv-goal {min-height:0;}
 .cv-confirm-economy {gap:8px;padding:14px 10px;}
 .cv-confirm-economy strong {font-size:20px;}
 .cv-confirm-economy small {font-size:9px;line-height:1.5;min-height:27px;}
}
@media(prefers-reduced-motion:reduce){.cv-card,.cv-action {transition:none;}}
@media(max-width:720px){
 .vault-tabs {display:flex;width:100%;max-width:100%;overflow-x:auto;white-space:nowrap;scrollbar-width:thin;grid-template-columns:none;border-radius:16px;}
 .vault-tabs .vault-tab {flex:0 0 auto;padding:12px 10px;font-size:11px;min-height:44px;}
}
