/* Shared controls for downloadable cards and the daily challenge. Brand tokens come from tokens.js. */
[hidden] { display: none !important; }
.aud-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 20px; border:1px solid var(--border-accent); border-radius:12px; background:var(--bg-card); color:var(--ink); font:600 .9rem 'DM Sans',sans-serif; text-decoration:none; cursor:pointer; }
.aud-btn:hover { border-color:var(--burgundy); background:var(--bg-card-hover); }
.aud-btn:focus-visible, .challenge-option:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.aud-btn:disabled { opacity:.6; cursor:wait; }
.aud-btn-primary { background:var(--burgundy-deep); color:#fff; border-color:var(--burgundy); }
.aud-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.card-dialog { width:min(600px,calc(100% - 28px)); max-height:90dvh; padding:24px; margin:auto; border:1px solid var(--border-accent); border-radius:20px; background:var(--cream); color:var(--ink); overflow:auto; }
.card-dialog::backdrop { background:rgba(8,7,20,.78); }
.card-dialog h2 { font:700 1.5rem 'Playfair Display',Georgia,serif; margin:0; }
.card-dialog p { margin:12px 0; color:var(--slate); }
.card-dialog img { display:block; max-width:100%; max-height:55dvh; width:auto; height:auto; margin:20px auto; border-radius:12px; }
.card-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.card-dialog-close { padding:8px 12px; }
.challenge-promo { margin:24px 0; padding:24px; border:1px solid var(--border-accent); border-radius:var(--radius-lg); background:linear-gradient(130deg,var(--burgundy-glow),var(--bg-card)); }
.challenge-promo h2 { font:700 1.55rem 'Playfair Display',Georgia,serif; margin:4px 0 8px; }
.challenge-promo p { color:var(--slate); margin-bottom:16px; }
.challenge-main { max-width:780px; margin:36px auto 0; padding:0 24px; }
.challenge-main h1 { font:900 clamp(2.1rem,6vw,3.5rem)/1.08 'Playfair Display',Georgia,serif; letter-spacing:-.025em; margin:12px 0; }
.challenge-main .lede { font-size:1.1rem; color:var(--slate); max-width:620px; }
.challenge-kicker { font:700 .73rem 'DM Sans',sans-serif; letter-spacing:.13em; text-transform:uppercase; color:var(--burgundy); }
.challenge-meta { color:var(--text-muted); font:500 .82rem 'DM Sans',sans-serif; margin:18px 0 26px; }
.challenge-panel { background:var(--bg-card); border:1px solid var(--border-accent); border-radius:22px; padding:clamp(22px,5vw,40px); margin:26px 0; }
.challenge-panel h2 { font:700 1.25rem 'Playfair Display',Georgia,serif; margin:0 0 20px; }
.challenge-claim { font:400 clamp(1.25rem,4vw,1.7rem)/1.5 'Source Serif 4',Georgia,serif; margin:22px 0 30px; overflow-wrap:anywhere; }
.challenge-options { display:grid; gap:12px; }
.challenge-option { text-align:left; padding:16px 18px; border:1px solid var(--border-accent); border-radius:12px; background:var(--bg-deep); color:var(--ink); font:600 1rem 'DM Sans',sans-serif; cursor:pointer; min-height:52px; }
.challenge-option:hover:not(:disabled) { border-color:var(--burgundy); }
.challenge-option:disabled { cursor:default; }
.challenge-option[data-correct] { border-color:var(--sage); background:var(--sage-dim); }
.challenge-option[data-wrong] { border-color:var(--burgundy); background:var(--burgundy-glow); }
.challenge-option small { display:block; margin-top:6px; font-size:.78rem; font-weight:400; }
.challenge-reveal { margin-top:26px; padding-top:24px; border-top:1px solid var(--border-accent); }
.challenge-reveal p { margin:12px 0; }
.challenge-reveal a, .challenge-review a, .challenge-note a { color:var(--burgundy-link); }
.challenge-score { font:900 clamp(3rem,10vw,5rem) 'Playfair Display',Georgia,serif; color:var(--gold); margin:8px 0; }
.challenge-blocks { font-size:1.6rem; letter-spacing:.15em; margin:16px 0; }
.challenge-review { padding:24px 0; border-top:1px solid var(--border-accent); }
.challenge-review h3 { font:600 1rem 'DM Sans',sans-serif; margin-bottom:10px; }
.challenge-review p { margin:10px 0; }
.challenge-note { font-size:.9rem; color:var(--slate); line-height:1.7; margin:24px 0; }
.challenge-status { min-height:1.5em; font:500 .85rem 'DM Sans',sans-serif; color:var(--sage); }
.challenge-new-day { padding:14px 18px; border:1px solid var(--gold); border-radius:12px; margin:18px 0; }
@media (prefers-reduced-motion:reduce) { .challenge-main *, .card-dialog * { scroll-behavior:auto; transition:none; } }
