/* Cap Collectors — Photo Contest Core styles */
.cc-contest, .cc-hof, .cc-stats { font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color:#eaeaea; }
.cc-contest a, .cc-hof a { color:#f45; text-decoration:none; }
.cc-btn { background:#ff4757; color:#fff; border:none; padding:10px 14px; border-radius:10px; cursor:pointer; font-weight:600; }
.cc-btn:hover { filter:brightness(1.1); }
.cc-btn-small { padding:6px 10px; border-radius:8px; font-size:13px; }
.cc-contest-header { background:#1c1c1e; padding:16px; border-radius:16px; margin-bottom:16px; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.cc-contest-desc { opacity:.9; }
.cc-contest-countdown { margin-top:8px; font-size:14px; display:flex; gap:6px; align-items:center; }
.cc-join-form { margin-top:12px; display:grid; gap:10px; background:#121214; border:1px solid #2a2a2f; padding:12px; border-radius:12px; }
.cc-join-form input[type="file"], .cc-join-form textarea { width:100%; }
.cc-need-login { background:#2d2d30; padding:10px; border-radius:10px; }

/* Header */
.cc-page-header { margin-bottom: 18px; }
.cc-hero { display:flex; align-items:center; gap:14px; background:linear-gradient(180deg, rgba(30,30,34,.9), rgba(18,18,20,.95)); border:1px solid #2a2a2f; border-radius:20px; padding:14px 16px; box-shadow:0 10px 28px rgba(0,0,0,.35); }
.cc-hero-media { width:68px; height:68px; border-radius:9999px; overflow:hidden; border:3px solid #ff4757; background:#0f0f11; display:flex; align-items:center; justify-content:center; }
.cc-hero-img { width:100%; height:100%; object-fit:cover; display:block; }
.cc-hero-placeholder { background:#0f0f11; }
.cc-hero-title { margin:0; font-size:22px; font-weight:900; letter-spacing:.3px; }
.cc-hero-subtitle { margin:0; opacity:.7; font-size:13px; }

/* Theme + countdown */
.cc-theme { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.cc-theme-title { display:inline-block; background:#111114; border:1px solid #2a2a2f; padding:8px 12px; border-radius:12px; font-weight:800; font-size:16px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.03); }
.cc-contest-countdown { display:flex; align-items:center; gap:8px; background:#121214; border:1px solid #2a2a2f; padding:6px 10px; border-radius:9999px; }
.cc-contest-countdown .cc-timer { font-variant-numeric: tabular-nums; font-weight:800; letter-spacing:.5px; }
.cc-contest-countdown .cc-timer-label { opacity:.8; font-size:12px; }

/* Toolbar (used by snippet) */
.cc-toolbar { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; background:#151517; border:1px solid #2a2a2f; border-radius:14px; padding:12px; margin:14px 0; }
.cc-toolbar-group { display:flex; flex-direction:column; gap:6px; }
.cc-toolbar-group label { font-size:12px; opacity:.8; }
.cc-toolbar select, .cc-toolbar input[type="text"] { background:#0f0f11; border:1px solid #2a2f; color:#eaeaea; border-radius:10px; padding:8px 10px; min-width:120px; }
.cc-toolbar-actions { margin-left:auto; display:flex; gap:8px; }
.cc-btn.cc-reset { background:#3A3939; }

/* Grid / cards */
.cc-grid { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap:14px; }
@media (max-width: 1024px){ .cc-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (max-width: 768px){ .cc-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 480px){ .cc-grid { grid-template-columns: repeat(1, minmax(0,1fr)); } }

.cc-card { background:linear-gradient(180deg,#151517,#121214); border:1px solid #2a2a2f; border-radius:18px; overflow:hidden; display:flex; flex-direction:column; transition:transform .06s ease; }
.cc-card:hover { transform: translateY(-2px); }
.cc-card-media { aspect-ratio: 4/3; background:#0f0f11; display:flex; align-items:center; justify-content:center; }
.cc-entry-thumb { width:100%; height:100%; object-fit:cover; display:block; }
.cc-no-thumb { color:#666; }
.cc-card-body { padding:10px; display:flex; flex-direction:column; gap:6px; }
.cc-card-user { font-weight:800; font-size:14px; }
.cc-card-desc { font-size:13px; opacity:.9; max-height:3.4em; overflow:hidden; }
.cc-card-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:13px; }
.cc-votes strong { font-size:15px; }

/* Empty card */
.cc-empty-card { background:linear-gradient(180deg,#151517,#121214); border:1px solid #2a2a2f; border-radius:18px; padding:24px; text-align:center; box-shadow: 0 8px 24px rgba(0,0,0,.25); }
.cc-empty-title { font-size:18px; font-weight:800; margin-bottom:6px; }
.cc-empty-sub { opacity:.75; }

/* HOF */
.cc-card-hof .cc-card-body { gap:8px; }
.cc-hof-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.cc-pill { background:#111114; border:1px solid #2a2a2f; border-radius:9999px; padding:4px 10px; font-size:12px; }
.cc-hof-user { display:flex; align-items:center; gap:8px; }
.cc-avatar-wrap { width:40px; height:40px; border-radius:9999px; overflow:hidden; border:2px solid #ff4757; display:flex; }
.cc-avatar { border-radius:9999px; width:100%; height:100%; object-fit:cover; }

/* Modal popup notice */
.cc-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.6); display:flex; align-items:center; justify-content:center; z-index:9999; }
.cc-modal { width:min(520px, 92vw); background:linear-gradient(180deg,#151517,#121214); border:1px solid #2a2a2f; border-radius:16px; padding:16px; box-shadow:0 10px 28px rgba(0,0,0,.4); }
.cc-modal h3 { margin:0 0 8px; font-size:18px; }
.cc-modal p { margin:0 0 12px; }
.cc-modal .cc-modal-actions { display:flex; justify-content:flex-end; gap:8px; }
