/* eResonate — calendar.css · Day / Week / Month calendar (calendar.js)
   Shared by the dashboard Events view and the venue profile Calendar tab. */
.cal { --cal-line: var(--border); --cal-row: 44px; font-size: 0.8rem; }
.cal-head { display: flex; align-items: center; justify-content: space-between; gap: 0.8rem; flex-wrap: wrap; margin-bottom: 0.8rem; }
.cal-title { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 1.05rem; }
.cal-seg { display: inline-flex; border: 1px solid var(--border); border-radius: 999px; padding: 2px; background: rgba(255,255,255,0.03); }
.cal-seg-b { background: none; border: none; color: var(--text-muted); font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 0.72rem; padding: 4px 11px; border-radius: 999px; cursor: pointer; }
.cal-seg-b.active { background: var(--accent); color: #fff; }
.cal-nav { display: inline-flex; gap: 4px; }
.cal-nav-b { background: rgba(255,255,255,0.04); border: 1px solid var(--border); color: var(--text); border-radius: 8px; min-width: 30px; height: 30px; padding: 0 8px; cursor: pointer; font-family: inherit; font-size: 0.9rem; line-height: 1; }
.cal-nav-b:hover { border-color: var(--accent); }
.cal-today { font-family: 'Outfit', sans-serif; font-weight: 700; font-size: 0.72rem; padding: 0 12px; }

/* time grid (day + week) */
.cal-grid { display: grid; grid-template-columns: 52px repeat(7, minmax(0, 1fr)); border: 1px solid var(--cal-line); border-radius: 12px; overflow: hidden; background: rgba(0,0,0,0.12); }
.cal-grid--1 { grid-template-columns: 52px minmax(0, 1fr); }
.cal-gutter-head, .cal-dh { border-bottom: 1px solid var(--cal-line); padding: 8px 4px; text-align: center; background: rgba(255,255,255,0.02); }
.cal-dh span { display: block; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-dim); }
.cal-dh b { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 0.92rem; margin-top: 2px; }
.cal-dh--today b { background: var(--accent); color: #fff; }
.cal-gutter { position: relative; border-right: 1px solid var(--cal-line); }
.cal-hour { position: absolute; right: 6px; transform: translateY(-50%); font-size: 0.58rem; font-weight: 700; color: var(--text-dim); letter-spacing: 0.04em; white-space: nowrap; }
.cal-hour:first-child { transform: none; top: 4px !important; }
.cal-cols { grid-column: 2 / -1; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); position: relative; }
.cal-grid--1 .cal-cols { grid-template-columns: 1fr; }
.cal-col { position: relative; border-right: 1px solid var(--cal-line); min-width: 0; }
.cal-col:last-child { border-right: none; }
.cal-col--today { background: rgba(46,92,255,0.05); }
.cal-col > i { position: absolute; left: 0; right: 0; height: 1px; background: var(--cal-line); opacity: 0.6; }
.cal-slot { position: absolute; padding: 0 2px; box-sizing: border-box; }
.cal-ev {
  display: flex; flex-direction: column; gap: 1px; width: 100%; height: 100%; text-align: left; overflow: hidden;
  border-radius: 7px; padding: 5px 7px; border: 1px solid transparent; cursor: pointer; font-family: 'DM Sans', sans-serif; color: var(--text);
  transition: filter 0.15s, transform 0.15s;
}
.cal-ev:hover { filter: brightness(1.12); }
.cal-ev-t { font-weight: 700; font-size: 0.72rem; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-ev-s { font-size: 0.62rem; opacity: 0.85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-ev-time { font-size: 0.6rem; opacity: 0.8; margin-top: auto; font-variant-numeric: tabular-nums; }
.cal-ev--published { background: rgba(46,92,255,0.28); border-color: rgba(91,140,255,0.55); }
.cal-ev--awaiting { background: rgba(240,197,96,0.2); border-color: rgba(240,197,96,0.6); }
.cal-ev--draft { background: rgba(240,197,96,0.07); border-color: rgba(240,197,96,0.45); border-style: dashed; }
.cal-ev--held { background: rgba(255,255,255,0.03); border-color: var(--text-dim); border-style: dashed; color: var(--text-muted); }
.cal-ev--archived { background: rgba(255,255,255,0.07); border-color: var(--border); color: var(--text-muted); }

/* month */
.cal-month { border: 1px solid var(--cal-line); border-radius: 12px; overflow: hidden; background: rgba(0,0,0,0.12); }
.cal-month-head { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-bottom: 1px solid var(--cal-line); background: rgba(255,255,255,0.02); }
.cal-month-head span { text-align: center; padding: 7px 0; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-dim); }
.cal-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cal-cell { min-height: 92px; border-right: 1px solid var(--cal-line); border-bottom: 1px solid var(--cal-line); padding: 5px; display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cal-cell:nth-child(7n) { border-right: none; }
.cal-cell:nth-last-child(-n+7) { border-bottom: none; }
.cal-cell--other { opacity: 0.4; }
.cal-cell--today { background: rgba(46,92,255,0.06); }
.cal-cell-n { font-family: 'Outfit', sans-serif; font-weight: 800; font-size: 0.74rem; color: var(--text-muted); width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.cal-cell--today .cal-cell-n { background: var(--accent); color: #fff; }
.cal-cell .cal-ev { height: auto; padding: 2px 6px; border-radius: 5px; }
.cal-cell .cal-ev-t { font-size: 0.64rem; }
.cal-cell .cal-ev-s { display: none; }
.cal-more { font-size: 0.6rem; color: var(--text-dim); padding-left: 4px; }

/* legend */
.cal-legend { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 0.7rem; font-size: 0.68rem; color: var(--text-muted); }
.cal-legend span { display: inline-flex; align-items: center; gap: 6px; }
.cal-legend i { width: 12px; height: 12px; border-radius: 3px; display: inline-block; border: 1px solid transparent; }

/* venue profile tab */
.ent-cal { padding-top: 0.9rem; }

@media (max-width: 720px) {
  .cal-grid { grid-template-columns: 44px repeat(7, minmax(0, 1fr)); }
  .cal-grid--1 { grid-template-columns: 44px minmax(0, 1fr); }
  .cal-ev-s, .cal-ev-time { display: none; }
  .cal-ev { padding: 3px 4px; }
  .cal-cell { min-height: 64px; }
  .cal-head { gap: 0.5rem; }
}
