.service-date-control{position:relative;max-width:100%;flex-shrink:0}
.service-date-control>.service-month-label{display:block;margin-bottom:10px}
.service-month-trigger{display:flex;align-items:center;justify-content:space-between;gap:22px;min-height:52px;min-width:238px;max-width:100%;padding:12px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--wine);font:var(--text-lead)/var(--lh-ui) var(--font-body);cursor:pointer;text-align:left;transition:border-color .18s,box-shadow .18s}
.service-month-trigger span:first-letter{text-transform:uppercase}.service-month-trigger svg{width:20px;height:20px;flex:none;color:var(--bronze)}
.service-month-trigger:hover,.service-month-trigger[aria-expanded=true]{border-color:var(--bronze);box-shadow:var(--shadow-sm)}.service-month-trigger:disabled{opacity:.5;cursor:wait}
.service-calendar{position:absolute;top:calc(100% + 10px);right:0;z-index:15;width:340px;max-width:calc(100vw - 2 * var(--gutter));padding:18px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--card);box-shadow:0 14px 48px #59311b20,0 2px 8px #59311b08;color:var(--wine);font:var(--text-ui)/var(--lh-ui) var(--font-ui)}
.service-calendar[hidden]{display:none!important}.service-calendar button{font:inherit;cursor:pointer;color:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.service-calendar-header{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:14px}
.service-calendar-header h3{margin:0;text-align:center;font:400 var(--text-script-sm)/var(--lh-heading) var(--font-serif)}.service-calendar-header h3:first-letter{text-transform:uppercase}
.service-calendar .service-calendar-nav{display:grid;place-items:center;width:36px;height:36px;padding:0 0 3px;border:1px solid var(--beige);border-radius:var(--radius-sm);background:transparent;font:var(--title-sm)/var(--lh-tight) var(--font-body)}
.service-calendar button:disabled{opacity:.32;cursor:default}.service-calendar-nav:hover:not(:disabled){background:var(--beige)}
.service-calendar-grid{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0}
.service-calendar-grid th{height:32px;padding:0;font-size:var(--text-caption);font-weight:400;color:var(--muted);text-align:center}
.service-calendar-grid td{padding:2px;text-align:center}
.service-calendar-day{position:relative;display:block;width:100%;height:38px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;padding:0;font-variant-numeric:tabular-nums}
.service-calendar-day.has-schedule:after{content:"";position:absolute;width:3px;height:3px;border-radius:50%;background:currentColor;bottom:4px;left:calc(50% - 1.5px);opacity:.65}
.service-calendar-day.is-outside{color:var(--sand)}.service-calendar-day.is-today{background:var(--beige);color:var(--brown)}.service-calendar-day:hover:not(:disabled){background:var(--beige)}
.service-calendar .service-calendar-day.is-selected{background:var(--wine);color:var(--card);border-color:var(--wine)}
.service-calendar-hint{margin:12px 0 16px;color:var(--muted);font-size:var(--text-caption);text-align:center}
.service-calendar-footer{display:flex;gap:10px;justify-content:space-between;border-top:1px solid var(--beige);padding-top:14px}
.service-calendar-footer button{min-height:40px;padding:9px 12px;border-radius:var(--radius-sm);font-size:var(--text-small)}
.service-calendar-today{border:1px solid var(--line);background:transparent}.service-calendar-apply{border:1px solid var(--beige);background:var(--beige)}
.service-calendar-footer button:hover{background:var(--beige)}.service-calendar button:focus-visible{outline:2px solid var(--copper);outline-offset:1px}
.a-day.is-selected .a-date h3{text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:6px}.a-day:focus{outline:none}.a-unpublished{font:var(--text-body)/var(--lh-loose) var(--font-body);color:var(--muted);margin:15px 0}
@media(max-width:1050px){.service-calendar{right:auto;left:0}}
@media(max-width:380px){.service-calendar{padding:12px}.service-calendar-day{height:36px}.service-calendar-header h3{font-size:var(--text-script-sm)}}
@media(prefers-reduced-motion:reduce){.service-month-trigger{transition:none}}
/* Пока расписание грузится, держим место на экран, чтобы блок ниже не прыгал. */
#service-days.is-loading{min-height:100svh}
