/* Crypto Affiliate Core — component styles. Themes override the variables. */
:root {
  --cac-accent: #f5b301;
  --cac-accent-fg: #111;
  --cac-bg: #ffffff;
  --cac-bg-2: #f5f6f8;
  --cac-fg: #111318;
  --cac-muted: #5b6270;
  --cac-border: #e3e6eb;
  --cac-good: #1f9d55;
  --cac-mid: #e0a100;
  --cac-bad: #c8322b;
  --cac-radius: 14px;
  --cac-shadow: 0 6px 24px rgba(0,0,0,.08);
  --cac-font: inherit;
}
.cac-toplist, .cac-table-wrap, .cac-review, .cac-faq, .cac-proscons { font-family: var(--cac-font); color: var(--cac-fg); }

/* Buttons */
.cac-btn { display:inline-flex; align-items:center; gap:.4em; padding:.8em 1.3em; border-radius:999px; font-weight:700; text-decoration:none; line-height:1; white-space:nowrap; transition:transform .12s, box-shadow .12s; }
.cac-btn--primary { background:var(--cac-accent); color:var(--cac-accent-fg); box-shadow:0 4px 14px color-mix(in srgb, var(--cac-accent) 40%, transparent); }
.cac-btn--primary:hover { transform:translateY(-1px); }
.cac-link { font-size:.9em; color:var(--cac-muted); text-decoration:underline; }

/* Score badge */
.cac-score { display:inline-flex; flex-direction:column; align-items:center; line-height:1; min-width:4.2em; }
.cac-score strong { font-size:1.9em; font-weight:800; }
.cac-score small { color:var(--cac-muted); margin-top:-.2em; }
.cac-score em { font-style:normal; font-size:.75em; margin-top:.35em; padding:.2em .6em; border-radius:999px; background:var(--cac-bg-2); }
.cac-score.is-high strong { color:var(--cac-good); } .cac-score.is-mid strong { color:var(--cac-mid); } .cac-score.is-low strong { color:var(--cac-bad); }

/* Disclosure / RG */
.cac-disclosure { font-size:.82em; color:var(--cac-muted); border-left:3px solid var(--cac-border); padding:.5em .9em; margin:0 0 1.2em; }
.cac-rg { display:flex; align-items:center; gap:.8em; font-size:.85em; color:var(--cac-muted); padding:1em; margin-top:2em; border-top:1px solid var(--cac-border); }
.cac-rg__age { display:inline-grid; place-items:center; width:2.4em; height:2.4em; border-radius:50%; border:2px solid var(--cac-bad); color:var(--cac-bad); font-weight:800; font-size:.9em; flex:none; }

/* Cards */
.cac-toplist--cards { display:grid; gap:1rem; }
.cac-card { position:relative; display:grid; grid-template-columns:150px 1fr 190px; gap:1.2rem; align-items:center; padding:1.2rem 1.4rem; background:var(--cac-bg); border:1px solid var(--cac-border); border-radius:var(--cac-radius); box-shadow:var(--cac-shadow); }
.cac-card:first-child { border-color:var(--cac-accent); outline:2px solid color-mix(in srgb, var(--cac-accent) 35%, transparent); }
.cac-card__rank { position:absolute; top:-10px; left:14px; background:var(--cac-fg); color:var(--cac-bg); font-weight:800; font-size:.8em; padding:.25em .7em; border-radius:999px; }
.cac-card:first-child .cac-card__rank { background:var(--cac-accent); color:var(--cac-accent-fg); }
.cac-card__logo img, .cac-logo { max-width:100%; height:auto; border-radius:10px; }
.cac-logo--text { display:inline-block; font-weight:800; font-size:1.1em; }
.cac-card__name { margin:0 0 .3em; font-size:1.2em; }
.cac-card__name a { text-decoration:none; color:inherit; }
.cac-card__bonus { margin:.2em 0 .5em; font-size:1.05em; }
.cac-label { display:block; font-size:.72em; text-transform:uppercase; letter-spacing:.06em; color:var(--cac-muted); }
.cac-card__wagering { color:var(--cac-muted); }
.cac-card__pros { list-style:none; margin:.4em 0; padding:0; display:flex; flex-wrap:wrap; gap:.3em .9em; font-size:.9em; }
.cac-card__pros li::before { content:"✓ "; color:var(--cac-good); font-weight:700; }
.cac-card__aside { display:flex; flex-direction:column; align-items:center; gap:.6em; text-align:center; }
.cac-verified { font-size:.75em; color:var(--cac-muted); }
.cac-coins { list-style:none; margin:.5em 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.3em; }
.cac-coin { font-size:.7em; font-weight:700; padding:.25em .55em; border-radius:6px; background:var(--cac-bg-2); border:1px solid var(--cac-border); letter-spacing:.03em; }
.cac-coin--btc { background:#f7931a; color:#fff; border-color:transparent; } .cac-coin--eth { background:#627eea; color:#fff; border-color:transparent; } .cac-coin--ltc { background:#345d9d; color:#fff; border-color:transparent; } .cac-coin--usdt { background:#26a17b; color:#fff; border-color:transparent; } .cac-coin--sol { background:#9945ff; color:#fff; border-color:transparent; }

/* Table */
.cac-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--cac-border); border-radius:var(--cac-radius); }
.cac-table { width:100%; border-collapse:collapse; font-size:.92em; min-width:760px; }
.cac-table th, .cac-table td { padding:.75em .8em; border-bottom:1px solid var(--cac-border); text-align:left; vertical-align:middle; }
.cac-table thead th { background:var(--cac-bg-2); font-size:.78em; text-transform:uppercase; letter-spacing:.05em; cursor:pointer; user-select:none; }
.cac-table__op a { display:flex; align-items:center; gap:.6em; text-decoration:none; color:inherit; font-weight:700; }
.cac-table__op img { width:48px; height:auto; border-radius:8px; }
.cac-table .cac-score strong { font-size:1.3em; } .cac-table .cac-score em { display:none; }

/* Review */
.cac-review { padding:1.5rem; border:1px solid var(--cac-border); border-radius:var(--cac-radius); background:var(--cac-bg); margin-bottom:2rem; }
.cac-review__head { display:grid; grid-template-columns:140px 1fr auto; gap:1.2rem; align-items:center; margin-bottom:1rem; }
.cac-review__name { margin:0; font-size:1.4em; }
.cac-subscores { list-style:none; margin:0 0 1rem; padding:0; display:grid; gap:.4em; }
.cac-subscores li { display:grid; grid-template-columns:11em 1fr 2.5em; gap:.8em; align-items:center; font-size:.9em; }
.cac-subscores li small { color:var(--cac-muted); }
.cac-bar { height:8px; background:var(--cac-bg-2); border-radius:999px; overflow:hidden; } .cac-bar i { display:block; height:100%; background:var(--cac-accent); }
.cac-subscores__adjust { font-size:.85em; color:var(--cac-muted); }
.cac-facts { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:.6em 1.2em; margin:0 0 1rem; }
.cac-facts div { border-bottom:1px dashed var(--cac-border); padding:.35em 0; }
.cac-facts dt { font-size:.72em; text-transform:uppercase; letter-spacing:.05em; color:var(--cac-muted); } .cac-facts dd { margin:0; font-weight:600; }
.cac-proscons { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin:1rem 0; }
.cac-proscons h3 { font-size:1em; margin:0 0 .4em; } .cac-proscons ul { margin:0; padding-left:1.2em; }
.cac-proscons__pros li::marker { content:"✓  "; color:var(--cac-good); } .cac-proscons__cons li::marker { content:"✕  "; color:var(--cac-bad); }
.cac-review__verdict { font-size:1.05em; } .cac-review__cta { margin:1rem 0 .5rem; } .cac-review__restricted { font-size:.85em; color:var(--cac-muted); }

/* FAQ, methodology, misc */
.cac-faq__item { border:1px solid var(--cac-border); border-radius:10px; padding:.6em 1em; margin-bottom:.5em; background:var(--cac-bg); }
.cac-faq__item summary { font-weight:700; cursor:pointer; }
.cac-methodology__list { list-style:none; margin:0 0 1em; padding:0; display:grid; gap:.5em; }
.cac-methodology__list li { display:grid; grid-template-columns:11em 1fr 3.5em; gap:.8em; align-items:center; }
.cac-methodology__bar { height:10px; background:var(--cac-bg-2); border-radius:999px; overflow:hidden; } .cac-methodology__bar i { display:block; height:100%; background:var(--cac-accent); }
.cac-methodology__note { font-size:.9em; color:var(--cac-muted); }
.cac-updated { font-size:.8em; color:var(--cac-muted); }
.cac-empty { color:var(--cac-muted); font-style:italic; }

/* Sticky mobile CTA */
.cac-sticky { display:none; position:fixed; left:0; right:0; bottom:0; z-index:999; align-items:center; gap:.8em; padding:.6em 1em; background:var(--cac-bg); border-top:1px solid var(--cac-border); box-shadow:0 -6px 20px rgba(0,0,0,.12); }
.cac-sticky img { width:44px; height:auto; border-radius:8px; } .cac-sticky__bonus { flex:1; font-size:.85em; font-weight:600; }

/* Mobile */
@media (max-width: 760px) {
  .cac-card { grid-template-columns:1fr; text-align:center; padding:1.6rem 1rem 1.2rem; }
  .cac-card__logo img { max-width:160px; margin:0 auto; }
  .cac-card__pros, .cac-coins { justify-content:center; }
  .cac-card__aside { flex-direction:row; flex-wrap:wrap; justify-content:center; }
  .cac-review__head { grid-template-columns:1fr; text-align:center; justify-items:center; }
  .cac-proscons { grid-template-columns:1fr; }
  .cac-subscores li, .cac-methodology__list li { grid-template-columns:7em 1fr 2.5em; }
  .cac-sticky { display:flex; }
  body { padding-bottom:70px; }
}

/* Compact toplist (sidebars) */
.cac-toplist--compact { gap:.6rem; }
.cac-toplist--compact .cac-disclosure--inline { display:none; }
.cac-toplist--compact .cac-card { grid-template-columns:64px 1fr; gap:.7rem; padding:.8rem .9rem 1rem; text-align:left; box-shadow:none; }
.cac-toplist--compact .cac-card__logo img { max-width:64px; }
.cac-toplist--compact .cac-card__name { font-size:1em; margin:0; }
.cac-toplist--compact .cac-card__pros, .cac-toplist--compact .cac-coins, .cac-toplist--compact .cac-link, .cac-toplist--compact .cac-verified, .cac-toplist--compact .cac-card__wagering { display:none; }
.cac-toplist--compact .cac-card__bonus { font-size:.85em; margin:.1em 0 .4em; }
.cac-toplist--compact .cac-card__aside { grid-column:1 / -1; flex-direction:row; justify-content:space-between; align-items:center; }
.cac-toplist--compact .cac-score strong { font-size:1.3em; } .cac-toplist--compact .cac-score em { display:none; }
.cac-toplist--compact .cac-btn { padding:.55em 1em; font-size:.85em; }
