
/* v1.0.8 RC1 - Calendário próprio offline
   Substitui o seletor nativo type=date por componente local HTML/CSS/JS. */
.cf-date-proxy {
  cursor: pointer;
  background: var(--bg);
  color: var(--tx);
}
.cf-date-proxy::placeholder { color: var(--mu); }
.cf-cal-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
  align-items: flex-end;
  justify-content: center;
  background: rgba(0,0,0,.55);
  padding: 12px;
}
.cf-cal-overlay.open { display: flex; }
.cf-cal-panel {
  width: min(420px, 100%);
  max-height: 92vh;
  overflow: auto;
  border: 1px solid var(--bd);
  border-radius: 18px 18px 14px 14px;
  background: var(--sf);
  color: var(--tx);
  box-shadow: 0 18px 50px rgba(0,0,0,.45);
  padding: 14px;
}
.cf-cal-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:10px; }
.cf-cal-title { font-weight:800; font-size:16px; letter-spacing:.2px; }
.cf-cal-nav { display:flex; gap:6px; }
.cf-cal-btn {
  border:1px solid var(--bd);
  background: var(--bg);
  color: var(--tx);
  border-radius:10px;
  min-height:38px;
  padding:8px 11px;
  font-weight:700;
  cursor:pointer;
}
.cf-cal-btn:active, .cf-cal-day:active { transform: scale(.97); }
.cf-cal-selects { display:grid; grid-template-columns: 1fr 1fr; gap:8px; margin-bottom:12px; }
.cf-cal-selects select {
  width:100%; min-height:40px; border:1px solid var(--bd); border-radius:10px;
  background:var(--bg); color:var(--tx); padding:8px; font-weight:700;
}
.cf-cal-week, .cf-cal-grid { display:grid; grid-template-columns: repeat(7, 1fr); gap:5px; }
.cf-cal-week { margin-bottom:5px; color:var(--mu); font-size:11px; font-weight:800; text-align:center; }
.cf-cal-week div { padding:6px 0; }
.cf-cal-day {
  min-height:42px;
  border:1px solid transparent;
  border-radius:12px;
  background: var(--bg);
  color: var(--tx);
  font-weight:800;
  cursor:pointer;
}
.cf-cal-day.blank { visibility:hidden; pointer-events:none; }
.cf-cal-day.today { border-color: var(--ac); box-shadow: inset 0 0 0 1px var(--ac); }
.cf-cal-day.selected { background: var(--ac); color: #fff; }
.cf-cal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:14px; }
@media (min-width: 560px) {
  .cf-cal-overlay { align-items:center; }
  .cf-cal-panel { border-radius:16px; }
}
