/* Calendar uses the existing fonts, palette and SVG sprite. */
.appointment-month-field .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.appointment-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.appointment-month-nav,.appointment-toolbar-actions{display:flex;align-items:center;gap:10px;min-width:0}
.appointment-month-field{min-width:0;width:210px}.appointment-month-field input{max-width:100%;min-width:0}
.appointment-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:22px;align-items:start}
.appointment-month{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;min-width:0}
.appointment-weekdays,.appointment-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.appointment-weekdays{margin-bottom:10px;text-align:center;font-size:11px;color:var(--muted)}
.appointment-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:48px;padding:5px 2px;background:var(--canvas);color:var(--ink);border:1px solid transparent;border-radius:10px;font-size:14px}
.appointment-day small{font-size:9px;white-space:nowrap;color:var(--muted)}.appointment-day.today{border-color:#8eaa60}.appointment-day.selected{background:var(--accent);border-color:var(--accent);font-weight:600}.appointment-day.selected small{color:#526336}.appointment-calendar-hint{margin-top:18px;line-height:1.5}
.appointment-agenda{min-width:0}.appointment-agenda-head{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:0 0 16px}.appointment-agenda-head h2{font-size:19px}.appointment-agenda-head p{font-size:12px;color:var(--muted);margin-top:6px}
.appointment-records{display:grid;gap:12px}.appointment-card{border:1px solid var(--line);background:white;border-radius:20px;padding:20px;min-width:0}.appointment-card h3{font-size:16px;margin:14px 0 6px;overflow-wrap:anywhere}.appointment-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.appointment-time{display:flex;align-items:center;gap:8px;font-size:14px;font-variant-numeric:tabular-nums}.appointment-time .icon{width:17px;height:17px}.appointment-contact{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.appointment-services{display:flex;gap:8px;align-items:flex-start;margin:14px 0;font-size:12px;line-height:1.5}.appointment-services .icon{width:17px;height:17px;color:#798569}.appointment-services span{min-width:0;overflow-wrap:anywhere}.appointment-card-actions{display:flex;gap:8px;flex-wrap:wrap}.appointment-card.cancelled{background:#f8f8f4}.appointment-cancelled{margin-top:20px}.appointment-cancelled summary{font-size:12px;cursor:pointer;padding:12px 0;min-height:44px;color:var(--muted)}
.appointment-empty{border:1px dashed var(--line);border-radius:20px;padding:30px 22px;text-align:center}.appointment-empty>.icon{width:26px;height:26px;color:#7d8b68}.appointment-empty h3{font-size:17px;margin:13px 0 8px}.appointment-empty p{font-size:12px;color:var(--muted);line-height:1.5}.appointment-loading{min-height:150px;font-size:13px}.appointment-error p{margin:15px 0;font-size:13px}
#appointment-form{display:grid;gap:24px}#appointment-form h3{font-size:16px;margin:0 0 14px}#appointment-form .form-grid{gap:16px}#appointment-form .form-buttons{margin-top:0}.appointment-slot-fields>.small{margin-top:12px;line-height:1.6}
.appointment-client-modes{display:flex;gap:5px;background:#e8ebdf;border-radius:12px;padding:5px;margin-bottom:16px}.appointment-client-modes button{flex:1;min-width:0;min-height:44px;border:0;border-radius:9px;background:transparent;font-size:12px;color:var(--muted);padding:9px}.appointment-client-modes button[aria-pressed=true]{background:white;color:var(--ink);font-weight:600}.appointment-existing .form-field>span{display:flex;align-items:center;gap:8px}.appointment-existing .form-field>span .icon{width:14px;height:14px}.appointment-client-results{display:grid;gap:6px;margin-top:10px;max-height:250px;overflow:auto}.appointment-client-results:empty{display:none}.appointment-client-option{display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;background:var(--field);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-height:52px;min-width:0}.appointment-client-option>span{min-width:0}.appointment-client-option strong{display:block;font-size:13px;overflow-wrap:anywhere}.appointment-client-option small{display:block;margin-top:5px;font-size:11px;color:var(--muted);overflow-wrap:anywhere}.appointment-chosen{display:flex;gap:12px;align-items:center;border:1px solid var(--line);background:var(--field);border-radius:12px;padding:14px;margin-bottom:16px}.appointment-chosen>div{flex:1;min-width:0}.appointment-chosen strong{font-size:13px;overflow-wrap:anywhere}.appointment-chosen p{font-size:11px;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}.appointment-chosen .button{padding:10px 13px;font-size:11px}
.appointment-service-row{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:12px;align-items:end;margin-bottom:14px}.appointment-overlap>strong{display:block;font-size:13px;margin-bottom:8px}#appointment-overlap-list p{font-size:12px;line-height:1.5;margin-bottom:6px}.appointment-overlap .check-row{margin-top:12px}.appointment-cancel-copy{font-size:14px;line-height:1.5;margin-bottom:14px;overflow-wrap:anywhere}
@media(min-width:901px){.employee-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.appointment-layout{grid-template-columns:minmax(0,1fr)}.appointment-month{max-width:500px;width:100%;margin:0 auto}.appointment-agenda-head{align-items:flex-start}}
@media(max-width:600px){.appointment-toolbar{gap:12px}.appointment-month-nav{width:100%}.appointment-month-field{flex:1}.appointment-toolbar-actions{width:100%}.appointment-toolbar-actions .button{flex:1}.appointment-month{padding:14px}.appointment-days,.appointment-weekdays{gap:4px}.appointment-day{min-height:52px;font-size:13px}.appointment-day small{font-size:8px}.appointment-agenda-head{flex-direction:column;gap:12px}.appointment-agenda-head>.button{width:100%}.appointment-card{padding:18px}.appointment-card-actions .button{flex:1;min-width:0;padding-inline:12px}.appointment-chosen{flex-wrap:wrap}.appointment-chosen .button{margin-left:32px}.appointment-client-modes button{font-size:11px}.appointment-service-row{gap:10px}.appointment-overlap .check-row{align-items:flex-start}}
.appointment-toolbar-actions{flex-wrap:wrap}.appointment-notice-status{display:flex;flex-direction:column;gap:7px;margin:0 0 14px;font-size:11px;color:var(--muted)}.appointment-notice-status span,.appointment-notice-connections span{display:flex;gap:7px;align-items:center;overflow-wrap:anywhere}.appointment-notice-status .icon,.appointment-notice-connections .icon{width:15px;height:15px}.appointment-confirmation-hint{margin-top:16px;line-height:1.6}
#appointment-notice-form{display:grid;gap:20px;min-width:0}#appointment-notice-form fieldset{border:0;padding:0;margin:18px 0 0;min-width:0}#appointment-notice-form legend{font-weight:600;margin-bottom:10px;font-size:14px}.appointment-notice-controls{border:1px solid var(--line);border-radius:16px;padding:18px}.appointment-notice-channels{display:flex;gap:24px;flex-wrap:wrap;margin:0 0 12px}.appointment-notice-connections{display:grid;gap:10px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line);font-size:12px}.appointment-notice-controls .small,#appointment-notice-form>.small{line-height:1.65}.appointment-notice-variables{display:flex;flex-wrap:wrap;gap:7px}.appointment-notice-variables .button{padding:10px 13px;font-size:12px}.appointment-notice-advanced{border:1px solid var(--line);padding:0 16px;border-radius:14px}.appointment-notice-advanced summary{cursor:pointer;min-height:48px;padding:14px 0;font-size:13px}.appointment-notice-advanced p{margin:12px 0 18px;line-height:1.65}#appointment-notice-form .appointment-client-modes{margin:0}#appointment-notice-form .appointment-client-modes button{display:flex;align-items:center;justify-content:center;gap:8px}#appointment-notice-form .appointment-client-modes .icon{width:17px;height:17px}#appointment-notice-form [data-notice-channel]{display:grid;gap:16px}#appointment-notice-form [data-notice-channel][hidden]{display:none}#appointment-notice-form textarea{width:100%;min-width:0;resize:vertical;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--field);line-height:1.6}#appointment-notice-preview:empty{display:none}#appointment-notice-preview h3{font-size:15px;margin:0 0 14px}#appointment-notice-preview pre{font:14px/1.6 Roboto,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--field);border-radius:16px;padding:18px;margin:0 0 12px}#appointment-notice-preview iframe{width:100%;height:480px;border:1px solid var(--line);border-radius:16px}#appointment-notice-form .form-buttons{margin-top:0}
@media(max-width:600px){.appointment-toolbar-actions [data-action=appointment-notifications]{flex-basis:100%}.appointment-notice-controls{padding:16px}#appointment-notice-form textarea{font-size:16px}.appointment-notice-variables .button{padding:10px 12px}}
/* A local day timeline; page width and the existing calendar stay unchanged. */
.appointment-timeline{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;min-width:0;margin-bottom:24px}
.appointment-timeline-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.appointment-timeline-head h3{display:flex;align-items:center;gap:8px;font-size:16px}.appointment-timeline-head .icon{width:17px;height:17px}.appointment-timeline-head>span{font-size:11px;color:var(--muted)}
.appointment-timeline-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.appointment-timeline-legend>span{display:flex;align-items:center;gap:6px}.appointment-timeline-legend i{width:10px;height:10px;display:inline-block;border:1px solid var(--line);background:#f8f9f5;border-radius:3px}.appointment-timeline-legend i.is-busy{background:var(--accent);border-color:#a7c657}.appointment-time-total{margin-left:auto;font-variant-numeric:tabular-nums}.appointment-timeline-help{margin:12px 0 16px;line-height:1.6}
.appointment-time-scroll{max-height:460px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:12px;background:#fafbf7;padding:0 8px;scrollbar-gutter:stable;min-width:0}.appointment-time-scroll:focus-visible{outline:2px solid #7b9149;outline-offset:3px}
.appointment-time-canvas{position:relative;min-width:calc(48px + var(--appointment-columns)*92px)}.appointment-time-grid{position:absolute;top:12px;left:0;right:0;pointer-events:none}.appointment-hour-line{position:absolute;left:0;right:0;height:1px;border-top:1px solid #dfe3d6}.appointment-hour-line span{position:absolute;top:0;left:0;width:43px;transform:translateY(-50%);background:#fafbf7;color:#6b6d66;font-size:11px;font-variant-numeric:tabular-nums;line-height:20px}
.appointment-time-track{position:absolute;top:12px;left:48px;right:0}.appointment-free-slot{position:absolute;left:0;right:0;border:0;border-bottom:1px dashed #e3e7da;background:transparent;cursor:pointer;text-align:right;color:#8b927f;font-size:10px;padding:0 9px;min-width:0;min-height:0}.appointment-free-slot:hover:not(:disabled){background:#eaf2d9;color:#536635}.appointment-free-slot:disabled{background:#f0f1ec;cursor:default;color:#a0a497}.appointment-free-slot:focus-visible{outline:2px solid #718c3c;outline-offset:-2px;z-index:3}
.appointment-timed-booking{position:absolute;z-index:1;display:flex;flex-direction:column;gap:5px;align-items:flex-start;text-align:left;border:1px solid #aac667;border-left:3px solid #8cae39;background:#e7f2ca;border-radius:8px;padding:9px 10px;min-width:0;min-height:0;overflow:hidden;cursor:pointer;color:var(--ink);box-sizing:border-box}.appointment-timed-booking:hover{background:var(--accent);z-index:2}.appointment-timed-booking:focus-visible{outline:2px solid var(--ink);outline-offset:-2px;z-index:3}.appointment-timed-booking>span,.appointment-timed-booking>strong{width:100%;min-width:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.appointment-timed-hours{font-size:11px;font-variant-numeric:tabular-nums}.appointment-timed-booking strong{font-size:12px;font-weight:600}.appointment-timed-services{font-size:11px;color:#65724e}.appointment-timed-booking.is-compact{padding:5px 8px;gap:3px}.appointment-timed-booking.is-compact .appointment-timed-services{display:none}.appointment-timed-booking.is-short{padding:0 5px;justify-content:center;border-radius:4px;gap:0}.appointment-timed-booking.is-short strong{display:none}.appointment-timed-booking.is-short .appointment-timed-hours{font-size:10px}
.appointment-free-times{margin-top:12px}.appointment-free-times summary{font-size:12px;color:#64744d;cursor:pointer;padding:12px 0;min-height:44px}.appointment-free-times>div{display:flex;gap:8px;flex-wrap:wrap;padding:0 0 4px}.appointment-free-times .button{font-size:11px;padding:11px 13px;min-height:44px}.appointment-list-title{font-size:15px;margin:0 0 14px}
@media(max-width:600px){.appointment-timeline{padding:14px}.appointment-time-scroll{max-height:420px;padding:0 4px}.appointment-time-canvas{min-width:calc(40px + var(--appointment-columns)*86px)}.appointment-time-track{left:40px}.appointment-hour-line span{width:36px;font-size:10px}.appointment-timed-booking{padding:8px 6px}.appointment-timed-booking strong{font-size:11px}.appointment-timed-hours{font-size:10px}.appointment-timed-booking.is-compact{padding:5px 6px;gap:3px}.appointment-timeline-legend{gap:10px}.appointment-time-total{margin-left:0}.appointment-free-slot{padding-right:5px}}

/* Compact month and day list share the left column; narrow screens keep reading order. */
.appointment-side{display:grid;gap:22px;min-width:0}.appointment-list{min-width:0}.appointment-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.appointment-list-head .appointment-list-title{margin:0}.appointment-list-head>span{font-size:11px;color:var(--muted);white-space:nowrap}
.appointment-list .appointment-card{padding:16px}.appointment-list .appointment-card h3{margin:12px 0 5px;font-size:15px}.appointment-list .appointment-services{margin:12px 0;gap:7px}.appointment-list .appointment-time{font-size:12px;gap:7px}.appointment-list .appointment-card-actions{gap:7px}.appointment-list .appointment-card-actions .button{font-size:11px;padding:10px 12px;min-height:44px}.appointment-list .appointment-notice-status{margin-bottom:12px}.appointment-agenda-head{flex-wrap:wrap}.appointment-agenda .appointment-timeline{margin-bottom:0}
@media(max-width:1100px){.appointment-layout{grid-template-columns:minmax(0,1fr);gap:22px}.appointment-side{display:contents}.appointment-layout>.appointment-side>.appointment-month{order:1;max-width:360px;width:100%;margin:0 auto}.appointment-agenda{order:2}.appointment-list{order:3}.appointment-agenda-head{align-items:flex-start}}
@media(max-width:600px){.appointment-layout{gap:20px}.appointment-list .appointment-card{padding:16px}.appointment-list .appointment-card-actions .button{flex:1}.appointment-list-head{gap:10px}}

.appointment-primary{margin:0 0 20px}.appointment-primary>.button{min-height:56px;padding:16px 26px;font-size:15px;gap:10px}.appointment-primary .icon{width:20px;height:20px}.appointment-slot-status{margin-top:12px;font-size:12px;line-height:1.6}.appointment-slot-status summary{min-height:44px;padding:10px 0;cursor:pointer;color:var(--muted)}.appointment-slot-status details p{padding:0 0 10px;overflow-wrap:anywhere}.employee-main .page-actions{flex-wrap:wrap}.employee-main .page-actions .button{min-height:46px}#employee-search-form .form-field>span{display:flex;align-items:center;gap:8px}#employee-search-form .form-field .icon{width:15px;height:15px}#employee-search-form #employee-results{min-width:0}
@media(max-width:600px){.appointment-primary>.button{width:100%;min-height:58px;font-size:15px}.employee-main .page-actions .button{flex:1;padding-inline:12px}.employee-main .page-head p{line-height:1.6}#employee-search-form .employee-client{gap:12px}}

/* Reception cards use the existing rectangular brand treatment. */
.employee-actions{grid-auto-rows:1fr}.employee-action{min-width:0}.employee-action>span{min-width:0;overflow-wrap:anywhere}
.employee-client-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;flex:none;max-width:100%}
@media(max-width:600px){.employee-client-actions{justify-content:flex-start}.employee-client-actions>.button{white-space:normal;text-align:left}}

/* Date and primary action share a row above both panels; the panels begin together. */
.appointment-daybar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 18px;min-width:0}.appointment-daybar>div{min-width:0}.appointment-daybar h2{font-size:19px;line-height:1.4;overflow-wrap:anywhere}.appointment-daybar p{font-size:12px;color:var(--muted);margin-top:5px}.appointment-daybar .appointment-primary{margin:0}.appointment-daybar .appointment-primary>.button{white-space:normal;text-align:center}
@media(max-width:600px){.appointment-daybar{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:20px}.appointment-daybar .appointment-primary{width:100%}}

#appointment-form [hidden]{display:none!important}
