/*
Theme Name: CheckThatVibe Theme
Theme URI: https://example.com/
Author: OpenAI
Description: Front-end shell for the CheckThatVibe community platform.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: checkthatvibe-theme
*/

:root {
  --ctv-rose: #e11d48;
  --ctv-pink: #ec4899;
  --ctv-bg: #fff7fb;
  --ctv-card: #ffffff;
  --ctv-text: #1f2937;
  --ctv-muted: #6b7280;
  --ctv-border: #fbcfe8;
  --ctv-shadow: 0 14px 36px rgba(225, 29, 72, 0.10);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ctv-text);
  background: var(--ctv-bg);
}
a { color: var(--ctv-rose); text-decoration: none; }
a:hover { opacity: .9; }
img { max-width: 100%; height: auto; }
.ctv-container { width: min(1200px, calc(100% - 32px)); margin: 0 auto; }
.ctv-header {
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid #ffe4ef;
  position: sticky; top: 0; z-index: 20;
}
.ctv-header-inner { display:flex; align-items:center; justify-content:space-between; padding: 18px 0; gap: 16px; }
.ctv-brand { display:flex; align-items:center; gap: 12px; }
.ctv-brand-mark {
  width: 46px; height: 46px; border-radius: 999px; display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, var(--ctv-rose), var(--ctv-pink)); color: white; font-weight: 800;
}
.ctv-brand-title { font-size: 1.3rem; font-weight: 800; margin: 0; }
.ctv-brand-subtitle { color: var(--ctv-muted); font-size: .78rem; }
.ctv-nav { display:flex; align-items:center; gap: 18px; flex-wrap: wrap; }
.ctv-button, button, input[type=submit] {
  border: 0; border-radius: 999px; cursor: pointer; padding: 12px 18px; font-weight: 700;
}
.ctv-button-primary { background: linear-gradient(135deg, var(--ctv-rose), var(--ctv-pink)); color: #fff; box-shadow: var(--ctv-shadow); }
.ctv-button-secondary { background: #fff; border: 1px solid var(--ctv-border); color: var(--ctv-rose); }
.ctv-grid { display:grid; gap: 24px; }
.ctv-card {
  background: var(--ctv-card); border: 1px solid #ffe4ef; border-radius: 28px; padding: 24px; box-shadow: var(--ctv-shadow);
}
.ctv-hero { padding: 42px 0; background: linear-gradient(180deg, #fff1f7 0%, #fff8fb 100%); border-bottom: 1px solid #ffe4ef; }
.ctv-hero-grid { display:grid; grid-template-columns: 1.2fr .8fr; gap: 28px; align-items: center; }
.ctv-eyebrow { display:inline-block; padding: 8px 14px; border-radius: 999px; background:#fff; color: var(--ctv-rose); font-size: .75rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 5px 20px rgba(0,0,0,.05); }
.ctv-title-xl { font-size: clamp(2rem, 4vw, 3.5rem); line-height: 1.05; font-weight: 900; margin: 18px 0; }
.ctv-lead { color: var(--ctv-muted); font-size: 1.05rem; line-height: 1.9; max-width: 750px; }
.ctv-stat-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 20px; }
.ctv-stat { background:#fff; border:1px solid #ffe4ef; border-radius: 24px; padding: 18px; box-shadow: 0 5px 18px rgba(0,0,0,.05); }
.ctv-stat-number { color: var(--ctv-rose); font-size: 1.6rem; font-weight: 900; }
.ctv-section { padding: 38px 0; }
.ctv-section-title { font-size: 2rem; font-weight: 900; margin: 10px 0 0; }
.ctv-section-kicker { color: var(--ctv-rose); font-weight: 800; letter-spacing: .12em; font-size: .76rem; text-transform: uppercase; }
.ctv-listing-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ctv-profile-card { overflow:hidden; }
.ctv-profile-thumb { aspect-ratio: 4 / 3; background: linear-gradient(135deg, #ffe0ec, #ffeef6); display:flex; align-items:center; justify-content:center; color:#d94670; font-weight:700; }
.ctv-pill { display:inline-block; padding: 8px 12px; border-radius: 999px; background:#fff1f6; color:#be123c; font-size: .75rem; font-weight: 700; }
.ctv-meta { color: var(--ctv-muted); font-size: .88rem; }
.ctv-two-col { display:grid; gap: 24px; grid-template-columns: .9fr 1.1fr; }
.ctv-small-list > div { display:flex; justify-content:space-between; align-items:center; gap: 12px; padding: 14px 16px; border-radius: 18px; margin-top: 12px; }
.ctv-muted { color: var(--ctv-muted); }
.ctv-comment { margin-bottom: 16px; }
.ctv-avatar { width:48px; height:48px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-weight:900; }
.ctv-form-stack > * + * { margin-top: 16px; }
.ctv-field, input[type=text], input[type=email], input[type=password], input[type=url], input[type=number], textarea, select {
  width: 100%; border: 1px solid #fbcfe8; background: #fff; border-radius: 20px; padding: 14px 16px; font: inherit;
}
textarea { min-height: 140px; resize: vertical; }
.ctv-auth-wrap { max-width: 560px; margin: 40px auto; }
.ctv-notice { padding: 14px 16px; border-radius: 18px; margin-bottom: 16px; }
.ctv-notice-success { background: #ecfdf5; color: #166534; }
.ctv-notice-error { background: #fef2f2; color: #991b1b; }
.ctv-tag-cloud { display:flex; flex-wrap:wrap; gap: 8px; }
.ctv-footer { border-top:1px solid #ffe4ef; background:#fff; padding: 32px 0; margin-top: 30px; }
.ctv-dashboard-grid { display:grid; grid-template-columns: 280px 1fr; gap: 24px; }
.ctv-sidebar-menu { display:grid; gap: 10px; }
.ctv-sidebar-menu a { padding: 12px 14px; border-radius: 16px; background: #fff; border: 1px solid #ffe4ef; font-weight: 700; color: var(--ctv-text); }
.ctv-table { width:100%; border-collapse: collapse; }
.ctv-table th, .ctv-table td { padding: 12px; text-align:left; border-bottom:1px solid #fce7f3; }
.ctv-empty { text-align:center; color:var(--ctv-muted); padding: 20px; }
@media (max-width: 980px) {
  .ctv-hero-grid, .ctv-two-col, .ctv-dashboard-grid, .ctv-listing-grid { grid-template-columns: 1fr; }
  .ctv-stat-grid { grid-template-columns: 1fr; }
  .ctv-nav { display:none; }
}

.ctv-brand-link { display:flex; align-items:center; gap:12px; color:inherit; text-decoration:none; }
.ctv-brand-link span { display:block; }
.custom-logo-link img { max-height:52px; width:auto; display:block; }
.ctv-footer-inner { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.ctv-footer-links { display:flex; gap:14px; flex-wrap:wrap; }
.ctv-search-row { display:flex; gap:12px; flex-wrap:wrap; }
.ctv-search-row .ctv-field { flex:1 1 260px; }
.ctv-search-button { min-width:120px; }
.ctv-profile-detail-grid { display:grid; grid-template-columns: 260px 1fr; gap:24px; }
.ctv-profile-main-photo img, .ctv-profile-main-photo .ctv-placeholder { border-radius:24px; width:100%; display:block; }
.ctv-proof-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:10px; margin-top:12px; }
.ctv-proof-grid a, .ctv-proof-grid img { display:block; border-radius:16px; width:100%; aspect-ratio: 1 / 1; object-fit:cover; }
.ctv-rich-editor { border:1px solid #fbcfe8; border-radius:20px; background:#fff; padding:8px; }
.ctv-form-label { font-weight:700; display:block; margin-bottom:8px; }
.ctv-upload-wrap { border:1px dashed #f9a8d4; border-radius:20px; background:#fff7fb; padding:16px; }
.ctv-file-input { position:absolute; left:-9999px; }
.ctv-file-button { display:inline-flex; align-items:center; gap:10px; border-radius:999px; background:linear-gradient(135deg, var(--ctv-rose), var(--ctv-pink)); color:#fff; padding:12px 16px; font-weight:700; cursor:pointer; box-shadow: var(--ctv-shadow); }
.ctv-file-help { margin-top:8px; color:var(--ctv-muted); font-size:.9rem; }
.ctv-inline-badges { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.ctv-media-strip { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.ctv-media-strip a, .ctv-media-strip img { width:92px; height:92px; object-fit:cover; border-radius:16px; display:block; }
.ctv-topic-cat { background:#fce7f3; color:#9d174d; border-radius:999px; padding:8px 12px; font-size:.75rem; font-weight:700; display:inline-block; }
.ctv-quote-box { background:#f8fafc; border-left:4px solid #f472b6; padding:14px 16px; border-radius:14px; color:#475569; margin:12px 0; }
.ctv-report-thread { margin-top:18px; padding-top:18px; border-top:1px solid #fce7f3; }
.ctv-avatar-lg { width:72px; height:72px; border-radius:999px; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:1.2rem; background:#ffe4ef; color:#be123c; }
@media (max-width: 980px) { .ctv-profile-detail-grid { grid-template-columns: 1fr; } .ctv-proof-grid { grid-template-columns: repeat(2, 1fr); } }

.ctv-topic-summary-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;}
.ctv-topic-summary-row .ctv-pill{white-space:nowrap;align-self:start;}
.ctv-topic-summary-title{display:block;font-size:1.12rem;font-weight:800;color:#111827;line-height:1.35;}
.ctv-term-link{display:inline-block;}
.ctv-lightbox-overlay{position:fixed;inset:0;background:rgba(17,24,39,.88);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;}
.ctv-lightbox-overlay.is-open{display:flex;}
.ctv-lightbox-image{max-width:min(100%,1100px);max-height:80vh;border-radius:22px;box-shadow:0 20px 50px rgba(0,0,0,.35);}
.ctv-lightbox-close{position:absolute;top:20px;right:20px;width:48px;height:48px;border-radius:999px;background:#fff;color:#111827;font-size:28px;line-height:1;padding:0;box-shadow:none;}
.ctv-lightbox-caption{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.94);color:#111827;padding:10px 16px;border-radius:999px;max-width:90vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ctv-form-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.ctv-checkbox-card{display:flex;gap:10px;align-items:flex-start;padding:16px 18px;border:1px solid #fbcfe8;background:#fff7fb;border-radius:18px;}
.ctv-checkbox-card input{margin-top:3px;}
@media (max-width: 780px){.ctv-form-grid-two{grid-template-columns:1fr;}}
