/**
 * Regenerate Cascadia - Calendar
 * Modular CSS partial from rc-template-styles.css
 * Version: v1.0-s147
 * Date: 2026-04-02
 * Generated by Claude (S147, Sprint 4)
 *
 * Sections: 17 (CALENDAR GRID), 51 (CALENDAR PAGE ENHANCEMENTS)
 */

/* ═══════════════════════════════════════
   17. CALENDAR GRID
   Used by: Calendar
   ═══════════════════════════════════════ */
.rc-cal-header {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0;
  border-bottom: 2px solid var(--rc-forest);
}
.rc-cal-header-day {
  font-family: 'Inconsolata', monospace;
  font-size: 10px; font-weight: 500;
  letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--rc-fern);
  padding: 12px 8px;
  text-align: center;
}
.rc-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0;
}
.rc-cal-cell {
  min-height: 100px;
  border: 1px solid rgba(0,0,0,0.04);
  border-top: none;
  padding: 6px;
  position: relative;
  transition: background 0.15s;
}
.rc-cal-cell:hover { background: var(--rc-cream); }
.rc-cal-cell.other-month { background: var(--rc-fog); opacity: 0.4; }
.rc-cal-cell.today { background: rgba(116,198,157,0.08); }
.rc-cal-cell.today::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--rc-moss);
}
.rc-cal-day-num {
  font-family: 'Inconsolata', monospace;
  font-size: 12px; font-weight: 500;
  color: var(--rc-canopy);
  margin-bottom: 4px;
}
.rc-cal-cell.other-month .rc-cal-day-num { color: rgba(0,0,0,0.2); }
.rc-cal-cell.today .rc-cal-day-num { color: var(--rc-forest); font-weight: 600; }
.rc-cal-event {
  font-size: 10px; font-weight: 400;
  line-height: 1.3;
  padding: 2px 4px;
  margin-bottom: 2px;
  cursor: pointer;
  transition: opacity 0.15s;
  display: block;
  text-decoration: none;
  color: inherit;
}
.rc-cal-event:hover { opacity: 0.8; }
.rc-cal-event.lhc { background: rgba(45,106,79,0.12); color: var(--rc-forest); }
.rc-cal-event.learning { background: rgba(45,107,138,0.12); color: var(--rc-river); }
.rc-cal-event.community { background: rgba(184,150,62,0.15); color: #8B7530; }
.rc-cal-event.landscape { background: rgba(212,113,78,0.12); color: var(--rc-salmon); }
.rc-cal-event.internal { background: rgba(0,0,0,0.04); color: rgba(0,0,0,0.4); }
.rc-cal-event-time {
  font-family: 'Inconsolata', monospace;
  font-size: 9px;
  color: inherit;
  opacity: 0.6;
}



/* =============================================
   51. CALENDAR PAGE ENHANCEMENTS
   Version: v1.0
   Date: March 23, 2026
   Generated by Claude (S102)

   Dynamic legend groups, TEC month view
   category color-coding, hover tooltip
   styling, and general calendar polish.
   Uses CSS custom properties for all colors.
   ============================================= */

/* --- Legend Group Labels --- */
.rc-sb-legend-group {
    margin-bottom: 12px;
}
.rc-sb-legend-group:last-child {
    margin-bottom: 0;
}
.rc-sb-legend-group-label {
    font-family: 'Inconsolata', monospace;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--rc-forest);
    margin-bottom: 4px;
    padding-top: 8px;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}
.rc-sb-legend-group:first-child .rc-sb-legend-group-label {
    padding-top: 0;
    border-top: none;
}

/* Legend dot: now uses inline background via PHP */
.rc-sb-legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 2px;
    flex-shrink: 0;
}

/* --- TEC Month View Overrides --- */

/* Overall calendar container */
.tribe-events-calendar-month {
    font-family: 'Jost', sans-serif;
}

/* Month header bar */
.tribe-events-calendar-month__header-column-dayofweek {
    font-family: 'Inconsolata', monospace !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: 0.2em !important;
    text-transform: uppercase !important;
    color: var(--rc-fern) !important;
}

/* Calendar day cells */
.tribe-events-calendar-month__day {
    transition: background 0.15s;
}
.tribe-events-calendar-month__day:hover {
    background: rgba(246, 243, 237, 0.5);
}

/* Day number */
.tribe-events-calendar-month__day-date-daynum {
    font-family: 'Inconsolata', monospace !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: var(--rc-canopy) !important;
}

/* Today highlight */
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum {
    color: var(--rc-forest) !important;
    font-weight: 700 !important;
}
.tribe-events-calendar-month__day--current {
    background: rgba(116, 198, 157, 0.06) !important;
}

/* Past month days */
.tribe-events-calendar-month__day--past .tribe-events-calendar-month__day-date-daynum {
    opacity: 0.4;
}

/* --- Event Items in Month Grid --- */
.tribe-events-calendar-month__calendar-event {
    margin-bottom: 2px !important;
    border-radius: 3px !important;
    overflow: hidden;
    transition: transform 0.15s, box-shadow 0.15s;
}
.tribe-events-calendar-month__calendar-event:hover {
    transform: translateX(1px);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

/* Event title in grid */
.tribe-events-calendar-month__calendar-event-title {
    font-family: 'Jost', sans-serif !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    line-height: 1.3 !important;
}

/* Event time in grid */
.tribe-events-calendar-month__calendar-event-datetime {
    font-family: 'Inconsolata', monospace !important;
    font-size: 9px !important;
    letter-spacing: 0.05em !important;
    opacity: 0.7;
}

/* --- Category Color Accents (left border) --- */
/* LHC events: teal */
.tribe-events-calendar-month__calendar-event[class*="lhc-session"],
.tribe-events-calendar-month__calendar-event[class*="lhc-classroom"],
.tribe-events-calendar-month__calendar-event[class*="lhc-content-drop"],
article[class*="tribe-events-category-lhc-session"],
article[class*="tribe-events-category-lhc-classroom"],
article[class*="tribe-events-category-lhc-content-drop"] {
    border-left: 3px solid #1A7A6B !important;
    background: rgba(26, 122, 107, 0.06) !important;
}

/* Crossover events: terracotta */
.tribe-events-calendar-month__calendar-event[class*="cascadia-campfires"],
.tribe-events-calendar-month__calendar-event[class*="rc-community-call"],
article[class*="tribe-events-category-cascadia-campfires"],
article[class*="tribe-events-category-rc-community-call"] {
    border-left: 3px solid #C4603C !important;
    background: rgba(196, 96, 60, 0.06) !important;
}

/* Learning Journey: indigo */
.tribe-events-calendar-month__calendar-event[class*="learning-journey"],
article[class*="tribe-events-category-learning-journey"] {
    border-left: 3px solid #4A5899 !important;
    background: rgba(74, 88, 153, 0.06) !important;
}

/* Landscapes Office Hours: gold */
.tribe-events-calendar-month__calendar-event[class*="landscapes-office-hours"],
article[class*="tribe-events-category-landscapes-office-hours"] {
    border-left: 3px solid #8B6914 !important;
    background: rgba(139, 105, 20, 0.06) !important;
}

/* --- TEC Tooltip Styling --- */
.tribe-events-calendar-month__calendar-event-tooltip {
    font-family: 'Jost', sans-serif !important;
    background: var(--rc-warm-white) !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    box-shadow: 0 8px 32px rgba(18, 43, 26, 0.12) !important;
    border-radius: 0 !important;
    padding: 0 !important;
    min-width: 260px;
    max-width: 320px;
    z-index: 10000 !important;
}

/* Tooltip featured image */
.tribe-events-calendar-month__calendar-event-tooltip .tribe-events-calendar-month__calendar-event-tooltip-featured-image {
    width: 100%;
    max-height: 140px;
    overflow: hidden;
}
.tribe-events-calendar-month__calendar-event-tooltip .tribe-events-calendar-month__calendar-event-tooltip-featured-image img {
    width: 100% !important;
    height: 140px !important;
    object-fit: cover !important;
    display: block !important;
}

/* Tooltip content area */
.tribe-events-calendar-month__calendar-event-tooltip-body {
    padding: 16px 18px 18px !important;
}

/* Tooltip title */
.tribe-events-calendar-month__calendar-event-tooltip-title {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    color: var(--rc-forest) !important;
    line-height: 1.25 !important;
    margin-bottom: 6px !important;
}
.tribe-events-calendar-month__calendar-event-tooltip-title a {
    color: inherit !important;
    text-decoration: none !important;
}

/* Tooltip datetime */
.tribe-events-calendar-month__calendar-event-tooltip-datetime {
    font-family: 'Inconsolata', monospace !important;
    font-size: 10px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    color: var(--rc-fern) !important;
    margin-bottom: 8px !important;
}

/* Tooltip description/excerpt */
.tribe-events-calendar-month__calendar-event-tooltip-description {
    font-family: 'Jost', sans-serif !important;
    font-size: 13px !important;
    font-weight: 300 !important;
    color: var(--rc-text) !important;
    line-height: 1.6 !important;
}

/* Tooltip category badge */
.tribe-events-calendar-month__calendar-event-tooltip .tribe-events-calendar-month__calendar-event-tooltip-featured-image + .tribe-events-calendar-month__calendar-event-tooltip-body::before {
    content: none;
}

/* --- TEC Navigation Overrides --- */
.tribe-events-calendar-month-nav {
    font-family: 'Jost', sans-serif !important;
}

/* Previous/Next buttons */
.tribe-events-c-nav__prev,
.tribe-events-c-nav__next {
    font-family: 'Inconsolata', monospace !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    color: var(--rc-canopy) !important;
}

/* Month title in nav */
.tribe-events-c-top-bar__datepicker-button {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    color: var(--rc-forest) !important;
}

/* --- TEC General Resets --- */
.tribe-common .tribe-common-anchor-thin {
    color: var(--rc-canopy) !important;
}
.tribe-common .tribe-common-anchor-thin:hover {
    color: var(--rc-forest) !important;
}

/* More events link in cell */
.tribe-events-calendar-month__more-events {
    font-family: 'Inconsolata', monospace !important;
    font-size: 10px !important;
    letter-spacing: 0.1em !important;
    color: var(--rc-canopy) !important;
}
.tribe-events-calendar-month__more-events:hover {
    color: var(--rc-forest) !important;
}

/* --- Calendar Responsive --- */
@media (max-width: 900px) {
    .rc-sb-legend-group-label {
        font-size: 8px;
    }
}
@media (max-width: 768px) {
    .tribe-events-calendar-month__calendar-event-tooltip {
        min-width: 220px;
    }
}


/* =============================================
   Opportunity Directory + Form (S121)
   ============================================= */

/* Shared filter row pattern */
.rc-opp-filters,
.rc-resource-filters { margin-bottom: 24px; }
.rc-opp-filter-row,
.rc-resource-filter-row {
  display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end;
}
.rc-opp-filter-field,
.rc-resource-filter-field { flex: 1 1 180px; min-width: 140px; }
.rc-opp-filter-field input,
.rc-opp-filter-field select,
.rc-resource-filter-field input,
.rc-resource-filter-field select {
  width: 100%; padding: 8px 12px; border: 1px solid var(--rc-border, rgba(0,0,0,.12));
  border-radius: 4px; font-family: 'Jost', sans-serif; font-size: 14px;
  color: var(--rc-text); background: #fff;
}
.rc-opp-filter-actions,
.rc-resource-filter-actions {
  flex: 0 0 auto; display: flex; gap: 10px; align-items: center;
}
.rc-opp-clear-link,
.rc-resource-clear-link {
  font-family: 'Jost', sans-serif; font-size: 13px;
  color: var(--rc-canopy); text-decoration: underline;
}

/* Results count */
.rc-opp-count,
.rc-resource-count {
  font-family: 'Inconsolata', monospace; font-size: 12px; font-weight: 500;
  letter-spacing: .06em; text-transform: uppercase; color: var(--rc-fern);
  margin-bottom: 16px;
}

/* Card grids */
.rc-opp-grid,
.rc-resource-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}

/* Opportunity card */
.rc-opp-card {
  background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 8px;
  overflow: hidden; display: flex; flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}
.rc-opp-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); transform: translateY(-2px); }
.rc-opp-card-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px 0;
}
.rc-opp-card-logo {
  width: 36px; height: 36px; border-radius: 4px; object-fit: cover;
}
.rc-opp-type-badge,
.rc-resource-type-badge {
  display: inline-block; padding: 3px 10px; border-radius: 3px;
  font-family: 'Inconsolata', monospace; font-size: 10px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; color: #fff;
}
.rc-opp-card-body { padding: 12px 16px; flex: 1; }
.rc-opp-card-title {
  font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 600;
  line-height: 1.3; margin: 0 0 4px; color: var(--rc-forest);
}
.rc-opp-card-title a { color: inherit; text-decoration: none; }
.rc-opp-card-title a:hover { color: var(--rc-canopy); }
.rc-opp-card-org {
  font-family: 'Jost', sans-serif; font-size: 13px; font-weight: 500;
  color: var(--rc-fern); margin: 0 0 6px;
}
.rc-opp-card-meta {
  display: flex; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 8px;
}
.rc-opp-meta-item {
  font-family: 'Inconsolata', monospace; font-size: 11px;
  letter-spacing: .04em; color: var(--rc-text-light, #666);
}
.rc-opp-card-desc {
  font-family: 'Jost', sans-serif; font-size: 13px; line-height: 1.5;
  color: var(--rc-text); margin: 0;
}
.rc-opp-card-footer {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 16px; border-top: 1px solid rgba(0,0,0,.04);
  margin-top: auto;
}
.rc-opp-deadline {
  font-family: 'Inconsolata', monospace; font-size: 11px; font-weight: 500;
  letter-spacing: .04em; color: var(--rc-fern);
}
.rc-opp-deadline-urgent { color: var(--rc-salmon); font-weight: 700; }
.rc-opp-deadline-near { color: var(--rc-gold-dark, #8B6914); }
.rc-opp-apply-link {
  font-family: 'Jost', sans-serif; font-size: 13px; font-weight: 500;
  color: var(--rc-canopy); text-decoration: none;
}
.rc-opp-apply-link:hover { text-decoration: underline; }

/* Resource card */
.rc-resource-card {
  background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 8px;
  overflow: hidden; display: flex; flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}
.rc-resource-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.08); transform: translateY(-2px); }
.rc-resource-card-thumb {
  aspect-ratio: 16/9; overflow: hidden; background: var(--rc-cream);
}
.rc-resource-card-thumb img {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.rc-resource-card-body { padding: 14px 16px; flex: 1; }
.rc-resource-card-title {
  font-family: 'Cormorant Garamond', serif; font-size: 18px; font-weight: 600;
  line-height: 1.3; margin: 6px 0 4px; color: var(--rc-forest);
}
.rc-resource-card-title a { color: inherit; text-decoration: none; }
.rc-resource-card-title a:hover { color: var(--rc-canopy); }
.rc-resource-card-source {
  font-family: 'Jost', sans-serif; font-size: 13px; font-weight: 500;
  color: var(--rc-fern); margin: 0 0 2px;
}
.rc-resource-card-date {
  font-family: 'Inconsolata', monospace; font-size: 11px;
  letter-spacing: .04em; color: var(--rc-text-light, #666); margin: 0 0 6px;
}
.rc-resource-card-desc {
  font-family: 'Jost', sans-serif; font-size: 13px; line-height: 1.5;
  color: var(--rc-text); margin: 0;
}

/* Pagination */
.rc-opp-pagination,
.rc-resource-pagination {
  display: flex; justify-content: center; gap: 6px; margin-top: 32px;
}
.rc-opp-pagination a,
.rc-opp-pagination span,
.rc-resource-pagination a,
.rc-resource-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 4px;
  font-family: 'Jost', sans-serif; font-size: 13px;
  text-decoration: none; color: var(--rc-canopy);
  border: 1px solid rgba(0,0,0,.08);
}
.rc-opp-page-current,
.rc-resource-page-current {
  background: var(--rc-forest); color: #fff; border-color: var(--rc-forest);
}

/* Empty state and CTA */
.rc-opp-empty,
.rc-resource-empty {
  text-align: center; padding: 48px 24px;
  font-family: 'Jost', sans-serif; font-size: 15px; color: var(--rc-text);
}
.rc-opp-submit-cta,
.rc-resource-submit-cta {
  text-align: center; margin-top: 32px; padding-top: 24px;
  border-top: 1px solid rgba(0,0,0,.06);
}

/* Form wrappers */
.rc-opp-form-wrap,
.rc-resource-form-wrap { max-width: 680px; }

/* Responsive */
@media (max-width: 900px) {
  .rc-opp-grid, .rc-resource-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .rc-opp-grid, .rc-resource-grid { grid-template-columns: 1fr; }
  .rc-opp-filter-row, .rc-resource-filter-row { flex-direction: column; }
  .rc-opp-filter-field, .rc-resource-filter-field { flex: 1 1 100%; }
}

/* View details link in cards (S122) */
.rc-opp-view-link,
.rc-resource-view-link {
  font-family: 'Inconsolata', monospace; font-size: 11px; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase; color: var(--rc-canopy);
  margin-left: auto;
}
a.rc-opp-card:hover .rc-opp-view-link,
a.rc-resource-card:hover .rc-resource-view-link { color: var(--rc-salmon); }
a.rc-opp-card { cursor: pointer; }
a.rc-resource-card { cursor: pointer; }


