/* Уведомления, отчёты, расписание и публичные слоты. */
.vh-entity-card--highlighted {
    border: 2px solid #f0b84b;
    background: linear-gradient(135deg, #fffdf5 0%, #fff 62%, #f3fbf7 100%);
    box-shadow: 0 10px 28px rgba(154, 102, 15, 0.14);
}
.vh-entity-card--highlighted:hover {
    border-color: #d99a20;
    box-shadow: 0 16px 34px rgba(154, 102, 15, 0.2);
}
.vh-entity-card--highlighted .vh-entity-card__media {
    border-right-color: #f6dfaa;
}
.vh-map-card--highlighted {
    border: 2px solid #f0b84b;
    background: linear-gradient(135deg, #fffdf5 0%, #fff 75%);
    box-shadow: 0 10px 26px rgba(154, 102, 15, 0.14);
}
.vh-map-card--highlighted:hover,
.vh-map-card--highlighted.is-active {
    border-color: #d99a20;
    background: #fffaf0;
    box-shadow: 0 14px 32px rgba(154, 102, 15, 0.2);
}
.vh-promotion-mark {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    width: max-content;
    margin: 0 0 8px;
    padding: 4px 8px;
    border: 1px solid #efd18d;
    border-radius: 999px;
    color: #7c4d0b;
    background: #fff4cf;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}
.cab-settings-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}
.cab-settings-card {
    display: grid;
    align-content: start;
    gap: 10px;
    padding: 18px;
    border: 1px solid #dce8e3;
    border-radius: 14px;
    background: #fbfdfc;
}
.cab-settings-card h3 { margin: 0; font-size: 19px; }
.cab-settings-card label { margin-top: 4px; }
.cab-settings-card--locked { background: #f5f6f5; border-style: dashed; }
.cab-settings-tests { padding-top: 18px; margin-top: 18px; border-top: 1px solid #e3ece8; }
.cab-settings-tests form { margin: 0; }
.cab-form-columns--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cab-schedule-table { min-width: 760px; }
.cab-schedule-table input[type="time"],
.cab-schedule-table select,
.cab-closure-form input,
.cab-closure-form select {
    width: 100%;
    min-height: 40px;
    border: 1px solid #b9cec4;
    border-radius: 8px;
    background: white;
    padding: 8px;
    color: inherit;
}
.cab-schedule-table input[type="checkbox"] { width: 20px; height: 20px; }
.cab-closure-form > div { min-width: 130px; }
.cab-closure-form > div:last-of-type { flex: 2; min-width: 220px; }
.cab-compact-list { display: grid; }
.cab-compact-list article,
.cab-delivery-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 13px 0;
    border-top: 1px solid #e3ece8;
}
.cab-compact-list article:first-child,
.cab-delivery-row:first-of-type { border-top: 0; }
.cab-compact-list small,
.cab-delivery-row small { display: block; }
.cab-text-error { color: #8b302b; }
.cab-report-callout {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: #f3faf6;
}
.cab-report-callout h2 { margin-bottom: 3px; }
.cab-report-callout p { margin: 0; }
.vh-lead-form__no-slots {
    padding: 10px 12px;
    border-radius: 9px;
    background: #fff0ed;
    color: #8b302b;
    font-size: 14px;
}
.vh-pet-section {
    display: grid;
    gap: 12px;
    margin: 10px 0 4px;
    padding-top: 16px;
    border-top: 1px solid #e2ebe7;
}
.vh-pet-section__heading h3 {
    margin: 0;
    color: #234b43;
    font-size: 17px;
}
.vh-pet-section__heading h3 span {
    color: #71837f;
    font-size: 12px;
    font-weight: 400;
}
.vh-pet-section__heading p,
.vh-pet-section__hint {
    margin: 4px 0 0;
    color: #637773;
    font-size: 13px;
    line-height: 1.5;
}
.vh-pet-section__hint {
    padding: 11px 12px;
    border-radius: 9px;
    background: #f2f7f5;
}
.vh-pet-section a { color: #176b54; font-weight: 700; }
.vh-pet-share {
    display: grid;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid #d9e8e2;
}
.vh-pet-share > strong { color: #235d50; font-size: 15px; }
.vh-pet-share > p {
    margin: -4px 0 0;
    color: #637773;
    font-size: 13px;
    line-height: 1.5;
}
.vh-schedule-card {
    padding: 24px;
    border: 1px solid #b9dfd3;
    border-radius: 18px;
    background: linear-gradient(145deg, #f2fbf7, #fff);
    box-shadow: 0 8px 24px rgba(15, 50, 45, 0.06);
}
.vh-schedule-card h2 {
    margin: 0;
    color: #173d38;
    font-size: 21px;
    line-height: 1.25;
}
.vh-schedule-card > p:not(.vh-lead-card__eyebrow) {
    margin: 8px 0 18px;
    color: #637773;
    font-size: 14px;
    line-height: 1.5;
}
.vh-schedule-card a,
.vh-schedule-empty a,
.vh-booking-result a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 11px 16px;
    border-radius: 10px;
    background: #176b54;
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}
.vh-schedule-page {
    width: min(1080px, 100%);
    margin: 0 auto;
}
.vh-schedule-page__back {
    display: inline-block;
    margin-bottom: 14px;
    color: #176b54;
    font-weight: 700;
    text-decoration: none;
}
.vh-schedule-hero,
.vh-schedule-empty,
.vh-booking-result,
.vh-booking-step,
.vh-schedule-errors {
    border: 1px solid #dbe7e2;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15, 50, 45, 0.06);
}
.vh-schedule-hero { padding: 28px 30px; }
.vh-schedule-hero h1 {
    margin: 0;
    color: #173d38;
    font-size: clamp(26px, 4vw, 38px);
    line-height: 1.15;
}
.vh-schedule-hero > p:not(.vh-lead-card__eyebrow) {
    margin: 8px 0 4px;
    color: #284b46;
    font-size: 18px;
    font-weight: 700;
}
.vh-schedule-hero > span { color: #71837f; font-size: 13px; }
.vh-schedule-empty {
    margin-top: 18px;
    padding: 28px 30px;
}
.vh-schedule-empty h2,
.vh-booking-result h2 { margin: 0; color: #173d38; font-size: 24px; }
.vh-schedule-empty p,
.vh-booking-result p { color: #637773; line-height: 1.55; }
.vh-booking-result {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 18px;
    margin-top: 18px;
    padding: 28px 30px;
}
.vh-booking-result__icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: #dff4e8;
    color: #176b54;
    font-size: 24px;
    font-weight: 800;
}
.vh-schedule-errors { margin-top: 18px; }
.vh-booking-form { gap: 18px; margin-top: 18px; }
.vh-booking-step {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 18px;
    padding: 26px 28px;
}
.vh-booking-step__number {
    display: grid;
    place-items: center;
    align-self: start;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #176b54;
    color: #fff;
    font-size: 17px;
    font-weight: 800;
}
.vh-booking-step__body { display: grid; gap: 13px; min-width: 0; }
.vh-booking-step__body > h2 { margin: 4px 0 2px; color: #173d38; font-size: 22px; }
.vh-booking-step__intro { margin: -5px 0 2px; color: #637773; font-size: 14px; }
.vh-booking-filters,
.vh-booking-contact-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.vh-booking-filters > div,
.vh-booking-contact-grid > div { display: grid; align-content: start; gap: 7px; }
.vh-booking-dates {
    display: flex;
    gap: 9px;
    padding: 2px 0 8px;
    overflow-x: auto;
    scrollbar-width: thin;
}
.vh-booking-form .vh-booking-date,
.vh-booking-form .vh-booking-time {
    min-height: 40px;
    margin: 0;
    padding: 9px 13px;
    border: 1px solid #b9cec4;
    border-radius: 10px;
    background: #fff;
    color: #284b46;
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
}
.vh-booking-form .vh-booking-date:hover,
.vh-booking-form .vh-booking-time:hover { border-color: #23816b; background: #f1faf6; }
.vh-booking-form .vh-booking-date.is-selected,
.vh-booking-form .vh-booking-time.is-selected {
    border-color: #176b54;
    background: #176b54;
    color: #fff;
}
.vh-booking-times {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 9px;
}
.vh-booking-guidance {
    margin: 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: #f2f7f5;
    color: #526b66;
    font-size: 14px;
}
.vh-booking-selection {
    padding: 13px 14px;
    border: 1px solid #a9d8c9;
    border-radius: 10px;
    background: #eaf7f1;
    color: #1d5d4c;
    font-weight: 750;
}
[data-booking-details][hidden],
[data-pet-share][hidden] { display: none !important; }
@media (max-width: 1050px) {
    .cab-settings-grid { grid-template-columns: 1fr; }
    .cab-form-columns--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vh-booking-times { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .cab-form-columns--four { grid-template-columns: 1fr; }
    .cab-compact-list article,
    .cab-delivery-row,
    .cab-report-callout { align-items: flex-start; flex-direction: column; }
    .vh-schedule-hero,
    .vh-schedule-empty,
    .vh-booking-result,
    .vh-booking-step { padding: 20px; }
    .vh-booking-step { grid-template-columns: 1fr; gap: 10px; }
    .vh-booking-step__number { width: 34px; height: 34px; font-size: 15px; }
    .vh-booking-filters,
    .vh-booking-contact-grid { grid-template-columns: 1fr; }
    .vh-booking-times { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .vh-booking-result { grid-template-columns: 1fr; }
}

/* Unified Telegram notification controls (no duplicate connection panel). */
.cab-telegram-card { gap: 12px; }
.cab-telegram-card .cab-telegram-help { margin: 0; font-size: 14px; line-height: 1.5; }
.cab-telegram-status { display: inline-flex; width: fit-content; padding: 5px 10px; border-radius: 999px; color: #526b61; background: #edf2f0; font-size: 13px; font-weight: 700; }
.cab-telegram-status--connected { background: #dcefe6; color: #176b54; }
.cab-telegram-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 2px 0; }
.cab-form .cab-telegram-controls button, .cab-telegram-start { margin: 0; padding: 9px 12px; font-size: 14px; line-height: 1.4; }
.cab-telegram-controls .cab-telegram-disconnect { background: transparent; color: #85504b; border: 1px solid #e2c2bd; }
.cab-telegram-card .cab-check { margin-top: 4px; }
