.section-title{font-size:var(--text-xl);font-weight:var(--weight-semibold)}.section-title-muted{margin-top:var(--space-2);font-size:var(--text-md);color:var(--text-muted)}.appointment-card{padding:var(--space-5);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs);margin-bottom:var(--space-4)}.appointment{align-items:flex-start;gap:var(--space-5);display:flex}.appointment-date{border-radius:var(--radius-lg);background:var(--brand-soft);border:1px solid var(--brand-soft-border);width:64px;height:64px;color:var(--brand-text);flex-direction:column;flex:none;justify-content:center;align-items:center;display:flex}.appointment-day{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:1}.appointment-month{font-size:var(--text-xs);font-weight:var(--weight-semibold);text-transform:capitalize}.appointment-info{align-items:flex-start;gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.appointment-head{align-items:center;gap:var(--space-3);display:flex}.appointment-ref{font-size:var(--text-xs);color:var(--text-faint)}.appointment-info strong{font-size:var(--text-md);font-weight:var(--weight-semibold)}.appointment-info>span{font-size:var(--text-sm);color:var(--text-muted)}.appointment-meta{align-items:center;gap:var(--space-2);display:inline-flex}.appointment-actions{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);justify-content:flex-end;display:flex}.cancel-appt-btn{align-items:center;gap:var(--space-2);min-height:38px;padding:0 var(--space-3);border:1px solid var(--danger-soft-border);border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger-text);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out);display:inline-flex}.cancel-appt-btn:hover{background:color-mix(in srgb, var(--danger-soft) 70%, var(--bg-surface))}.field{gap:var(--space-2);flex-direction:column;display:flex}.field label,.field-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-primary)}.field select,.field input,.field textarea{width:100%;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);font-family:inherit;font-size:var(--text-base);color:var(--text-primary);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.field select,.field input{min-height:44px}.field textarea{resize:vertical}.field select:focus,.field input:focus,.field textarea:focus{border-color:var(--brand);box-shadow:var(--focus-ring);outline:none}.slots{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.slots-hint{font-size:var(--text-sm);color:var(--text-muted);grid-column:1/-1}.slot{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);min-height:40px;font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out)}.slot:hover{border-color:var(--border-strong);color:var(--text-primary)}.slot[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--text-on-brand)}.form-error{padding:var(--space-3) var(--space-4);border:1px solid var(--danger-soft-border);border-radius:var(--radius-md);background:var(--danger-soft);color:var(--danger-text);font-size:var(--text-sm)}.muted-text{font-size:var(--text-sm);color:var(--text-muted)}.info-list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.info-list li{align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary);line-height:var(--leading-normal);display:flex}.info-list li .icon{color:var(--text-muted);margin-top:2px}.modal-title{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.modal-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.modal-close{border-radius:var(--radius-md);width:34px;height:34px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:grid}.modal-close:hover{background:var(--bg-muted);color:var(--text-primary)}.modal-form{gap:var(--space-4);flex-direction:column;display:flex}.btn-primary{justify-content:center;align-items:center;gap:var(--space-2);min-height:42px;padding:0 var(--space-4);border-radius:var(--radius-md);background:var(--brand);color:var(--text-on-brand);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:0;display:inline-flex}.btn-primary:hover{background:var(--brand-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-primary.is-loading:after{content:"";border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.btn-ghost{min-height:42px;padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-secondary);font-family:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;align-items:center;display:inline-flex}.btn-ghost:hover{background:var(--bg-muted);color:var(--text-primary)}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
