/*
 * Shared Carpoolable action perimeter. Keep semantic color cues in each
 * control's existing background, ring, and focus styles.
 */
:root :is(button,
a.btn,
a.button,
a.cta,
a[class*="-btn"],
a[class*="-button"],
input[type="button"],
input[type="submit"],
input[type="reset"],
[role="button"],
[role="tab"],
summary,
.leaflet-control-zoom a,
.leaflet-control-layers-toggle,
.leaflet-popup-close-button,
.pan-control-container button,
a[data-action-control="true"],
a[style*="background"][style*="padding"],
a[class*="rounded"][class*="h-"][class*="w-"],
label[for][class*="rounded"][class*="bg-"],
label[class*="cursor-pointer"][class*="rounded"],
a[class*="bg-"][class*="px-"],
a[class*="inline-flex"][class*="min-h-"],
a[class*="rounded"][class*="px-"]:not([class*="underline"])) {
  border: 2px solid #173d2c !important;
  box-sizing: border-box;
}

/* Approved country-home exceptions: leave carousel indicators and the
   Pause/Resume text control unframed; retain their keyboard focus outlines. */
:root #landing-presentation :is(.lp-dot, .lp-auto-toggle) {
  border: 0 !important;
}

/* Public Event calendars use the same thin black perimeter for single-Event
   links and multiple-Event buttons. Other action controls retain 2px borders. */
:root #event-cal-container .event-cal-day.has-event {
  border: 1px solid #000 !important;
  box-sizing: border-box;
}

/* Dashboard's compact personal calendar is another approved exception:
   only its day and week-navigation controls use 1px. */
:root [data-dashboard-block="calendar"] [data-dashboard-personal-calendar="true"] button[data-calendar-control="true"] {
  border: 1px solid #173d2c !important;
  box-sizing: border-box;
}

/* The Dashboard rail is only about 190–220px wide at tablet breakpoints.
   Let the seven columns use narrow, fixed-height cells instead of their
   square/minimum-height intrinsic size; phone layout keeps its 44px targets. */
@media (min-width: 768px) {
  :root [data-dashboard-personal-calendar="true"] [role="group"] {
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }

  :root [data-dashboard-personal-calendar="true"] [role="group"] > * {
    min-width: 0;
  }

  :root [data-dashboard-personal-calendar="true"] [role="group"] [data-calendar-control="true"] {
    min-height: 28px !important;
    height: 28px;
    aspect-ratio: auto;
    padding-inline: 1px;
    border-radius: 6px;
    font-size: 12px;
  }

  :root [data-dashboard-personal-calendar="true"] [role="group"] button > span[aria-hidden="true"] {
    bottom: 3px;
  }

  :root [data-dashboard-personal-calendar="true"] [role="group"] > div[aria-hidden="true"] {
    min-width: 0;
    padding-bottom: 4px;
    font-size: 8px;
    letter-spacing: .02em;
  }

  :root [data-dashboard-personal-calendar="true"] [data-calendar-control="true"][aria-label="Previous week"],
  :root [data-dashboard-personal-calendar="true"] [data-calendar-control="true"][aria-label="Next week"] {
    width: 32px !important;
    height: 32px !important;
  }
}
