
/* ---------- season view (schedule page) ---------- */
.season-count { font-size: .9rem; color: var(--ink-soft); margin: 0 0 8px; }
.month { padding: 0; margin-top: 36px; }
@media (max-width: 600px) { .month { margin-top: 28px; } .month-head { font-size: 1.35rem; margin-bottom: 10px; } }
.month-head { font-size: 1.6rem; margin: 0 0 14px; font-weight: 700; letter-spacing: -0.02em; }
.session.is-past { opacity: .82; }
.chip-done { background: var(--p-green); color: var(--black); border-color: var(--black); }
.chip-planned { border-style: dashed; }
.break-row {
  display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline;
  border: var(--stroke) dashed var(--line); border-radius: 18px; padding: 12px 18px; color: var(--ink-soft);
}
.break-row b { color: var(--ink); }

/* ---------- filters (schedule page): two tabs + two dropdowns ---------- */
.s-bar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; margin: 8px 0 14px;
  border-bottom: 2px solid color-mix(in srgb, var(--line) 18%, transparent); }
.s-tabs { display: flex; gap: 4px; }
.s-tab { font: inherit; font-weight: 700; font-size: 1.05rem; background: none; border: 0; border-bottom: 3px solid transparent; color: var(--ink-soft);
  padding: 10px 14px 12px; margin-bottom: -2px; cursor: pointer; }
.s-tab small { font-family: var(--mono); font-weight: 400; font-size: .8rem; margin-left: 4px; opacity: .8; }
.s-tab[aria-pressed="true"] { color: var(--ink); border-bottom-color: var(--ink); }
.s-tab:hover { color: var(--ink); }
.s-selects { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding-bottom: 10px; }
.s-select { position: relative; display: inline-flex; }
.s-select select { appearance: none; -webkit-appearance: none; font: inherit; font-size: .92rem; color: var(--ink); background: transparent;
  border: var(--stroke) solid var(--line); border-radius: 999px; min-height: 40px; padding: 0 36px 0 14px; cursor: pointer; }
.s-select::after { content: ""; position: absolute; right: 14px; top: 50%; width: 8px; height: 8px; border: solid currentColor; border-width: 0 2px 2px 0;
  transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.s-select.on select { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.s-select.on { color: var(--bg); }
.s-select select option { color: #1e1e1e; background: #fff; }
.s-clear { font: inherit; font-size: .9rem; font-weight: 700; background: none; border: 0; color: var(--accent); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; padding: 8px 4px; }
.chip.lv-beginner { background: var(--p-green); } .chip.lv-intermediate { background: var(--p-yellow); } .chip.lv-advanced { background: var(--p-red); }
.chip.lv-all { background: transparent; color: inherit; }
.chip-level:not(.lv-all) { color: var(--black, #1e1e1e); }
.filter-empty { border: var(--stroke) dashed var(--line); border-radius: 18px; padding: 22px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; }
.filter-empty p { margin: 0; color: var(--ink-soft); }
@media (max-width: 600px) {
  .s-bar { align-items: stretch; flex-direction: column; border-bottom: 0; gap: 10px; }
  .s-tabs { border-bottom: 2px solid color-mix(in srgb, var(--line) 18%, transparent); }
  .s-tab { flex: 1; }
  .s-selects { padding-bottom: 0; }
  .s-select { flex: 1; } .s-select select { width: 100%; }
}

/* add to calendar */
.cal-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-top: 18px; }
.cal-cta .help { margin: 0; max-width: 46ch; font-size: .88rem; color: var(--ink-soft); }

/* members only: I'm going */
.rsvp { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 10px 0 2px; }
.rsvp-btn { font: inherit; font-size: .92rem; font-weight: 700; min-height: 40px; padding: 0 16px; border-radius: 999px; cursor: pointer;
  border: var(--stroke) solid var(--line); background: var(--surface); color: var(--ink); }
.rsvp-btn[aria-pressed="true"] { background: var(--green, #34a853); border-color: var(--green, #34a853); color: #fff; }
.rsvp-faces { display: inline-flex; }
.rsvp-faces i { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font: 700 .68rem/1 var(--mono); font-style: normal;
  background: var(--p-blue); color: #1e1e1e; border: 2px solid var(--surface); margin-left: -8px; }
.rsvp-faces i:first-child { margin-left: 0; }
.rsvp-faces i:nth-child(2) { background: var(--p-green); } .rsvp-faces i:nth-child(3) { background: var(--p-yellow); } .rsvp-faces i:nth-child(4) { background: var(--p-red); }
.rsvp-line { font-size: .88rem; color: var(--ink-soft); }
.rsvp-line b { color: var(--ink); }

/* members only: vote on a planned session */
.poll { margin: 10px 0 4px; padding: 14px; border: var(--stroke) dashed var(--line); border-radius: 16px; display: grid; gap: 10px; }
.poll-q { margin: 0 !important; font-weight: 700; }
.poll-opts { display: grid; gap: 8px; }
.poll-opt { position: relative; overflow: hidden; display: flex; justify-content: space-between; align-items: center; gap: 10px; text-align: left;
  font: inherit; font-size: .95rem; min-height: 44px; padding: 0 14px; border-radius: 12px; border: var(--stroke) solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer; }
.poll-opt span, .poll-opt small { position: relative; }
.poll-opt small { font-family: var(--mono); }
.poll-bar { position: absolute; inset: 0 auto 0 0; background: color-mix(in srgb, var(--accent, #1a73e8) 16%, transparent); }
.poll-opt[aria-pressed="true"] { border-color: var(--accent, #1a73e8); font-weight: 700; }
.poll-meta { margin: 0 !important; font-size: .82rem; color: var(--ink-soft); }

/* after a session: catch up */
.recap { margin: 10px 0 4px; padding: 12px 14px; border-radius: 14px; background: color-mix(in srgb, var(--p-green) 45%, transparent); display: grid; gap: 4px; }
.recap a { font-weight: 700; color: inherit; }
.recap p { margin: 0 !important; font-size: .92rem; }
.recap p span { font-weight: 700; }
.recap { background: var(--p-green); color: #1e1e1e; }
/* the language a session is given in */
.chip-lang { display: inline-flex; align-items: center; gap: 5px; }
.chip-lang::before { content: ""; width: 12px; height: 12px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'><circle cx='12' cy='12' r='9'/><path d='M3 12h18M12 3c3 3.5 3 14.5 0 18M12 3c-3 3.5-3 14.5 0 18'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'><circle cx='12' cy='12' r='9'/><path d='M3 12h18M12 3c3 3.5 3 14.5 0 18M12 3c-3 3.5-3 14.5 0 18'/></svg>") center/contain no-repeat; }
@media (max-width: 600px) { .s-select { flex: 1 1 calc(50% - 4px); } }

/* add the whole season: a quiet outline button with the calendar icon */
.cal-all { gap: 10px; }
.cal-all::before { content: ""; width: 18px; height: 18px; flex: none; background: currentColor;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='3'/><path d='M3 10h18M8 3v4M16 3v4M12 13v5M9.5 15.5h5'/></svg>") center/contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='3'/><path d='M3 10h18M8 3v4M16 3v4M12 13v5M9.5 15.5h5'/></svg>") center/contain no-repeat; }
