/* ============================================================
   Buzz Events — Frontend (4 layouts)
   ============================================================ */
.buzz-events-wrap {
  --buzz-action:#F09637; --buzz-action-hover:#525C6E; --buzz-border:#DEE6F4;
  --buzz-card-bg:#FFFFFF; --buzz-page-bg:#F4F7FA; --buzz-text-primary:#3d4250;
  --buzz-text-body:#5F6579; --buzz-text-muted:#97A9BE;
  --buzz-font:'Poppins',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --buzz-radius-pill:999px;
  font-family:var(--buzz-font); color:var(--buzz-text-body);
}

.buzz-events-filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }
.buzz-filter-btn { display:inline-flex; align-items:center; padding:6px 18px; border-radius:var(--buzz-radius-pill); font-family:var(--buzz-font); font-size:12px; font-weight:500; color:var(--buzz-text-body); background:var(--buzz-card-bg); border:1px solid var(--buzz-border); cursor:pointer; transition:all .12s; }
.buzz-filter-btn:hover,.buzz-filter-btn.active { background:var(--buzz-action); color:#fff; border-color:var(--buzz-action); }

.buzz-no-events { padding:40px; text-align:center; color:var(--buzz-text-muted); border:1px solid var(--buzz-border); background:var(--buzz-card-bg); }

/* Card Grid */
.buzz-layout-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:24px; }
.buzz-event-card { background:var(--buzz-card-bg); border:1px solid var(--buzz-border); display:flex; flex-direction:column; transition:box-shadow .15s; }
.buzz-event-card:hover { box-shadow:0 4px 16px rgba(150,169,189,.18); }
.buzz-card-image-link { display:block; position:relative; overflow:hidden; }
.buzz-card-image { width:100%; height:180px; object-fit:cover; display:block; background:var(--buzz-page-bg); transition:transform .2s; }
.buzz-event-card:hover .buzz-card-image { transform:scale(1.02); }
.buzz-card-image--empty { height:180px; display:flex; align-items:center; justify-content:center; background:var(--buzz-page-bg); color:var(--buzz-text-muted); }
.buzz-card-image--empty svg { width:40px; height:40px; }
.buzz-card-type-badge { position:absolute; top:10px; left:10px; padding:3px 10px; border-radius:var(--buzz-radius-pill); font-size:11px; font-weight:600; background:var(--buzz-action); color:#fff; }
.buzz-card-body { display:flex; gap:12px; padding:16px; flex:1; }
.buzz-card-date { display:flex; flex-direction:column; align-items:center; min-width:44px; flex-shrink:0; }
.buzz-card-date-month { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--buzz-action); }
.buzz-card-date-day { font-size:26px; font-weight:700; color:var(--buzz-text-primary); line-height:1; }
.buzz-card-content { min-width:0; flex:1; }
.buzz-card-title { font-size:14px; font-weight:600; color:var(--buzz-text-primary); margin:0 0 4px; line-height:1.3; }
.buzz-card-title a { color:inherit; text-decoration:none; }
.buzz-card-title a:hover { color:var(--buzz-action); }
.buzz-card-subtitle { font-size:12px; color:var(--buzz-text-muted); margin:0 0 10px; }
.buzz-card-meta { display:flex; flex-direction:column; gap:4px; }
.buzz-meta-item { display:flex; align-items:flex-start; gap:5px; font-size:11px; color:var(--buzz-text-muted); line-height:1.4; }
.buzz-meta-item svg { width:12px; height:12px; flex-shrink:0; margin-top:1px; }

/* List */
.buzz-layout-list { display:flex; flex-direction:column; border:1px solid var(--buzz-border); background:var(--buzz-card-bg); }
.buzz-event-list-item { display:flex; align-items:center; gap:16px; padding:16px 20px; border-bottom:1px solid var(--buzz-border); transition:background .1s; }
.buzz-event-list-item:last-child { border-bottom:none; }
.buzz-event-list-item:hover { background:var(--buzz-page-bg); }
.buzz-list-thumb { width:80px; height:60px; object-fit:cover; display:block; }
.buzz-list-date-block { display:flex; flex-direction:column; align-items:center; min-width:52px; flex-shrink:0; background:var(--buzz-page-bg); border:1px solid var(--buzz-border); padding:6px 4px; }
.buzz-date-month { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--buzz-action); }
.buzz-date-day { font-size:22px; font-weight:700; color:var(--buzz-text-primary); line-height:1; }
.buzz-list-body { flex:1; min-width:0; }
.buzz-list-top { display:flex; align-items:center; gap:10px; margin-bottom:4px; }
.buzz-type-pill { display:inline-flex; padding:1px 8px; border-radius:var(--buzz-radius-pill); font-size:10px; font-weight:600; background:var(--buzz-action); color:#fff; }
.buzz-list-date-str { font-size:11px; color:var(--buzz-text-muted); }
.buzz-list-title { font-size:14px; font-weight:600; color:var(--buzz-text-primary); margin:0 0 3px; }
.buzz-list-title a { color:inherit; text-decoration:none; }
.buzz-list-title a:hover { color:var(--buzz-action); }
.buzz-list-subtitle { font-size:12px; color:var(--buzz-text-muted); margin:0 0 5px; }
.buzz-list-location { display:inline-flex; align-items:center; gap:4px; font-size:11px; color:var(--buzz-text-muted); }
.buzz-list-location svg { width:12px; height:12px; }
.buzz-list-cta { flex-shrink:0; display:inline-flex; align-items:center; padding:6px 16px; border-radius:var(--buzz-radius-pill); font-size:11px; font-weight:500; color:var(--buzz-text-body); background:var(--buzz-card-bg); border:1px solid var(--buzz-border); text-decoration:none; transition:all .12s; }
.buzz-list-cta:hover { border-color:var(--buzz-action); color:var(--buzz-action); }

/* Compact */
.buzz-layout-compact-list { display:flex; flex-direction:column; }
.buzz-event-compact { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--buzz-border); }
.buzz-event-compact:last-child { border-bottom:none; }
.buzz-compact-date { display:flex; flex-direction:column; align-items:center; min-width:36px; flex-shrink:0; }
.buzz-compact-month { font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--buzz-action); }
.buzz-compact-day { font-size:18px; font-weight:700; color:var(--buzz-text-primary); line-height:1; }
.buzz-compact-body { flex:1; min-width:0; }
.buzz-compact-title { font-size:12px; font-weight:600; color:var(--buzz-text-primary); margin:0 0 2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.buzz-compact-title a { color:inherit; text-decoration:none; }
.buzz-compact-title a:hover { color:var(--buzz-action); }
.buzz-compact-meta { display:flex; gap:8px; font-size:10px; color:var(--buzz-text-muted); }
.buzz-compact-meta span::after { content:"·"; margin-left:8px; }
.buzz-compact-meta span:last-child::after { content:""; }
.buzz-compact-type { font-size:10px; font-weight:600; padding:2px 8px; border-radius:var(--buzz-radius-pill); background:#EBF0F7; color:var(--buzz-text-body); flex-shrink:0; }

/* Calendar */
.buzz-cal-wrap { border:1px solid var(--buzz-border); background:var(--buzz-card-bg); overflow:hidden; }
.buzz-cal-nav { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; border-bottom:1px solid var(--buzz-border); background:var(--buzz-page-bg); }
.buzz-cal-nav-title { font-size:14px; font-weight:600; color:var(--buzz-text-primary); }
.buzz-cal-nav-btn { background:none; border:none; cursor:pointer; color:var(--buzz-text-muted); padding:4px; border-radius:50%; width:28px; height:28px; display:grid; place-items:center; transition:all .12s; }
.buzz-cal-nav-btn:hover { color:var(--buzz-action); }
.buzz-cal-nav-btn svg { width:16px; height:16px; }
.buzz-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.buzz-cal-dow { padding:8px 4px; text-align:center; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.5px; color:var(--buzz-text-muted); background:var(--buzz-page-bg); border-bottom:1px solid var(--buzz-border); }
.buzz-cal-day { border-right:1px solid var(--buzz-border); border-bottom:1px solid var(--buzz-border); min-height:80px; padding:6px; position:relative; }
.buzz-cal-day:nth-child(7n) { border-right:none; }
.buzz-cal-day.other-month .buzz-cal-day-num { opacity:.4; }
.buzz-cal-day-num { font-size:11px; font-weight:600; color:var(--buzz-text-primary); margin-bottom:4px; width:22px; height:22px; display:flex; align-items:center; justify-content:center; }
.buzz-cal-day.today .buzz-cal-day-num { background:var(--buzz-action); color:#fff; border-radius:50%; }
.buzz-cal-event-dot { display:block; font-size:10px; font-weight:500; color:#fff; background:var(--buzz-action); border-radius:2px; padding:1px 4px; margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-decoration:none; }
.buzz-cal-event-dot:hover { background:var(--buzz-action-hover); color:#fff; }
.buzz-cal-more { font-size:9px; color:var(--buzz-text-muted); padding:1px 4px; }

/* Load more */
.buzz-events-pagination { margin-top:28px; text-align:center; }
.buzz-load-more { display:inline-flex; align-items:center; gap:6px; padding:10px 28px; border-radius:var(--buzz-radius-pill); font-family:var(--buzz-font); font-size:13px; font-weight:500; color:var(--buzz-text-body); background:var(--buzz-card-bg); border:1px solid var(--buzz-border); cursor:pointer; transition:all .12s; }
.buzz-load-more:hover { border-color:var(--buzz-action); color:var(--buzz-action); }
.buzz-load-more.loading { opacity:.6; cursor:wait; }
