:root { --radius: 16px; }

.card, .btn, .form-control, .form-select { border-radius: var(--radius); }
.shadow-soft { box-shadow: 0 8px 24px rgba(0,0,0,.06); }

.calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; }
.calendar .dow { font-size: .8rem; color: rgba(0,0,0,.55); text-align: center; font-weight: 600; }

.day-cell {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  min-height: 92px;
  padding: 10px;
  position: relative;
  transition: transform .08s ease, box-shadow .08s ease;
}
.day-cell:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(0,0,0,.06); }
.day-num { font-weight: 700; }
.day-muted { opacity: .4; }
.day-today { border-color: rgba(13,110,253,.45); box-shadow: 0 0 0 4px rgba(13,110,253,.08); }
.count-badge { position: absolute; right: 10px; top: 10px; }
a.day-link { color: inherit; text-decoration: none; display: block; height: 100%; }

.appointment {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  padding: 14px;
  position: relative;
}
.appointment::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 6px;
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
  background: rgba(0,0,0,.15);
}

.accent-neutral::before { background: rgba(108,117,125,.55); }
.accent-warning::before { background: rgba(255,193,7,.9); }
.accent-danger::before  { background: rgba(220,53,69,.9); }
.accent-orange::before  { background: rgba(253,126,20,.95); }
.accent-success::before { background: rgba(34,197,94,.95); }

.tag { font-size: .82rem; }


/* Status Concluído (verde) */
.appointment.accent-success{border-left:6px solid #22c55e;}

/* PATCH_LIGNET_CONCLUIDO_V2 */
