.v2-calendar { min-width: 0; }
.v2-calendar-intro, .v2-calendar-note { color: #929a96; font-size: .82rem; line-height: 1.5; }
.v2-calendar-intro { margin: 0 0 1rem; }
.v2-calendar-days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .5rem; margin-bottom: 1rem; }
.v2-calendar-day { display: flex; flex-direction: column; align-items: center; gap: .3rem; padding: .75rem .3rem; border-radius: 10px; border: 1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.025); color: #b1b6b3; cursor: pointer; transition: background .2s, border-color .2s; font: inherit; }
.v2-calendar-day strong { color: #e0e5e2; font-size: .9rem; }
.v2-calendar-day span { font-size: .73rem; }
.v2-calendar-day small { color: #7e8982; font-size: .66rem; }
.v2-calendar-day[aria-pressed="true"] { border-color: rgba(123,231,169,.36); background: rgba(101,205,144,.1); }
.v2-calendar-day:hover { background: rgba(123,231,169,.075); }
.v2-calendar-results { display: grid; grid-template-columns: repeat(auto-fill,minmax(250px,1fr)); gap: .75rem; min-height: 125px; }
.v2-calendar-entry { display: flex; align-items: center; gap: .85rem; padding: .75rem; border: 1px solid rgba(255,255,255,.075); border-radius: 12px; background: rgba(255,255,255,.025); color: inherit; text-decoration: none; min-width: 0; transition: background .2s, border-color .2s; }
.v2-calendar-entry:hover { background: rgba(123,231,169,.06); border-color: rgba(123,231,169,.25); }
.v2-calendar-entry img { width: 58px; height: 81px; object-fit: cover; border-radius: 7px; flex-shrink: 0; background: #202522; }
.v2-calendar-entry-body { display: grid; gap: .4rem; min-width: 0; }
.v2-calendar-entry strong { font-size: .88rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.v2-calendar-entry time { font-size: .82rem; color: #a8e1be; }
.v2-calendar-entry small { color: #939d97; font-size: .73rem; }
.v2-calendar-empty { grid-column: 1/-1; align-self: center; padding: 1.2rem; text-align: center; color: #8c9790; font-size: .85rem; }
.v2-calendar-more { grid-column: 1/-1; justify-self: center; color: #a2b2a8; font-size: .8rem; padding: .6rem; }
.v2-calendar-note { margin: .8rem 0 0; font-size: .72rem; }
.v2-calendar-week { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.v2-calendar-week strong { color: #c7d0ca; font-size: .9rem; font-weight: 500; }
.v2-calendar-week button { width: 2rem; height: 2rem; border-radius: 7px; border: 1px solid #ffffff12; background: #ffffff05; color: #b6c4bc; font-size: 1.4rem; cursor: pointer; }
.v2-calendar-week button:disabled { opacity: .25; cursor: default; }
.v2-calendar button:focus-visible, .v2-calendar-entry:focus-visible { outline: 2px solid #8ce8b4; outline-offset: 3px; }
@media(max-width: 760px) {
  .v2-calendar-days { gap: .25rem; }
  .v2-calendar-day { padding: .65rem .1rem; border-radius: 8px; }
  .v2-calendar-day span { font-size: .63rem; }
  .v2-calendar-day small { font-size: .58rem; }
  .v2-calendar-results { grid-template-columns: 1fr; }
}

.v2-calendar[data-compact="1"] .v2-calendar-days { display: flex; gap: 1.4rem; margin-bottom: 1rem; }
.v2-calendar-tab {
  padding: .45rem 0 .6rem; border: 0; border-bottom: 2px solid transparent;
  background: transparent; color: #8f9993; font: inherit; font-size: .85rem;
  cursor: pointer; transition: color .2s, border-color .2s;
}
.v2-calendar-tab:hover { color: #d4e4da; }
.v2-calendar-tab[aria-pressed="true"] { color: #bce9cd; border-bottom-color: #8acba4; }
@media(max-width: 760px) {
  .v2-calendar[data-compact="1"] .v2-calendar-days { gap: 1.2rem; }
}

.v2-calendar[data-upcoming="true"] .v2-calendar-entry img { width: 60px; height: 84px; }
