/**
 * modules/appointment/styles.css
 *
 * ใช้คลาสการ์ดร่วมกับโมดูล timeline — นัดหมายคือ item ชนิดหนึ่ง ไม่ใช่ของคนละโลก
 * ที่นี่จึงมีเฉพาะส่วนที่โมดูลนั้นไม่มี
 */

.appt-quick {
  margin-bottom: 1.25em;
  padding: 1em 1.2em;
  border-radius: .5em;
  border: 1px solid var(--border-color, #e5e7eb);
  background: var(--card-bg, #fff);
}

.appt-quick > label {
  display: block;
  margin-bottom: .4em;
  font-size: .9em;
  color: var(--text-muted, #6b7280);
}

.appt-quick-row {
  display: flex;
  flex-wrap: wrap;
  gap: .5em;
}

.appt-quick-row input {
  flex: 1 1 20em;
  min-width: 0;
  padding: .5em .75em;
  border-radius: .35em;
  border: 1px solid var(--border-color, #d1d5db);
  background: var(--input-bg, #fff);
  color: inherit;
  font: inherit;
}

/* สิ่งที่ระบบเข้าใจ ต้องอ่านง่ายพอที่ผู้ใช้จะจับผิดได้ก่อนกดบันทึก */
.appt-preview {
  display: flex;
  flex-wrap: wrap;
  gap: .75em;
  align-items: center;
  justify-content: space-between;
  margin-top: .75em;
  padding: .7em 1em;
  border-radius: .4em;
  border-left: 4px solid var(--success, #10b981);
  background: var(--bg-muted, #f3f4f6);
}

.appt-preview > div {
  display: flex;
  flex-wrap: wrap;
  gap: .1em 1em;
  align-items: baseline;
}

.appt-preview b {
  font-size: 1.05em;
}

.appt-preview span {
  color: var(--text-muted, #6b7280);
  font-size: .9em;
}

.appt-preview.is-bad {
  border-left-color: var(--danger, #dc2626);
  color: var(--danger, #dc2626);
}

/* นัดที่ผ่านไปแล้วยังอยู่ในรายการ แต่ไม่ควรแย่งสายตาจากของที่ยังไม่ถึง */
.timeline-card.is-past {
  opacity: .55;
}
