/* Reference calendar 07.10.2026. Enabled only by calendarReferenceEnabled().
   No .panel display override. Business rules/time coordinates live in calendar.js. */
#panel-calendar[data-calendar-reference="v1"] .cal-main {gap:0;width:100%;min-width:0;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-heading {display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-heading h1 {font-size:26px;line-height:1.3;font-weight:600;margin:0;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-heading p {font-size:13px;color:var(--ink-soft);margin:6px 0 0;}
#panel-calendar[data-calendar-reference="v1"] #btn-new-appointment-field {margin:0!important;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-toolbar {padding:0;margin:0 0 16px;border:0;background:none;box-shadow:none;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-toolbar > .row {align-items:center!important;justify-content:space-between;gap:12px;flex-wrap:wrap;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-date > label,
#panel-calendar[data-calendar-reference="v1"] #cal-doctor-field > label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-date > div {gap:8px!important;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-tools {display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;}
#panel-calendar[data-calendar-reference="v1"] #cal-doctor-tsel {width:170px;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-segment {display:inline-flex;padding:3px;background:var(--selection-bg);border-radius:6px;gap:2px;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-segment button {border:0;background:transparent;color:var(--ink-soft);border-radius:4px;padding:5px 12px;font-size:13px;min-height:28px;box-shadow:none;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-segment button[aria-pressed="true"] {background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm);}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-quick {display:none;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-quick.expanded {display:flex;margin-top:12px!important;max-width:100%;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-card {padding:0;margin:0;overflow:hidden;box-shadow:none;}
#panel-calendar[data-calendar-reference="v1"] .day-grid {border:0;border-radius:0;max-height:640px;min-height:320px;width:100%;}
#panel-calendar[data-calendar-reference="v1"] [hidden] {display:none!important;}
/* Одна прокрутка (29.10.2026): высоту сетки на компьютере задаёт calFitGridHeight() в calendar.js; полоса — тонкая. */
#panel-calendar[data-calendar-reference="v1"] .day-grid {scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink-soft) 35%,transparent) transparent;}
#panel-calendar[data-calendar-reference="v1"] .day-grid-header {width:max-content;min-width:100%;}
#panel-calendar[data-calendar-reference="v1"] .day-grid-body {width:max-content;min-width:100%;}
#panel-calendar[data-calendar-reference="v1"] .day-grid-header,
#panel-calendar[data-calendar-reference="v1"] .day-grid-body {width:100%;}
#panel-calendar[data-calendar-reference="v1"] .day-grid-doctor-col-header {padding:16px 12px;min-height:76px;border-bottom:1px solid var(--border);text-align:left;align-items:flex-start;justify-content:center;gap:4px;font-size:13px;font-weight:600;}
#panel-calendar[data-calendar-reference="v1"] .day-grid-doctor-col-header > div {gap:10px!important;width:100%;}
#panel-calendar[data-calendar-reference="v1"] .cal-doc-text {min-width:0;}
#panel-calendar[data-calendar-reference="v1"] .doc-name {display:block;}
#panel-calendar[data-calendar-reference="v1"] .cal-doc-subtitle {display:block;color:var(--ink-soft);font-size:11px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#panel-calendar[data-calendar-reference="v1"] .doc-avatar {height:32px;width:32px;border-radius:6px;font-size:12px;line-height:32px;text-align:center;}
#panel-calendar[data-calendar-reference="v1"] .day-grid-time-col-header {border-bottom:1px solid var(--border);}
#panel-calendar[data-calendar-reference="v1"] .time-label {right:10px;color:var(--ink-soft);font-size:11px;transform:translateY(-1px);}
#panel-calendar[data-calendar-reference="v1"] .day-grid-col {background:repeating-linear-gradient(to bottom,transparent 0,transparent 47px,color-mix(in srgb,var(--border) 55%,transparent) 48px,transparent 49px,transparent 95px,var(--border) 96px);cursor:crosshair;}
#panel-calendar[data-calendar-reference="v1"] .day-grid-col-off {background-color:color-mix(in srgb,var(--paper) 80%,var(--card));}
#panel-calendar[data-calendar-reference="v1"] .hour-band {display:none;}
#panel-calendar[data-calendar-reference="v1"] .day-grid-row-hover {background:color-mix(in srgb,var(--selection-bg) 22%,transparent);z-index:0;}
#panel-calendar[data-calendar-reference="v1"] .appt-block {left:7px;right:7px;border:1px solid var(--border);border-left:3px solid var(--action-bg);border-radius:6px;padding:9px 11px;line-height:1.35;background:var(--selection-bg);color:var(--ink);box-sizing:border-box;z-index:1;}
#panel-calendar[data-calendar-reference="v1"] .appt-block:hover {box-shadow:var(--shadow-md);z-index:2;filter:brightness(.98);}
#panel-calendar[data-calendar-reference="v1"] .appt-block-time {font-size:11px;font-weight:600;display:flex;justify-content:space-between;gap:4px;white-space:nowrap;}
#panel-calendar[data-calendar-reference="v1"] .appt-block-patient {font-size:13px;font-weight:600;margin:5px 0;}
#panel-calendar[data-calendar-reference="v1"] .appt-block-service,
#panel-calendar[data-calendar-reference="v1"] .appt-block-phone {font-size:11px;color:var(--ink-soft);opacity:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#panel-calendar[data-calendar-reference="v1"] .appt-block.completed {background:var(--money-good-soft);border-left-color:var(--money-good-ink);}
#panel-calendar[data-calendar-reference="v1"] .appt-block.cancelled {background:var(--money-bad-soft);border-left-color:var(--money-bad-ink);}
#panel-calendar[data-calendar-reference="v1"] .appt-block.no_show {background:var(--money-warn-soft);border-left-color:var(--money-warn-ink);}
#panel-calendar[data-calendar-reference="v1"] .appt-block-sz-short {padding:4px 8px;}
#panel-calendar[data-calendar-reference="v1"] .appt-block-sz-short .appt-block-patient {margin:0;font-size:12px;}
#panel-calendar[data-calendar-reference="v1"] .appt-block-sz-short .appt-block-service {display:none;}
#panel-calendar[data-calendar-reference="v1"] .appt-block-sz-tiny {padding:2px 6px;gap:6px;}
#panel-calendar[data-calendar-reference="v1"] .appt-block-sz-tiny .appt-block-patient {margin:0;font-size:12px;}
#panel-calendar[data-calendar-reference="v1"] .appt-block-sz-tiny .appt-block-service {display:none;}
#panel-calendar[data-calendar-reference="v1"] .now-line {border-top:1px solid var(--money-bad-ink);opacity:1;z-index:2;}
#panel-calendar[data-calendar-reference="v1"] .now-line::before {content:attr(data-time);position:absolute;left:-48px;top:-10px;background:var(--money-bad-ink);color:var(--card);border-radius:4px;padding:1px 5px;font-size:11px;width:auto;height:auto;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-foot {padding:12px 20px;border-top:1px solid var(--border);font-size:12px;color:var(--ink-soft);display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;}
#panel-calendar[data-calendar-reference="v1"] #cal-schedule-banner {margin:0!important;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-list {overflow:auto;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-list table {border-collapse:collapse;width:100%;min-width:640px;font-size:13px;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-list th,
#panel-calendar[data-calendar-reference="v1"] .cal-reference-list td {text-align:left;padding:14px 20px;border-bottom:1px solid var(--border);}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-list th {font-weight:400;color:var(--ink-soft);font-size:12px;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-list small {display:block;color:var(--ink-soft);font-size:12px;margin-top:3px;}
#panel-calendar[data-calendar-reference="v1"] .cal-reference-empty {padding:24px;color:var(--ink-soft);}
.cal-sr-only {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
#modal-appt-detail.calendar-reference-drawer .modal {width:min(440px,95vw);margin:48px 0 0 auto;height:calc(100dvh - 48px);max-height:calc(100dvh - 48px);border-radius:12px 0 0 12px;padding:24px;}
#modal-appt-detail.calendar-reference-drawer .modal > h3 {margin:0 -24px 24px;padding:0 24px 20px;border-bottom:1px solid var(--border);font-size:16px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-person {display:flex;gap:16px;align-items:center;margin-bottom:24px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-person h2 {font-size:16px;line-height:1.4;margin:0;overflow-wrap:anywhere;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-person p {margin:5px 0 0;font-size:13px;color:var(--ink-soft);}
#modal-appt-detail.calendar-reference-drawer .cal-detail-avatar {display:flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;height:48px;background:var(--selection-bg);border-radius:8px;font-size:20px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-time {font-size:20px;margin:20px 0 8px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-muted {color:var(--ink-soft);font-size:13px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-description {border-top:1px solid var(--border);margin-top:24px;padding-top:20px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-description h3 {font-size:14px;margin:0 0 8px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-description p {color:var(--ink-soft);font-size:13px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-done {margin:16px 0 0;padding:12px 14px;background:var(--paper);border-radius:8px;font-size:13px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-done strong {display:block;font-size:12px;color:var(--ink-soft);font-weight:600;margin-bottom:6px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-done ul {margin:0;padding-left:18px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-done li {margin:3px 0;overflow-wrap:anywhere;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-note {margin:20px 0;font-size:13px;overflow-wrap:anywhere;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-note p {white-space:pre-wrap;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-patient {width:100%;margin:24px 0 10px;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-actions {display:flex;flex-direction:column;gap:10px;align-items:stretch;}
#modal-appt-detail.calendar-reference-drawer .cal-detail-actions button {min-height:36px;}
@media(min-width:1600px) {#panel-calendar[data-calendar-reference="v1"] .day-grid {max-height:760px;}}
@media(max-width:760px) {
 #panel-calendar[data-calendar-reference="v1"] .cal-reference-tools {width:100%;}
 #panel-calendar[data-calendar-reference="v1"] .cal-reference-date > div {flex-wrap:wrap;}
 #panel-calendar[data-calendar-reference="v1"] .cal-reference-segment button {min-height:44px;}
 #panel-calendar[data-calendar-reference="v1"] .cal-reference-toolbar button,
 #panel-calendar[data-calendar-reference="v1"] .cal-reference-heading button,
 #panel-calendar[data-calendar-reference="v1"] #cal-date {min-height:44px;}
 #panel-calendar[data-calendar-reference="v1"] .cal-reference-heading {align-items:flex-start;}
 #modal-appt-detail.calendar-reference-drawer .modal {width:100%;margin:0;height:100dvh;max-height:100dvh;border-radius:0;}
 #modal-appt-detail.calendar-reference-drawer .cal-detail-actions button {min-height:44px;}
}
@media(pointer:coarse) {
 #panel-calendar[data-calendar-reference="v1"] .cal-reference-toolbar button,
 #panel-calendar[data-calendar-reference="v1"] .cal-reference-heading button,
 #panel-calendar[data-calendar-reference="v1"] #cal-date {min-height:44px;}
}
