/* MeetSpan navigation + contrast + accessibility polish */
nav[aria-label="On this page"] a {
  border-color: rgba(148, 163, 184, 1); /* slate-400 */
  background-color: rgba(255, 255, 255, 0.96);
}

#copy-ls-slot {
  background-color: #2563eb; /* primary blue */
  border-color: #1d4ed8;
  color: #ffffff;
  transition: box-shadow 150ms ease, transform 150ms ease;
}

#copy-ls-slot svg {
  color: #ffffff;
  stroke: currentColor;
}

#copy-ls-slot:hover {
  box-shadow: 0 10px 25px rgba(37, 99, 235, 0.35);
  transform: translateY(-0.5px);
}

#copy-ls-slot-status {
  color: #10b981; /* emerald-500, darker than 300 */
}

/* Footer contrast improvements */
footer.text-gray-200 {
  color: rgba(209, 213, 219, 1); /* gray-300 */
}

footer.text-gray-200:hover {
  color: rgba(249, 250, 251, 1); /* gray-50 */
}

footer.text-gray-400 {
  color: rgba(209, 213, 219, 1); /* gray-300 */
}

footer.text-gray-400:hover {
  color: rgba(249, 250, 251, 1); /* gray-50 */
}

/* Quick summary callout (visitor vs target time zone) */
.ms-ls-tldr {
  border-radius: 0.75rem;
  padding: 0.9rem 1.15rem;
  background: linear-gradient(135deg, rgba(37, 99, 235, 0.06), rgba(56, 189, 248, 0.06));
  border: 1px solid rgba(148, 163, 184, 0.5); /* slate-400-ish */
}

.ms-ls-tldr-title {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  color: rgba(75, 85, 99, 1); /* gray-600 */
  margin-bottom: 0.25rem;
}

.ms-ls-tldr-main {
  font-weight: 600;
  color: rgba(15, 23, 42, 1); /* slate-900 */
}

@media (max-width: 640px) {
 .ms-ls-tldr {
    padding: 0.85rem 1rem;
  }
}

/* Table scan polish */
.ms-ls-weekly-table tbody tr:hover,
.ms-ls-24h-table tbody tr:hover {
  background-color: rgba(239, 246, 255, 0.6); /* blue-50-ish */
}

.ms-ls-24h-table th {
  border-bottom: 1px solid rgba(209, 213, 219, 1); /* gray-300 */
}

/* Gently highlight the best (excellent) time rows in the 24-hour table */
@supports selector(tr:has(td)) {
 .ms-ls-24h-table tbody tr:has(td span.bg-green-100) {
    position: relative;
    box-shadow:
      0 0 0 1px rgba(59, 130, 246, 0.35),
      0 14px 30px rgba(15, 23, 42, 0.20);
    z-index: 1;
  }
}
/* Mobile hamburger -> X */
#mobile-menu-btn.hamburger-icon{
  width:24px;
  height:24px;
  display:inline-flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
}
#mobile-menu-btn.hamburger-line{
  width:24px;
  height:2px;
  background: currentColor;
  border-radius:9999px;
  transform-origin:center;
  transition:transform 180ms ease, opacity 160ms ease, width 180ms ease;
}
#mobile-menu-btn.is-open.hamburger-line:nth-child(1),
#mobile-menu-btn[aria-expanded="true"].hamburger-line:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}
#mobile-menu-btn.is-open.hamburger-line:nth-child(2),
#mobile-menu-btn[aria-expanded="true"].hamburger-line:nth-child(2){
  opacity:0;
  width:0;
}
#mobile-menu-btn.is-open.hamburger-line:nth-child(3),
#mobile-menu-btn[aria-expanded="true"].hamburger-line:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* Back-to-top: hidden on load, show only after a short scroll (no flash, reliable on all browsers) */
#back-to-top{
  display:flex;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(6px);
  transition:opacity 180ms ease, transform 180ms ease, visibility 0s linear 180ms;
  will-change: opacity, transform;
}
#back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0);
  transition-delay:0s;
}
/* Patch v69.1: prevent the floating Back-to-top button from covering open FAQ content */
.ms-details-open #back-to-top{opacity:0!important;visibility:hidden!important;pointer-events:none!important;}

/*
  Hardening: prevent occasional table <caption> flashes / ugly wraps on mobile.
  (Some browsers briefly render <caption> before utility CSS is ready.)
*/
.ms-city-page caption.sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* Mobile: keep meeting-quality labels on one line (avoid "Not\nrecommended" breaks). */
.ms-city-page .hourly-table td:last-child .ms-q-label{
  white-space:nowrap;
}

/* Keep the dot + label as one unit (prevents awkward wraps). */
.ms-city-page .hourly-table td:last-child .inline-flex{
  white-space:nowrap;
}

/* Header: keep "Meeting quality" compact on narrow screens. */
.ms-city-page .hourly-table thead th:last-child{
  white-space:nowrap;
}

/* Mobile comfort: lift the floating Back-to-top button so it doesn't sit on top of dense card text. */
@media (max-width: 640px){
  #back-to-top{bottom:5rem!important;}
}