/* v042 community challenges */
.challenge-page-shell,.challenge-detail-shell{padding:58px 0 92px}
.challenge-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:34px;align-items:center;margin-bottom:44px}
.challenge-hero h1{max-width:840px;margin:8px 0 14px;font-size:clamp(2.6rem,6vw,5rem);line-height:.98;letter-spacing:-.055em}
.challenge-hero p{max-width:760px;margin:0;color:#9ba3ad;font-size:1.02rem;line-height:1.75}
.challenge-hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:22px;background:linear-gradient(145deg,rgba(31,34,40,.96),rgba(20,22,26,.98));box-shadow:0 28px 60px rgba(0,0,0,.18)}
.challenge-hero-stats article{display:grid;justify-items:center;gap:7px;padding:22px 12px;border:1px solid rgba(255,255,255,.06);border-radius:16px;background:rgba(0,0,0,.1);text-align:center}.challenge-hero-stats b{font-size:1.45rem;color:#7fe5fb}.challenge-hero-stats span{color:#8e97a1;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.challenge-filter-bar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.challenge-filter-bar h2{margin:5px 0 0}
.challenge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.challenge-card{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.085);border-radius:20px;background:linear-gradient(160deg,rgba(29,32,38,.97),rgba(18,20,24,.99));color:inherit;text-decoration:none;box-shadow:0 18px 42px rgba(0,0,0,.16);transition:.2s ease}.challenge-card:hover{transform:translateY(-3px);border-color:rgba(95,222,246,.26);box-shadow:0 24px 52px rgba(0,0,0,.24)}
.challenge-card-cover{position:relative;min-height:185px;background:radial-gradient(circle at 25% 20%,rgba(91,221,246,.17),transparent 38%),linear-gradient(135deg,#222832,#17191d);background-size:cover;background-position:center}.challenge-card-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(15,17,20,.78))}.challenge-card-state,.challenge-card-badge{position:absolute;z-index:1;top:14px}.challenge-card-state{left:14px;padding:6px 9px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(10,12,15,.68);backdrop-filter:blur(8px);color:#b9c2cb;font:800 .65rem/1 Consolas,monospace;letter-spacing:.08em}.challenge-state-active .challenge-card-state{border-color:rgba(96,235,198,.23);background:rgba(37,136,107,.18);color:#82f0c8}.challenge-card-badge{right:14px;display:grid;place-items:center;width:38px;height:38px;border-radius:13px;border:1px solid rgba(103,224,246,.18);background:rgba(26,31,37,.76);color:#83e9ff;font-size:1.1rem}.challenge-card-body{display:grid;gap:11px;padding:18px}.challenge-card-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#7f8994;font-size:.7rem}.challenge-card-body h3{margin:0;font-size:1.25rem}.challenge-card-body p{margin:0;color:#9099a4;line-height:1.55}.challenge-card-rewards{display:flex;gap:7px;flex-wrap:wrap}.challenge-card-rewards span{padding:6px 8px;border:1px solid rgba(91,222,246,.12);border-radius:9px;background:rgba(91,222,246,.05);color:#a8dce8;font-size:.7rem}.challenge-card-link{margin-top:3px;color:#78e2f7;font-size:.78rem}
.challenge-empty{display:grid;justify-items:center;gap:7px;padding:60px 20px;border:1px dashed rgba(255,255,255,.1);border-radius:20px;background:rgba(0,0,0,.08);text-align:center}.challenge-empty>span{font-size:2.1rem;color:#70dff5}.challenge-empty h2,.challenge-empty h3{margin:0}.challenge-empty p{margin:0;color:#8e97a1}.challenge-empty-small{padding:36px 20px}
.challenge-detail-hero{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:28px;align-items:end;margin-bottom:20px;padding:30px;border:1px solid rgba(95,222,246,.13);border-radius:24px;background:radial-gradient(circle at 84% 0,rgba(91,222,246,.12),transparent 32%),linear-gradient(145deg,rgba(30,34,40,.98),rgba(20,22,26,.99));box-shadow:0 24px 58px rgba(0,0,0,.18)}.challenge-kicker{display:inline-flex;align-items:center;gap:8px;color:#7ce6fb;font:800 .7rem Consolas,monospace;letter-spacing:.08em}.challenge-live-dot{width:8px;height:8px;border-radius:50%;background:#66e7bb;box-shadow:0 0 16px rgba(102,231,187,.55)}.challenge-detail-copy h1{max-width:900px;margin:9px 0 12px;font-size:clamp(2.4rem,5vw,4.3rem);line-height:1;letter-spacing:-.045em}.challenge-detail-copy>p{max-width:850px;margin:0;color:#a2aab3;line-height:1.75}.challenge-detail-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.challenge-detail-meta span{padding:7px 9px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(0,0,0,.1);color:#919aa4;font-size:.75rem}.challenge-reward-card{display:grid;gap:10px;padding:18px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(9,12,15,.26)}.challenge-reward-card>div{display:flex;align-items:baseline;gap:10px;padding:12px;border-radius:13px;background:rgba(82,219,244,.05);border:1px solid rgba(82,219,244,.1)}.challenge-reward-card>div.winner{background:rgba(255,198,74,.055);border-color:rgba(255,198,74,.11)}.challenge-reward-card b{font-size:1.35rem;color:#7de7fb}.challenge-reward-card .winner b{color:#ffd06f}.challenge-reward-card span{color:#a1aab4;font-size:.75rem}.challenge-reward-card small{color:#7f8994;line-height:1.45}
.challenge-brief,.challenge-entry-panel{margin-top:14px}.challenge-brief>div{color:#b7bec6;line-height:1.75}.challenge-entry-form{display:grid;grid-template-columns:minmax(240px,.6fr) minmax(320px,1.4fr);gap:12px}.challenge-entry-form label{display:grid;gap:7px;color:#aeb5be;font-size:.78rem}.challenge-entry-form select,.challenge-entry-form textarea{width:100%;padding:11px 12px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:#121417;color:#f3f5f7;font:inherit}.challenge-entry-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.challenge-entries-section{margin-top:34px}.challenge-entry-grid{align-items:start}.challenge-entry-wrap{position:relative}.challenge-entry-wrap.is-winner{padding:7px;border:1px solid rgba(255,205,91,.27);border-radius:18px;background:linear-gradient(145deg,rgba(255,205,91,.07),rgba(0,0,0,0))}.challenge-winner-ribbon{position:absolute;z-index:4;top:16px;right:16px;padding:7px 9px;border-radius:999px;background:#e7b84c;color:#17191c;font:900 .68rem Consolas,monospace;box-shadow:0 8px 22px rgba(0,0,0,.22)}.challenge-entry-note{margin:8px 4px 0;padding:10px 12px;border:1px solid rgba(255,255,255,.065);border-radius:12px;background:rgba(0,0,0,.08);color:#929ba5;font-size:.76rem;line-height:1.5}
.challenge-dashboard-panel{background:radial-gradient(circle at 90% 0,rgba(255,199,77,.07),transparent 32%),linear-gradient(180deg,rgba(34,36,41,.96),rgba(25,27,31,.97))}.challenge-dashboard-stats span b{color:#ffd170!important}
.challenge-admin-layout{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(500px,1.25fr);gap:14px;align-items:start;margin-top:18px}.challenge-admin-cards{display:grid;gap:8px}.challenge-admin-card{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid rgba(255,255,255,.07);border-radius:13px;background:rgba(0,0,0,.09);color:inherit;text-decoration:none}.challenge-admin-card:hover,.challenge-admin-card.active{border-color:rgba(95,222,246,.22);background:rgba(91,222,246,.05)}.challenge-admin-card .challenge-card-state{position:static}.challenge-admin-card div{display:grid;gap:3px;min-width:0}.challenge-admin-card b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-admin-card small{color:#828c97;font-size:.7rem}.challenge-admin-card strong{color:#72e0f5}.challenge-admin-form{display:grid;gap:14px}.challenge-admin-mini-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.challenge-admin-mini-grid label{display:grid;gap:6px;padding:10px;border:1px solid rgba(255,255,255,.065);border-radius:11px;background:rgba(0,0,0,.08);color:#959ea8;font-size:.72rem}.challenge-admin-mini-grid input,.challenge-admin-mini-grid select{width:100%;padding:9px;border:1px solid rgba(255,255,255,.11);border-radius:8px;background:#121417;color:#f3f5f7}.challenge-delete-form{margin-top:12px;text-align:right}.challenge-delete-link{border:0;background:transparent;color:#e88c98;cursor:pointer}.challenge-admin-entries{margin-top:14px}.challenge-admin-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.challenge-admin-entry{display:flex;justify-content:space-between;gap:16px;padding:14px;border:1px solid rgba(255,255,255,.07);border-radius:14px;background:rgba(0,0,0,.08)}.challenge-admin-entry.winner{border-color:rgba(255,205,91,.24);background:rgba(255,205,91,.045)}.challenge-admin-entry h3{margin:4px 0}.challenge-admin-entry p,.challenge-admin-entry small{margin:0;color:#8e97a1}.challenge-admin-entry-actions{display:grid;align-content:start;gap:7px}.challenge-admin-entry-actions form{margin:0}
@media(max-width:1080px){.challenge-grid{grid-template-columns:repeat(2,1fr)}.challenge-hero,.challenge-detail-hero,.challenge-admin-layout{grid-template-columns:1fr}.challenge-reward-card{grid-template-columns:1fr 1fr}.challenge-reward-card>.card-label,.challenge-reward-card>small{grid-column:1/-1}.challenge-admin-mini-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.challenge-page-shell,.challenge-detail-shell{padding-top:34px}.challenge-grid,.challenge-admin-entry-grid,.challenge-entry-form,.challenge-reward-card{grid-template-columns:1fr}.challenge-hero-stats{grid-template-columns:1fr 1fr 1fr}.challenge-filter-bar{align-items:flex-start;flex-direction:column}.challenge-detail-hero{padding:20px}.challenge-entry-actions{grid-column:1;justify-content:stretch;flex-direction:column}.challenge-entry-actions .button{width:100%}.challenge-admin-mini-grid{grid-template-columns:1fr}.challenge-hero h1{font-size:clamp(2.45rem,14vw,4.2rem)}}
.community-challenge-banner{display:flex;align-items:center;justify-content:space-between;gap:26px;margin:26px auto 10px;padding:22px 24px;border:1px solid rgba(255,202,75,.15);border-radius:19px;background:radial-gradient(circle at 85% 0,rgba(255,202,75,.09),transparent 32%),linear-gradient(145deg,rgba(34,36,41,.96),rgba(24,26,30,.98))}.community-challenge-banner h2{margin:5px 0 7px}.community-challenge-banner p{max-width:760px;margin:0 0 12px;color:#949da7;line-height:1.55}.community-challenge-banner .button{white-space:nowrap}@media(max-width:760px){.community-challenge-banner{align-items:flex-start;flex-direction:column}.community-challenge-banner .button{width:100%}}

/* Admin: drag-free direct cover upload with a local thumbnail preview. */
.challenge-cover-upload-field{display:grid;gap:9px}.challenge-cover-upload-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,210px);gap:12px;align-items:stretch}.challenge-cover-file-picker{display:grid;align-content:center;gap:11px;min-height:122px;padding:16px;border:1px dashed rgba(94,222,246,.35);border-radius:12px;background:rgba(94,222,246,.055);cursor:pointer;color:#c4e9f0}.challenge-cover-file-picker input{width:100%;max-width:100%;font:inherit;color:#aebfc6}.challenge-cover-file-picker input::file-selector-button{border:1px solid rgba(94,222,246,.28);border-radius:8px;padding:8px 12px;background:#162d36;color:#a4ebfa;cursor:pointer;margin-right:8px}.challenge-cover-file-picker small{color:#899aa5;font-size:.73rem}.challenge-cover-preview{width:100%;height:122px;object-fit:cover;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:#101317}.challenge-cover-preview[hidden]{display:none}.challenge-cover-remove{display:flex;align-items:center;gap:7px;color:#a2aab4;font-size:.76rem}.challenge-cover-remove input{width:auto;accent-color:#49d9f4}@media(max-width:690px){.challenge-cover-upload-layout{grid-template-columns:1fr}.challenge-cover-preview{height:auto;max-height:220px}}

/* Admin re-auth reminder directly in the challenge editor. */
.challenge-admin-lock-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0;padding:18px 20px;border:1px solid rgba(249,188,89,.30);border-radius:14px;background:rgba(249,188,89,.055)}
.challenge-admin-lock-copy{min-width:0;max-width:650px}.challenge-admin-lock-copy strong{color:#f8d49b;font-size:.95rem}.challenge-admin-lock-copy p{margin:6px 0 0;color:#abb6c0;line-height:1.6;font-size:.84rem}.challenge-admin-unlock-form{display:grid;gap:7px;min-width:min(100%,320px)}.challenge-admin-unlock-form label{font-size:.75rem;color:#bac7cf}.challenge-admin-unlock-controls{display:flex;gap:8px}.challenge-admin-unlock-controls input{min-width:0;flex:1;padding:10px 11px;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:#111418;color:#f2f6f7;font:inherit}.challenge-admin-unlock-controls button{white-space:nowrap}.challenge-admin-unlock-error{color:#ff9e9e;font-size:.75rem;line-height:1.4}.challenge-admin-lock-banner.is-unlocked{border-color:rgba(102,223,179,.25);background:rgba(102,223,179,.05)}.challenge-admin-lock-banner.is-unlocked .challenge-admin-lock-copy strong{color:#8deac5}
@media(max-width:860px){.challenge-admin-lock-banner{align-items:stretch;flex-direction:column}.challenge-admin-unlock-form{width:100%}}
@media(max-width:420px){.challenge-admin-unlock-controls{flex-direction:column}}

/* v5: Compact challenge detail – full-width title, image edge-to-edge,
   no letterboxing, readable full-width brief, mobile-first fallbacks. */
.challenge-detail-shell{padding-top:25px;padding-bottom:62px}
.challenge-detail-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px;color:#85939e;font-size:.79rem}
.challenge-detail-nav a{display:inline-flex;align-items:center;gap:6px;color:#a8e7f3;font-weight:700;transition:color .2s ease}
.challenge-detail-nav a:hover,.challenge-detail-nav a:focus-visible{color:#fff}
.challenge-detail-nav>span{font-size:.72rem;letter-spacing:.045em}
.challenge-detail-nav>span span{padding:0 6px;color:#566776}
.challenge-detail-hero{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);gap:0;align-items:stretch;overflow:hidden;margin:0 0 16px;padding:0;border:1px solid rgba(88,204,236,.20);border-radius:20px;background:linear-gradient(135deg,#16222b,#171c24 53%,#171b21);box-shadow:0 20px 48px rgba(0,0,0,.22)}
.challenge-detail-hero--plain{grid-template-columns:minmax(0,1fr)}
.challenge-detail-heading{grid-column:1/-1;display:flex;align-items:center;gap:20px;min-width:0;padding:16px 21px;background:linear-gradient(100deg,rgba(15,31,41,.98),rgba(24,29,36,.98));border-bottom:1px solid rgba(255,255,255,.055)}
.challenge-detail-heading .challenge-kicker{display:inline-flex;align-items:center;flex:none;gap:7px;color:#78e8ee;font-size:.62rem;letter-spacing:.095em;white-space:nowrap}
.challenge-detail-heading h1{min-width:0;max-width:none;margin:0;font-size:clamp(1.55rem,2.35vw,2.3rem);line-height:1.14;letter-spacing:-.032em;overflow-wrap:normal;hyphens:auto;text-wrap:pretty}
.challenge-detail-art{position:relative;grid-column:1;min-width:0;min-height:0;margin:0;overflow:hidden;aspect-ratio:16/9;background:#090f19}
.challenge-detail-art img{display:block;position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:center}
.challenge-detail-info{grid-column:2;display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-width:0;padding:17px 19px;background:radial-gradient(circle at 85% 0,rgba(54,195,222,.11),transparent 54%),rgba(18,21,27,.82)}
.challenge-detail-hero--plain .challenge-detail-info{grid-column:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.45fr);gap:16px;padding:22px}
.challenge-detail-hero--plain .challenge-detail-buttons{grid-column:1/-1}
.challenge-detail-copy>p{margin:0;max-width:65ch;color:#b6c4ce;font-size:.83rem;line-height:1.48;white-space:pre-line;overflow-wrap:anywhere}
.challenge-detail-meta{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}
.challenge-detail-meta span{padding:5px 7px;border:1px solid rgba(255,255,255,.09);border-radius:7px;background:rgba(0,0,0,.12);color:#a7b7c3;font-size:.69rem}
.challenge-detail-meta span span{padding:0;border:0;background:none}
.challenge-reward-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:0;padding:0;border:0;background:none}
.challenge-reward-card>.card-label{grid-column:1/-1;margin:0;color:#8b9faa;letter-spacing:.10em;font-size:.64rem}
.challenge-reward-card>div{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;padding:8px 10px;border:1px solid rgba(94,224,241,.15);border-radius:10px;background:rgba(53,191,220,.08)}
.challenge-reward-card>div.winner{background:rgba(246,189,84,.07);border-color:rgba(255,198,74,.17)}
.challenge-reward-card b{color:#8ee9ff;font-size:1.06rem;line-height:1.15;white-space:nowrap}
.challenge-reward-card .winner b{color:#ffd27c}
.challenge-reward-card span{font-size:.69rem;line-height:1.3;color:#a0b0be}
.challenge-detail-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:0}
.challenge-detail-buttons .button{display:inline-flex;justify-content:center;align-items:center;gap:10px;min-height:37px;padding:8px 15px;font-size:.82rem}
.challenge-brief,.challenge-entry-panel{scroll-margin-top:90px}
.challenge-brief{display:block;margin-top:0;padding:22px 26px;border:1px solid rgba(255,255,255,.08);border-radius:17px;background:linear-gradient(160deg,rgba(34,39,47,.95),rgba(20,24,29,.98))}
.challenge-section-heading{display:flex;align-items:center;gap:16px;margin:0 0 16px;padding:0 0 12px;border-bottom:1px solid rgba(255,255,255,.07)}
.challenge-section-heading .card-label{color:#8b9ba6;white-space:nowrap}
.challenge-section-heading h2{margin:0;font-size:1.45rem;line-height:1.25;letter-spacing:-.025em}
.challenge-brief>.challenge-brief-content{min-width:0;color:#b6c1cc;font-size:.91rem;line-height:1.6;overflow-wrap:anywhere}
.challenge-brief-content p{margin:0 0 12px}
.challenge-brief-content h3{margin:18px 0 8px;padding-top:12px;border-top:1px solid rgba(255,255,255,.07);color:#f0f5f8;font-size:1.02rem;line-height:1.4;font-weight:750}
.challenge-brief-content h3:first-child{margin-top:0;padding-top:0;border-top:0}
.challenge-brief-content strong{color:#effbff;font-weight:700}
.challenge-brief-content ul,.challenge-brief-content ol{margin:3px 0 14px;padding-left:0;list-style:none;display:grid;gap:5px}
.challenge-brief-content li{position:relative;min-width:0;padding:6px 12px 6px 34px;border-radius:8px;border:1px solid rgba(255,255,255,.045);background:rgba(6,16,22,.21);line-height:1.48}
.challenge-brief-content ul li:before{content:'◆';position:absolute;left:13px;top:9px;color:#51dbee;font-size:.6rem}
.challenge-brief-content ol{counter-reset:challenge-steps}
.challenge-brief-content ol li{counter-increment:challenge-steps}
.challenge-brief-content ol li:before{content:counter(challenge-steps);position:absolute;left:10px;top:6px;display:grid;place-items:center;min-width:19px;height:19px;border-radius:6px;background:rgba(65,200,235,.13);color:#83eaff;font-size:.7rem;font-weight:800}
.challenge-entries-section{scroll-margin-top:90px}
@media(max-width:1020px){
 .challenge-detail-hero{grid-template-columns:1fr}
 .challenge-detail-heading{grid-column:1;flex-wrap:wrap;gap:9px;padding:15px 18px}
 .challenge-detail-heading h1{flex-basis:100%;font-size:clamp(1.7rem,4vw,2.25rem)}
 .challenge-detail-art{grid-column:1;aspect-ratio:16/9}
 .challenge-detail-info{grid-column:1;gap:13px;padding:19px}
 .challenge-detail-hero--plain .challenge-detail-info{grid-template-columns:1fr}
}
@media(max-width:600px){
 .challenge-detail-shell{padding-top:17px;padding-bottom:42px}
 .challenge-detail-nav>span{display:none}
 .challenge-detail-hero{border-radius:15px}
 .challenge-detail-heading{padding:13px 15px}
 .challenge-detail-heading h1{font-size:clamp(1.65rem,7vw,2.2rem)}
 .challenge-detail-info{padding:15px;gap:12px}
 .challenge-detail-copy>p{font-size:.87rem}
 .challenge-detail-buttons .button{width:100%}
 .challenge-reward-card b{font-size:1.04rem}
 .challenge-reward-card>div{padding:9px}
 .challenge-brief{padding:17px 16px}
 .challenge-section-heading{flex-wrap:wrap;gap:5px 12px}
 .challenge-section-heading h2{font-size:1.25rem}
 .challenge-brief-content{font-size:.87rem}
 .challenge-brief-content li{padding-right:8px}
}
