/* Shared card motion only. Page-specific colors, borders and surfaces stay intact. */
:root {
  --lh-card-hover-shadow: 0 5px 9px rgba(85, 39, 59, .075), 0 18px 30px -12px rgba(85, 39, 59, .27);
}

/* Whole-card links and intentional card controls lift, never static forms.
   Individual translate preserves existing reveal/float transforms. */
body #main :is(
  .surface-link, .card--link, a.surface-card, a.card, a.stat,
  a.care-task, a.message-row, a.snapshot-item, a.patient-visit,
  .patient-record-list > article,
  a.rec-folder, a.rec-row, a.ins-cards__add,
  .convo:has(a.convo__title), .meds-row:has(a),
  .visit-row:has(.visit-row__title[href]), a.visit-thread,
  a.ask-destination-card, .q-list__row a, .q-route__opt,
  a.provider-pulse-card, a.provider-priority-item, .provider-task-links a,
  .provider-thread:has(a), a.provider-action-card, .provider-files__list a,
  a.refill-row, a.waitlist-stat, .waitlist-entry:has(a),
  .insurance-row:has(a),
  .support-ticket:has(a), a.support-ticket, .support-console-ticket:has(a),
  a.support-console-ticket, a.support-pulse__item,
  a.notification-center__item, a.j-card, .j-card:has(a),
  .lc-suggest__card, button.lc-slot:not(:disabled):not(.is-selected),
  .pa-starters__grid button, .provider-inbox-filter, .insurance-filter,
  .panel-filter, .ic-tab, .refill-tabs > a, .patient-filter-tabs > a,
  .msgs-tab, .meds-filter, .hp-filter, .overview-filter, .j-topic, .day-chip
) {
  --lh-interactive-card: 1;
  transition: transform 180ms ease, translate 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}

@media (hover:hover) and (pointer:fine) {
  body #main :is(
    .surface-link, .card--link, a.surface-card, a.card, a.stat,
    a.care-task, a.message-row, a.snapshot-item, a.patient-visit,
    .patient-record-list > article,
    a.rec-folder, a.rec-row, a.ins-cards__add,
    .convo:has(a.convo__title), .meds-row:has(a),
    .visit-row:has(.visit-row__title[href]), a.visit-thread,
    a.ask-destination-card, .q-list__row a, .q-route__opt,
    a.provider-pulse-card, a.provider-priority-item, .provider-task-links a,
    .provider-thread:has(a), a.provider-action-card, .provider-files__list a,
    a.refill-row, a.waitlist-stat, .waitlist-entry:has(a),
    .insurance-row:has(a),
    .support-ticket:has(a), a.support-ticket, .support-console-ticket:has(a),
    a.support-console-ticket, a.support-pulse__item,
    a.notification-center__item, a.j-card, .j-card:has(a),
    .lc-suggest__card, button.lc-slot:not(:disabled):not(.is-selected),
    .pa-starters__grid button, .provider-inbox-filter, .insurance-filter,
    .panel-filter, .ic-tab, .refill-tabs > a, .patient-filter-tabs > a,
    .msgs-tab, .meds-filter, .hp-filter, .overview-filter, .j-topic, .day-chip
  ):hover {
    translate: 0 -3px;
    box-shadow: var(--lh-card-hover-shadow);
  }
}

body #main :is(.surface-link, .card--link, a.surface-card, a.card,
  .visit-row, .convo, a.refill-row, .j-card):focus-within {
  box-shadow: var(--lh-card-hover-shadow);
}

/* Patient and intake table rows use only their page's transform-based lift.
   Combining it with the shared translate destabilizes stretched links. */

/* Appointment information: one date, one duration, familiar icons. */
.visit-schedule { display:inline-flex; flex-wrap:wrap; gap:5px 14px; align-items:center; }
.visit-schedule__date { display:inline-flex; align-items:baseline; gap:7px; min-width:0; }
.visit-schedule__date > .luv-icon { flex:none; align-self:center; color:#976078; }
.visit-schedule__duration { display:inline-flex; gap:5px; align-items:center; white-space:nowrap; font-weight:500; }
.visit-schedule__duration > .luv-icon { color:#66846c; }
.next-visit__heading { display:flex; align-items:flex-start; gap:14px; justify-content:space-between; }
.next-visit__heading .visit-state { flex:none; margin-top:3px; }
.next-visit__heading .next-visit__when { font-size:clamp(1.25rem,2vw,1.6rem); line-height:1.3; margin:0; }
.next-visit__date { margin:10px 0; line-height:1.55; font-size:.84rem; }
.visit-hero__title { font-size:clamp(1.4rem,2.4vw,1.85rem); }
.visit-hero__kicker > .visit-state { order:2; margin-left:auto; }
.visit-hero--confirmation .visit-hero__kicker > .visit-state { margin-left:0; }
.visit-row__meta .visit-schedule { margin-block:4px; }
.care-ticket__details .visit-schedule { font-size:.85rem; line-height:1.5; }
.care-ticket__details .visit-schedule .luv-icon { color:inherit; opacity:.8; }
@media (max-width:480px) {
  .next-visit__heading { flex-wrap:wrap; gap:8px; }
  .visit-schedule { gap:5px 10px; }
}
@media (prefers-reduced-motion:reduce) {
  body #main :is(a, button, .visit-row, .convo, .meds-row,
    .provider-thread, .provider-patient-row, .insurance-row, .ic-row,
    .waitlist-entry, .support-ticket, .support-console-ticket, .notification-center__item,
    .j-card, .q-route__opt) { translate:none; transition:none; }
}

/* Let full appointment labels wrap naturally inside the compact Home card. */
.care-ticket__details .visit-schedule,
.care-ticket__details .visit-schedule__date,
.care-ticket__details .visit-schedule__duration {
  white-space:normal; overflow:visible; text-overflow:clip;
}
.care-ticket__details .visit-schedule__duration { white-space:nowrap; }

body #main :is(.btn:not(:disabled):not([aria-disabled="true"]),
  .hp-activity:has(a), .l-rev:has(a), .patient-record-list > article:has(a)) {
  transition:transform 180ms ease, translate 180ms ease, box-shadow 180ms ease, border-color 180ms ease;
}
@media (hover:hover) and (pointer:fine) {
  body #main :is(.btn:not(:disabled):not([aria-disabled="true"]),
    .hp-activity:has(a), .l-rev:has(a), .patient-record-list > article:has(a)):hover {
    translate:0 -3px; box-shadow:var(--lh-card-hover-shadow);
  }
}
@media (prefers-reduced-motion:reduce) {
  body #main :is(.btn, .hp-activity, .l-rev, .patient-record-list > article) {
    translate:none; transition:none;
  }
}

/* Selected patient-page headers match the timeline reference surface. */
.patient-portal :is(.msgs > .patient-overview, .visits > .visits-head, .patient-records > .patient-overview, .meds > .patient-overview) {
  border:1px solid #e6d9df; border-radius:13px;
  background:#ffffffd9; box-shadow:0 2px 6px rgba(89,42,60,.05);
}
.patient-portal :is(.msgs > .patient-overview, .visits > .visits-head, .patient-records > .patient-overview, .meds > .patient-overview)::before { display:block; }
.patient-portal :is(.msgs > .patient-overview, .visits > .visits-head, .patient-records > .patient-overview, .meds > .patient-overview) h1 { color:#432834; }

/* Keep the familiar left accent on each matched header. */
.patient-portal :is(.hp-overview, .msgs > .patient-overview, .visits > .visits-head, .patient-records > .patient-overview, .meds > .patient-overview) { position:relative; }
.patient-portal :is(.hp-overview, .msgs > .patient-overview, .visits > .visits-head, .patient-records > .patient-overview, .meds > .patient-overview)::before {
  content:""; display:block; position:absolute; inset:22px auto 22px 0; width:4px;
  border-radius:0 4px 4px 0; background:linear-gradient(#c9455c,#70304c);
}

/* Patient booking selections share the same softer plum in both entry points. */
.patient-portal .lc--patient .lc-slot.is-selected,
.patient-portal .lc--patient .lc-slot.is-selected:hover {
  background:#8b4b67; border-color:#8b4b67; color:#fff;
  box-shadow:0 5px 12px rgba(112,48,76,.16);
}
.patient-portal .lc--patient .lc-confirm { border-color:#bc8da2; }
.patient-portal .lc--patient [data-slot-confirm-button] {
  background:#8b4b67; border-color:#8b4b67; color:#fff;
  box-shadow:0 4px 10px rgba(112,48,76,.16);
}
.patient-portal .lc--patient .lc-confirm__note :is(input,textarea):focus { border-color:#bc8da2; outline-color:#f1dfe7; }
