.appointment-dialog{width:min(600px,calc(100vw - 24px));max-height:90dvh;border:1px solid var(--border,#ddd);border-radius:12px;padding:0;color:inherit;background:white}
.appointment-dialog::backdrop{background:rgb(20 25 35 / .3)}
.appointment-dialog header,.appointment-dialog footer{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:16px 20px;background:white;position:sticky;z-index:1}
.appointment-dialog header{top:0;border-bottom:1px solid #eee}.appointment-dialog footer{bottom:0;border-top:1px solid #eee;flex-wrap:wrap}.appointment-dialog h2{margin:0;font-size:1.2rem}
.appointment-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px}.appointment-fields .wide{grid-column:1/-1}.appointment-fields label{display:flex;flex-direction:column;gap:6px;min-width:0}.appointment-fields input,.appointment-fields select,.appointment-fields textarea{width:100%;min-width:0;box-sizing:border-box}.appointment-detail{padding:20px}.appointment-notes{white-space:pre-wrap}
.appointment-row,.appointment-contact{display:flex;justify-content:space-between;gap:12px;text-align:left;width:100%;padding:14px;border:0;border-bottom:1px solid #eee;background:white;color:inherit;font:inherit;cursor:pointer}.appointment-row:hover,.appointment-contact:hover{background:#f7f4f5}.appointment-row small,.appointment-contact small{display:block;color:#666;margin-top:5px}
@media(max-width:520px){.appointment-fields{grid-template-columns:1fr}.appointment-row{flex-wrap:wrap}}
.calendar-controls{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.calendar-controls .active{background:#78142a;color:white}
.mail-token-input{min-height:42px;padding:10px;border:1px solid #d8d1d4;border-radius:6px;background:white;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;outline-color:#78142a}.mail-token-input[aria-multiline="true"]{min-height:110px}.mail-field-chip{display:inline-block;padding:1px 7px;margin:0 2px;border-radius:5px;background:#f2e5e9;color:#78142a;font-size:.9em;white-space:nowrap}.mail-insert-field{max-width:210px;font-size:.85rem}.mail-demo-label{font-size:.8rem;color:#6f626a;padding:8px 12px;background:#f7f4f5}
.mail-appointment-context{padding:12px;background:#faf6f7;border-left:3px solid #78142a;border-radius:5px;margin:8px 0;display:flex;flex-direction:column;gap:8px}.mail-appointment-context[hidden]{display:none}.mail-appointment-context select{max-width:100%}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #e5e2e3;border-top:1px solid #e5e2e3}.calendar-day{min-width:0;min-height:110px;padding:8px;border-right:1px solid #e5e2e3;border-bottom:1px solid #e5e2e3}.calendar-day h3{font-size:.78rem;margin:0 0 8px;color:#666}.calendar-day.today{background:#faf4f5}.calendar-event{display:flex;flex-direction:column;text-align:left;gap:3px;width:100%;padding:8px;border:0;border-left:3px solid #78142a;background:#f0e7ea;color:#34252a;font:inherit;font-size:.78rem;margin:4px 0;border-radius:4px;cursor:pointer;overflow-wrap:anywhere}.calendar-event.cancelled{opacity:.6;border-color:#888;background:#eee}.calendar-event.completed{border-color:#507464;background:#edf4f0}.calendar-no-events{display:none}
@media(max-width:760px){.calendar-grid{display:block;border:0}.calendar-day{min-height:0;border:0;border-bottom:1px solid #eee;padding:12px 0}.calendar-day:not(.has-events):not(.today){display:none}.calendar-day.today:not(.has-events) .calendar-no-events{display:block}.calendar-event{font-size:.9rem}.calendar-controls strong{width:100%}}
