/* Tufflips Acres: challenges as camp merit badges */
#challenges-modal .modal-content.camp-card{width:min(560px,96vw);padding:0;overflow:hidden;border:4px solid #5a3818;border-radius:20px;background:#0e1a12;box-shadow:0 0 0 3px #1b0f06,0 12px 40px rgba(0,0,0,.75);max-height:92vh;overflow-y:auto;text-align:left;}
.cp-head{position:relative;height:170px;background:linear-gradient(180deg,#0a1230 0%,#1d2b57 55%,#d77a3a 100%);overflow:hidden;}
.cp-head::before{content:"";position:absolute;inset:0;background:radial-gradient(1.5px 1.5px at 12% 20%,#fff,transparent),radial-gradient(1.5px 1.5px at 30% 38%,#fff,transparent),radial-gradient(1px 1px at 55% 14%,#fff,transparent),radial-gradient(1.5px 1.5px at 78% 26%,#fff,transparent),radial-gradient(1px 1px at 90% 12%,#fff,transparent);}
.cp-head::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;background:#14301a;border-top:3px solid #0b1e10;}
.cp-tree{position:absolute;bottom:26px;width:50px;height:90px;background:#0e2a17;clip-path:polygon(50% 0,100% 55%,72% 55%,100% 100%,0 100%,28% 55%,0 55%);}
.cp-tree.t1{left:14px}.cp-tree.t2{left:56px;height:70px;opacity:.85}.cp-tree.t3{right:16px;height:100px}
.cp-tent{position:absolute;right:92px;bottom:28px;width:84px;height:56px;background:#c9742f;clip-path:polygon(50% 0,100% 100%,0 100%);z-index:1;}
.cp-tent::after{content:"";position:absolute;left:36px;top:24px;width:12px;height:32px;background:#3a1d0a;clip-path:polygon(50% 0,100% 100%,0 100%);}
.cp-fire{position:absolute;left:96px;bottom:28px;width:26px;height:34px;z-index:2;}
.cp-fire i{position:absolute;bottom:0;left:50%;width:14px;height:26px;margin-left:-7px;border-radius:50% 50% 50% 50%/70% 70% 30% 30%;background:linear-gradient(180deg,#fff2a0,#ff9a3c 60%,#e0361f);transform-origin:50% 100%;animation:cp-flame .7s ease-in-out infinite alternate;}
.cp-fire i:nth-child(2){left:30%;height:18px;animation-delay:-.25s}.cp-fire i:nth-child(3){left:72%;height:20px;animation-delay:-.45s}
@keyframes cp-flame{from{transform:scale(1,1) rotate(-3deg)}to{transform:scale(.86,1.15) rotate(3deg)}}
.cp-sign{position:absolute;left:50%;top:22px;transform:translateX(-50%);z-index:3;padding:8px 24px 10px;text-align:center;background:repeating-linear-gradient(180deg,#8a5a2b 0 13px,#744a22 13px 15px);border:3px solid #3a230d;border-radius:6px;box-shadow:0 5px 0 #1b0f06,0 8px 16px rgba(0,0,0,.5);white-space:nowrap;}
.cp-sign::before,.cp-sign::after{content:"";position:absolute;bottom:-34px;width:8px;height:34px;background:#5a3818;}
.cp-sign::before{left:20px}.cp-sign::after{right:20px}
.cp-sign small{display:block;font:bold 9px 'Arial Black',sans-serif;letter-spacing:4px;color:#e7c78f}
.cp-sign span{font-family:'Arial Black',sans-serif;font-size:clamp(18px,5vw,26px);letter-spacing:3px;color:#ffe9bd;text-shadow:0 2px 0 #1b0f06,1px 1px 0 #1b0f06;}
.cp-x{position:absolute;right:10px;top:10px;z-index:4;width:32px;height:32px;border-radius:50%;border:2px solid #3a230d;background:#e7c78f;color:#3a230d;font-weight:bold;cursor:pointer;}
.cp-body{padding:14px 16px 18px;}
.cp-motto{font:italic 12px/1.4 Georgia,serif;color:#e7c78f;text-align:center;margin-bottom:12px;}
.cp-count{display:flex;align-items:center;gap:10px;margin-bottom:12px;font:bold 10px 'Arial Black',sans-serif;letter-spacing:2px;color:#9be37a;}
.cp-count-bar{flex:1;height:9px;border-radius:6px;background:#06100a;border:1px solid #2c5a34;overflow:hidden}
.cp-count-bar i{display:block;height:100%;background:linear-gradient(90deg,#6fcf5a,#ffe070);transition:width .4s}
.cp-count b{color:#ffe070}
.cp-list{display:flex;flex-direction:column;gap:10px;}
.cp-badge{--cc:#e74c3c;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:14px;background:linear-gradient(90deg,color-mix(in srgb,var(--cc) 16%,#0f1a13),#0f1a13 60%);border:1px solid color-mix(in srgb,var(--cc) 45%,#000);transition:transform .12s,border-color .12s;}
.cp-badge:hover{transform:translateX(3px);border-color:var(--cc);}
.cp-patch{position:relative;flex:0 0 62px;width:62px;height:62px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:conic-gradient(from 0deg,var(--cc),color-mix(in srgb,var(--cc) 40%,#000),var(--cc));box-shadow:0 0 0 3px #0b1510,0 0 0 5px color-mix(in srgb,var(--cc) 60%,#000),0 4px 8px rgba(0,0,0,.5);}
.cp-patch-ico{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0f1a13;border:2px dashed color-mix(in srgb,var(--cc) 70%,#fff);}
.cp-patch-ico img{width:28px;height:28px;object-fit:contain;filter:drop-shadow(0 0 4px var(--cc));}
.cp-stamp{position:absolute;right:-6px;bottom:-4px;width:24px;height:24px;border-radius:50%;background:#6fcf5a;color:#06100a;font:bold 14px/24px sans-serif;text-align:center;box-shadow:0 0 0 2px #0b1510;font-style:normal;}
.cp-badge:not(.done) .cp-patch{filter:saturate(.45) brightness(.85)}
.cp-badge.live .cp-patch,.cp-badge.done .cp-patch{filter:none}
.cp-info{flex:1;min-width:0}
.cp-act{font:bold 9px 'Arial Black',sans-serif;letter-spacing:1.5px;color:var(--cc)}
.cp-name{font:bold 14px 'Arial Black',sans-serif;color:#fff;margin-top:2px}
.cp-desc{font:11px/1.35 sans-serif;color:#9fb3a5;margin-top:2px}
.cp-rew{display:flex;align-items:center;gap:6px;margin-top:5px;font:11px sans-serif;color:#9be37a}
.cp-rew img{width:14px;height:14px}.cp-rew b{font-family:'Arial Black',sans-serif;font-size:11px}.cp-rew span{margin-left:4px;color:#6f8577;font-size:10px}
.cp-act-col{flex:0 0 auto;text-align:center}
.cp-go{padding:9px 14px;border-radius:999px;border:2px solid var(--cc);background:#06100a;color:var(--cc);font:bold 10px 'Arial Black',sans-serif;letter-spacing:1px;cursor:pointer;white-space:nowrap}
.cp-go:hover{background:var(--cc);color:#06100a}
.cp-earned{font:bold 8px/1.3 'Arial Black',sans-serif;letter-spacing:1px;color:#6fcf5a}
.cp-live{font:bold 10px 'Arial Black',sans-serif;color:#ff4d4d;animation:cp-blink .8s infinite alternate}
@keyframes cp-blink{to{opacity:.35}}
/* active challenge */
.cp-active{--cc:#e74c3c;margin-bottom:14px;padding:14px;border-radius:16px;text-align:center;background:radial-gradient(ellipse at 50% 0,color-mix(in srgb,var(--cc) 25%,#0f1a13),#0a120d);border:2px solid var(--cc);box-shadow:0 0 22px color-mix(in srgb,var(--cc) 45%,transparent);}
.cp-whistle{font:bold 11px 'Arial Black',sans-serif;letter-spacing:2px;color:#ffe070}
.cp-ring{--p:0;position:relative;width:132px;height:132px;margin:10px auto;border-radius:50%;background:conic-gradient(var(--cc) calc(var(--p)*1%),#1a2a20 0);}
.cp-ring-in{position:absolute;inset:10px;border-radius:50%;background:#0a120d;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.cp-ring-in b{font:32px 'Arial Black',sans-serif;color:#fff}.cp-ring-in small{font:bold 12px sans-serif;color:#9be37a}
.cp-active-name{font:bold 16px 'Arial Black',sans-serif;color:var(--cc)}
.cp-bar{height:8px;border-radius:6px;background:#06100a;margin:10px 0 6px;overflow:hidden}.cp-bar span{display:block;height:100%;background:var(--cc);transition:width .3s}
.cp-hint{font:11px sans-serif;color:#9fb3a5}
/* tabs + weekly missions */
.cp-tabs{display:flex;gap:6px;margin:0 0 12px;padding:4px;border-radius:14px;background:#06100a;border:1px solid #2c5a34}
.cp-tab{position:relative;flex:1;padding:10px 6px;border:0;border-radius:10px;background:transparent;color:#7f9a86;font:bold 10px 'Arial Black',sans-serif;letter-spacing:1px;cursor:pointer}
.cp-tab.on{background:linear-gradient(180deg,#8a5a2b,#6a431c);color:#ffe9bd;box-shadow:0 2px 0 #1b0f06}
.cp-tab em{position:absolute;right:6px;top:-6px;min-width:18px;height:18px;border-radius:9px;background:#ff4d4d;color:#fff;font:bold 10px/18px sans-serif;font-style:normal;text-align:center}
.cp-week{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:10px;font:bold 9px 'Arial Black',sans-serif;letter-spacing:1px;color:#9fb3a5}
.cp-week b{color:#ffe070}
.cp-emoji{font-size:24px;line-height:1}
.cp-mis.ready{box-shadow:0 0 0 2px #ffe070,0 0 18px rgba(255,224,112,.35)}
.cp-mis .cp-patch{filter:none}
.cp-prog{position:relative;height:16px;margin-top:6px;border-radius:8px;background:#06100a;border:1px solid #2c5a34;overflow:hidden}
.cp-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--cc),color-mix(in srgb,var(--cc) 55%,#fff));transition:width .4s}
.cp-prog span{position:absolute;inset:0;text-align:center;font:bold 10px/16px sans-serif;color:#fff;text-shadow:0 1px 2px #000}
.cp-wait{font:bold 12px 'Arial Black',sans-serif;color:#6f8577}
.cp-claim{border-color:#ffe070;color:#06100a;background:#ffe070;animation:cp-pulse 1s infinite alternate}
.cp-claim:hover{background:#fff2a0;color:#06100a}
.cp-claim:disabled{animation:none;background:#06100a;color:#4d6455;border-color:#2c5a34;cursor:not-allowed}
@keyframes cp-pulse{to{transform:scale(1.06)}}
.cp-chest{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px;border-radius:14px;background:repeating-linear-gradient(135deg,#4a2f14 0 10px,#3f280f 10px 20px);border:2px solid #8a5a2b;box-shadow:inset 0 0 0 2px #1b0f06}
.cp-chest.ready{border-color:#ffe070;box-shadow:inset 0 0 0 2px #1b0f06,0 0 22px rgba(255,224,112,.45)}
.cp-chest.open{opacity:.6}
.cp-chest-ico{flex:0 0 54px;height:54px;border-radius:12px;background:#1b0f06;display:flex;align-items:center;justify-content:center;font-size:32px}
.cp-chest-info{flex:1;min-width:0}.cp-chest-info b{display:block;font:bold 12px 'Arial Black',sans-serif;color:#ffe9bd;letter-spacing:1px}
.cp-chest-info small{display:block;margin-top:2px;font:10px sans-serif;color:#d9bf8c}
.cp-chest-rew{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.cp-chest-rew span{display:flex;align-items:center;gap:3px;font:bold 11px sans-serif;color:#9be37a}.cp-chest-rew img{width:14px;height:14px}
.cp-score{display:flex;align-items:center;gap:14px;margin-bottom:12px;padding:10px 12px;border-radius:14px;background:#06100a;border:1px solid #2c5a34}
.cp-score div{flex:1}.cp-score small{display:block;font:bold 8px 'Arial Black',sans-serif;letter-spacing:1.5px;color:#7f9a86}
.cp-score b{display:block;margin-top:2px;font:20px 'Arial Black',sans-serif;color:#ffe070}
.cp-score .cp-go{flex:0 0 auto;--cc:#ffe070}
@media(max-width:480px){.cp-badge{flex-wrap:wrap}.cp-act-col{width:100%}.cp-go{width:100%}.cp-tent,.cp-fire{display:none}}

.cp-stations{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}
.cp-st{padding:8px 4px;border-radius:10px;text-align:center;background:#0b150e;border:1px dashed #2c5a34;opacity:.7}
.cp-st.on{opacity:1;border:1px solid #6fcf5a;background:linear-gradient(180deg,#143a1c,#0b150e)}
.cp-st i{font-style:normal;font-size:20px}.cp-st b{display:block;margin-top:2px;font:bold 9px 'Arial Black',sans-serif;color:#fff}
.cp-st small{display:block;margin-top:2px;font:8px/1.2 sans-serif;color:#9fb3a5}.cp-st.on small{color:#9be37a}
@media(max-width:480px){.cp-stations{grid-template-columns:repeat(2,1fr)}}

.cp-chest-ico{flex:0 0 72px;height:72px}
.cp-chest-ico img{max-width:100%;max-height:100%;object-fit:contain;image-rendering:pixelated}
