/* Patient monthly calendar and time picker. */
.pc-calendar{max-width:860px;margin-inline:auto}
.pc-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.pc-toolbar h2{font-size:1.35rem;margin:0;font-variant-numeric:tabular-nums}
.care .pc-toolbar button{min-width:48px;padding:10px 14px;background:#fff;color:var(--tm-navy);border-color:var(--tm-line-2);box-shadow:var(--tm-shadow-1)}
.care .pc-toolbar button:hover{background:var(--tm-navy-tint);transform:none}
.pc-zone{text-align:center;margin:6px 0 16px;color:var(--tm-ink-3);font-size:.9rem}
.pc-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:.86rem;margin-bottom:12px;color:var(--tm-ink-3)}
.pc-legend span{display:flex;align-items:center;gap:7px}
.pc-dot{display:inline-block;width:10px;height:10px;background:var(--tm-teal);border-radius:50%}
.pc-dot-busy{background:#b4bfca}
.pc-weekdays,.pc-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.pc-weekdays{text-align:center;color:var(--tm-ink-3);font-size:.8rem;font-weight:600;padding-block:10px 6px}
.care .pc-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:78px;min-width:0;padding:8px 2px;border:1px solid var(--tm-line);border-radius:var(--tm-r);background:#fff;color:var(--tm-ink-2);gap:3px;box-shadow:none;font-weight:500;transition:border-color var(--tm-fast) var(--tm-ease),box-shadow var(--tm-fast) var(--tm-ease),background var(--tm-fast) var(--tm-ease),transform var(--tm-fast) var(--tm-ease)}
.care .pc-day:hover:not(:disabled){border-color:#c5d3df;box-shadow:var(--tm-shadow-1);transform:none}
.pc-day span{font-size:1.15rem;font-weight:700;font-variant-numeric:tabular-nums}
.pc-day small{font-size:.72rem}
.care .pc-available{color:var(--tm-teal);background:var(--tm-teal-soft);border-color:#bfe0d4}
.care .pc-available:hover{background:#d9efe8}
.care .pc-selected{outline:0;border-color:var(--tm-navy);box-shadow:0 0 0 3px rgba(22,51,77,.14);background:#fff;color:var(--tm-navy)}
.care .pc-unavailable{background:var(--tm-surface-2);color:var(--tm-ink-4)}
.care .pc-day:disabled,.care .pc-time:disabled{opacity:1;cursor:default;box-shadow:none;transform:none}
.pc-time-section{border-top:1px solid var(--tm-line);margin-top:24px;padding-top:8px}
.pc-time-section h3{margin-block:12px 16px;font-size:1.05rem}
.pc-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.care .pc-time{display:flex;flex-direction:column;gap:5px;align-items:center;padding:14px 8px;border-radius:var(--tm-r);border:1px solid #bfe0d4;line-height:1.5;box-shadow:none;font-weight:500}
.care .pc-time-open{background:var(--tm-teal-soft);color:var(--tm-teal)}
.care .pc-time-open:hover{background:#d9efe8;border-color:#a9d3c6;transform:none}
.care .pc-time-unavailable{background:var(--tm-surface-2);border-color:var(--tm-line);color:var(--tm-ink-4)}
.pc-time strong{font-size:1rem;font-variant-numeric:tabular-nums}
.pc-time small{font-size:.8rem}
.care .pc-time-selected{background:var(--tm-navy);color:#fff;border-color:var(--tm-navy);box-shadow:0 8px 20px rgba(22,51,77,.2)}
.pc-times>.care-muted{grid-column:1/-1}
.care .pc-day:focus-visible,.care .pc-time:focus-visible{outline:0;box-shadow:var(--tm-ring)}
@media(max-width:600px){.pc-toolbar h2{font-size:1.15rem}.pc-weekdays,.pc-days{gap:4px}.care .pc-day{min-height:62px;border-radius:var(--tm-r-sm)}.pc-day span{font-size:1rem}.pc-day small{font-size:.62rem}.pc-weekdays{font-size:.68rem}.pc-times{grid-template-columns:repeat(2,minmax(0,1fr))}.pc-time strong{font-size:.9rem}.pc-legend{gap:12px;font-size:.78rem}}
