/* components/calendar.css — Custom Date Picker */

.calendar-wrapper {
  position: relative;
  display: inline-block;
  width: 100%;
}

.calendar-input {
  cursor: pointer;
  caret-color: transparent;
  user-select: none;
  color: var(--text-primary) !important;
  background: var(--bg-elevated) !important;
}

/* Hide native date picker indicator on all browsers */
.calendar-input::-webkit-calendar-picker-indicator,
.calendar-input::-webkit-inner-spin-button {
  display: none !important;
  -webkit-appearance: none !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  position: absolute !important;
  pointer-events: none !important;
}

.calendar-input::-moz-calendar-picker-indicator {
  display: none !important;
}

.calendar-input::-ms-clear,
.calendar-input::-ms-reveal {
  display: none !important;
}

.calendar-popup {
  position: absolute;
  top: calc(100% + var(--sp-1));
  left: 0;
  z-index: var(--z-modal, 200);
  background: var(--bg-overlay);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-modal);
  padding: var(--sp-4);
  width: 280px;
  animation: calendar-in var(--t-fast) ease forwards;
}

.calendar-popup.closed {
  display: none;
}

@keyframes calendar-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-3);
}

.calendar-nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  border-radius: var(--r-sm);
  transition: background var(--t-fast), color var(--t-fast);
}

.calendar-nav:hover {
  background: var(--bg-elevated);
  color: var(--text-primary);
}

.calendar-month-year {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text-primary);
}

.calendar-year-btn {
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
  padding: var(--sp-1) var(--sp-2);
  border-radius: var(--r-sm);
  transition: background var(--t-fast), color var(--t-fast);
}

.calendar-year-btn:hover {
  background: var(--accent-subtle);
  color: var(--accent);
}

.calendar-years {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-1);
}

.calendar-year-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-size: var(--text-sm);
  cursor: pointer;
  border-radius: var(--r-sm);
  transition: background var(--t-fast), color var(--t-fast);
}

.calendar-year-cell:hover {
  background: var(--bg-elevated);
}

.calendar-year-cell.selected {
  background: var(--accent);
  color: var(--text-inverse);
  font-weight: 600;
}

.calendar-year-cell.selected:hover {
  background: var(--accent-dim);
}

.calendar-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  margin-bottom: var(--sp-2);
}

.calendar-weekday {
  text-align: center;
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--text-muted);
  padding: var(--sp-1) 0;
  text-transform: uppercase;
}

.calendar-days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.calendar-day {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 32px;
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-size: var(--text-sm);
  cursor: pointer;
  border-radius: var(--r-sm);
  transition: background var(--t-fast), color var(--t-fast);
}

.calendar-day:hover {
  background: var(--bg-elevated);
}

.calendar-day.other-month {
  color: var(--text-muted);
}

.calendar-day.today {
  font-weight: 700;
  color: var(--accent);
  border: 1px solid var(--accent);
}

.calendar-day.selected {
  background: var(--accent);
  color: var(--text-inverse);
  font-weight: 600;
}

.calendar-day.selected:hover {
  background: var(--accent-dim);
}

.calendar-day:disabled {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}

.calendar-footer {
  display: flex;
  justify-content: space-between;
  margin-top: var(--sp-3);
  padding-top: var(--sp-2);
  border-top: 1px solid var(--border-subtle);
}

.calendar-today-btn {
  border: none;
  background: transparent;
  color: var(--accent);
  font-size: var(--text-xs);
  font-weight: 500;
  cursor: pointer;
  padding: var(--sp-1) var(--sp-2);
  border-radius: var(--r-sm);
  transition: background var(--t-fast);
}

.calendar-today-btn:hover {
  background: var(--accent-subtle);
}

.calendar-clear-btn {
  border: none;
  background: transparent;
  color: var(--text-muted);
  font-size: var(--text-xs);
  cursor: pointer;
  padding: var(--sp-1) var(--sp-2);
  border-radius: var(--r-sm);
  transition: background var(--t-fast), color var(--t-fast);
}

.calendar-clear-btn:hover {
  background: var(--bg-elevated);
  color: var(--text-primary);
}
