.patient-booking-policy{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border:1px solid #d7e4de;border-radius:999px;background:#f6faf8;color:#517068;font-size:11px;font-weight:700}
.next-appointment{margin-top:16px;padding:24px;border-color:#d6e2dc;background:linear-gradient(135deg,#fff 0%,#f7fbf9 100%);box-shadow:0 12px 32px rgba(22,62,51,.06)}
.next-appointment-top{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:18px}
.appointment-calendar{display:grid;place-items:center;width:72px;height:78px;border-radius:16px;background:#e8f3ef;color:#176b54}
.appointment-calendar small{font-size:10px;font-weight:800;letter-spacing:.1em}
.appointment-calendar strong{font-family:"DM Serif Display",serif;font-size:34px;line-height:1}
.appointment-calendar.compact{width:56px;height:60px;border-radius:13px}.appointment-calendar.compact strong{font-size:25px}
.next-appointment-copy>div{display:flex;align-items:center;gap:10px}.next-appointment-copy h2{margin:5px 0 4px;font-family:"DM Serif Display",serif;font-size:25px;font-weight:400;color:var(--text)}.next-appointment-copy p,.appointment-row p{margin:0;color:var(--muted);font-size:12px}
.appointment-countdown{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;background:#edf6f2;color:#176b54;font-size:10px;font-weight:800}
.appointment-progress{position:relative;display:grid;grid-template-columns:repeat(4,1fr);margin:26px 6px 6px}
.progress-line{position:absolute;left:11%;right:11%;top:10px;height:2px;background:#dfe8e3}.progress-line i{display:block;width:var(--progress);height:100%;border-radius:2px;background:#2d8069;transition:width .25s ease}
.progress-step{position:relative;display:grid;justify-items:center;gap:7px;color:#91a19b}.progress-step span{display:grid;place-items:center;width:22px;height:22px;border:2px solid #dfe8e3;border-radius:50%;background:#fff;font-size:9px;font-weight:800}.progress-step small{font-size:10px;font-weight:650;text-align:center}.progress-step.done,.progress-step.current{color:#176b54}.progress-step.done span{border-color:#2d8069;background:#2d8069;color:#fff}.progress-step.current span{border-color:#2d8069;box-shadow:0 0 0 5px rgba(45,128,105,.1)}
.next-appointment-actions{display:flex;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid #e5ece8}
.appointment-section{margin-top:26px}.appointment-section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:10px}.appointment-section-title h3{margin:3px 0 0;font-family:"DM Serif Display",serif;font-size:21px;font-weight:400}.appointment-section-title>small{color:var(--muted);font-size:11px}
.appointment-list{display:grid;gap:10px}.appointment-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:15px;padding:14px 16px;border-color:#dce5e0}.appointment-row h3{margin:5px 0 3px;font-size:14px}.appointment-row.history{opacity:.78;background:#fbfcfb}
.appointment-history{margin-top:24px}.appointment-history>summary{display:flex;justify-content:space-between;padding:13px 3px;border-bottom:1px solid #dfe7e3;color:var(--text);font-size:13px;font-weight:750;cursor:pointer}.appointment-history>summary small{color:var(--muted);font-size:10px;font-weight:550}.appointment-history>.appointment-list{margin-top:10px}
@media(max-width:720px){.next-appointment{padding:18px}.next-appointment-top{grid-template-columns:60px 1fr;gap:13px}.next-appointment-top>.badge{grid-column:2;justify-self:start}.appointment-calendar{width:60px;height:66px}.appointment-calendar strong{font-size:28px}.next-appointment-copy h2{font-size:20px}.appointment-progress{margin-inline:-5px}.progress-step small{font-size:8px}.appointment-row{grid-template-columns:48px 1fr;padding:12px}.appointment-row>.badge{grid-column:2;justify-self:start}.appointment-calendar.compact{width:48px;height:52px}.appointment-calendar.compact strong{font-size:22px}.next-appointment-actions .primary-button{width:100%;justify-content:center}}
