.cyca-contest-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.cyca-entry-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
.cyca-contest-card,.cyca-entry-card{align-content:start;height:100%}
.cyca-contest-thumb,.cyca-entry-photo,.cyca-hero-image{display:block;overflow:hidden;background:#f3f4f6;border:1px solid var(--cysa-border,rgba(0,0,0,.14))}
.cyca-contest-thumb{aspect-ratio:16/10}
.cyca-contest-thumb img,.cyca-entry-photo img,.cyca-hero-image img{width:100%;height:100%;object-fit:cover;display:block}
.cyca-entry-photo{aspect-ratio:4/3;position:relative}
.cyca-hero-image{max-height:520px}
.cyca-hero-image img{max-height:520px}
.cyca-contest-dates{display:flex;flex-wrap:wrap;gap:10px 24px}
.cyca-contest-dates p{margin:0}
.cyca-entry-card{transition:border-color .18s ease,box-shadow .18s ease}
.cyca-entry-card.is-selected-vote{border:3px solid var(--cysa-btn-color,#8dc34b);padding:calc(1.5rem - 2px)}
.cyca-entry-card.is-winner{outline:2px solid rgba(0,0,0,.12);outline-offset:3px}
.cyca-vote-button.is-selected{background:transparent;color:inherit;border-color:var(--cysa-btn-color,#8dc34b);font-weight:700}
.cyca-vote-button[disabled]{cursor:not-allowed;opacity:.6}
.cyca-vote-button.is-loading{cursor:wait}
.cyca-vote-status.is-error{color:#c9463b;font-weight:600}
.cyca-vote-own-note{padding:.8rem 1rem;border:1px solid var(--cysa-border,rgba(0,0,0,.14));background:rgba(0,0,0,.03);font-size:.95rem}
.cyca-winner-photo-badge{position:absolute;top:12px;left:12px;background:#fff;color:#111;border:1px solid rgba(0,0,0,.2);padding:.4rem .65rem;font-weight:700;font-size:.85rem}
.cyca-current-photo{display:grid;gap:.65rem}
.cyca-current-photo img{max-width:560px;width:100%;height:auto;border:1px solid var(--cysa-border,rgba(0,0,0,.14))}
.cyca-entry-form input[type="file"]{width:100%;padding:1rem;border:1px solid #333;background:#fff}
.cyca-winner-banner{border-width:2px}
.cyca-dashboard-extension{padding-top:0}
.cyca-phase-voting{font-weight:700}

@media (max-width:1100px){
  .cyca-contest-grid,.cyca-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:768px){
  .cyca-contest-grid,.cyca-entry-grid{grid-template-columns:1fr}
  .cyca-entry-card.is-selected-vote{padding:calc(1.125rem - 2px)}
  .cyca-contest-dates{display:grid;gap:8px}
}
@media (max-width:480px){
  .cyca-entry-card.is-selected-vote{padding:calc(1rem - 2px)}
}
