:root{
  --fcos-purple:#6a3fb5;
  --fcos-purple-600:#5a34a0;
  --fcos-green:#3aa681;
  --fcos-ink:#1a1a1a;
  --fcos-muted:#6b7280;
  --fcos-bg:#ffffff;
  --fcos-card:#ffffff;
  --fcos-border:#e5e7eb;
  --fcos-ring:#c4b5fd;
  --radius:12px;
  --shadow:0 6px 18px rgba(0,0,0,.08);
  --shadow-sm:0 2px 8px rgba(0,0,0,.06);
  --space:16px;
  --font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji";
}

*{box-sizing:border-box}
body{font-family:var(--font); color:var(--fcos-ink); background:var(--fcos-bg); line-height:1.5}

h1,h2,h3{color:var(--fcos-purple); margin: 0 0 8px}
p{margin:0 0 12px}

.section{max-width:980px; margin:0 auto; padding:24px}

.card{
  background:var(--fcos-card);
  border:1px solid var(--fcos-border);
  border-radius:var(--radius);
  padding:20px;
  box-shadow:var(--shadow-sm);
}

.chip{
  display:inline-block;
  padding:.25rem .5rem;
  border-radius:999px;
  font-size:.75rem;
  background:#f3f4f6;
  color:#374151;
}

.chip.species{ background:#e8f5e9; color:#17633f }
.chip.hybrids{ background:#eef2ff; color:#3730a3 }
.chip.cattleyas{ background:#fff7ed; color:#9a3412 }
.chip.intergenerics{ background:#ecfeff; color:#0e7490 }

.badge{ font-size:1.25rem }
.badge.gold{ filter: drop-shadow(0 2px 2px rgba(0,0,0,.1)) }
.badge.silver{ opacity:.9 }
.badge.bronze{ opacity:.9 }

.button, .vote-btn, .primary{
  appearance:none; border:0; border-radius:10px;
  padding:10px 14px; font-weight:600; cursor:pointer;
  background:var(--fcos-purple); color:#fff; box-shadow:var(--shadow-sm)
}
.button:hover,.vote-btn:hover,.primary:hover{ background:var(--fcos-purple-600) }
.ghost{ background:#fff; color:var(--fcos-purple); border:1px solid var(--fcos-border) }
.danger{ background:#dc2626; color:#fff }

.helper,.hint{ color:var(--fcos-muted); font-size:.9rem }

.st-form input[type="text"],
.st-form input[type="email"],
.st-form input[type="file"],
.st-form select,
.st-form textarea{
  width:100%; padding:10px 12px; border:1px solid var(--fcos-border);
  border-radius:10px; outline:none;
}
.st-form input:focus, .st-form select:focus, .st-form textarea:focus{
  border-color:var(--fcos-ring); box-shadow:0 0 0 3px rgba(196,181,253,.3)
}

.category-grid{
  display:grid; gap:16px;
  grid-template-columns: repeat( auto-fill, minmax(220px, 1fr) );
}
.entry-card,.vote-card{
  border:1px solid var(--fcos-border); border-radius:var(--radius);
  background:#fff; box-shadow:var(--shadow-sm); overflow:hidden
}
.entry-card img,.vc-media img{ width:100%; height:220px; object-fit:cover; display:block }
.entry-card h4,.vote-card h4{ margin:10px 10px 4px }
.entry-card .caption,.vote-card .caption{ margin:0 10px 10px; color:var(--fcos-muted) }
.entry-card .vote-btn,.vote-card .vote-btn{ margin:0 10px 12px }

.countdown{
  position:absolute; top:8px; right:8px; background:rgba(255,255,255,.9);
  padding:4px 8px; border-radius:999px; font-size:.75rem; border:1px solid var(--fcos-border)
}

/* Admin table */
.aq-table{ width:100%; border-collapse:separate; border-spacing:0 8px }
.aq-table thead th{ text-align:left; font-size:.85rem; color:#6b7280 }
.aq-table tbody tr{ background:#fff; box-shadow:var(--shadow-sm) }
.aq-table td, .aq-table th{ padding:10px 12px }
.aq-table .thumb{ width:64px; height:64px; object-fit:cover; border-radius:8px }
.truncate{ max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.status{ padding:.2rem .5rem; border-radius:6px; font-size:.75rem }
.status.pending{ background:#fff3cd }
.status.approved{ background:#d1fae5 }
.status.rejected{ background:#fde2e1 }

.pager{ display:flex; gap:8px; align-items:center; justify-content:flex-end; margin-top:12px }
.hidden{ display:none !important }