.calendar-strip {
  flex: 1;
  min-width: 0;
  display: flex;
  gap: 0.4rem;
  padding: 0.35rem 0.1rem 0.5rem;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  scrollbar-color: var(--gold) transparent;
}

.day-tile {
  position: relative;
  flex: 0 0 56px;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.4rem 0;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--bg-panel);
  color: var(--text);
  font-variant-numeric: tabular-nums;
  scroll-snap-align: start;
  transition: transform 0.15s, border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.day-tile.week-start:not(:first-child) {
  margin-left: 0.6rem;
}

.day-tile:hover:not(:disabled) {
  transform: translateY(-2px);
  border-color: var(--gold);
}

.day-tile:focus-visible {
  outline: 2px solid var(--gold-bright);
  outline-offset: 2px;
}

.day-tile.is-weekend {
  background: rgba(214, 177, 92, 0.12);
}

.day-tile.is-selected {
  border-color: var(--gold-bright);
  background: var(--gold);
  color: var(--gold-ink);
  box-shadow: 0 0 16px rgba(214, 177, 92, 0.55);
}

.day-tile.is-proposed {
  opacity: 0.4;
  cursor: not-allowed;
}

.day-tile.is-proposed::after {
  content: '✗';
  position: absolute;
  top: 0;
  right: 5px;
  color: var(--danger);
  font-weight: 800;
}

.day-name {
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.9;
}

.day-num {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.15;
}

.day-month {
  font-size: 0.64rem;
  opacity: 0.85;
}

/* Ticked off in the notepad: still pickable, but clearly marked as ruled out. */
.day-tile.is-noted:not(.is-selected) {
  border-style: dashed;
  border-color: var(--text-muted);
  background: transparent;
}

.day-tile.is-noted:not(.is-selected) .day-num {
  text-decoration: line-through;
  text-decoration-color: var(--danger);
  opacity: 0.6;
}

.day-tile.is-noted:not(.is-proposed)::after {
  content: '✎';
  position: absolute;
  top: 0;
  right: 5px;
  font-size: 0.7rem;
  color: var(--text-muted);
}

.calendar-strip.is-locked .day-tile {
  pointer-events: none;
  filter: saturate(0.4);
}

.propose-btn {
  flex: 0 0 auto;
  min-width: 11.5rem;
  white-space: nowrap;
}

.propose-date {
  margin-left: 0.3em;
}

/* Phones: a compact two-line button beside the dates instead of a full-width row. */
@media (max-width: 767.98px) {
  .day-tile {
    flex-basis: 3.25rem;
    padding: 0.3rem 0;
  }

  .day-num {
    font-size: 1.1rem;
  }

  .propose-btn {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    width: 5.5rem;
    padding: 0.3rem 0.4rem;
    white-space: normal;
    line-height: 1.15;
  }

  .propose-verb {
    font-size: 0.85rem;
  }

  .propose-date {
    margin-left: 0;
    font-size: 0.72rem;
    font-weight: 500;
  }
}
