:root {
  --ct-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* Match Figma's clean grayscale text rasterization on macOS and Chromium. */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
  font-synthesis: none;

  --ct-color-canvas: #fff;
  --ct-color-text: #fff;
  --ct-color-text-muted: rgb(255 255 255 / 64%);
  --ct-color-text-subtle: #999;
  --ct-color-card: rgb(40 40 40 / 72%);
  --ct-color-panel: rgb(40 40 40 / 24%);
  --ct-color-panel-hover: rgb(40 40 40 / 32%);
  --ct-color-panel-border: rgb(255 255 255 / 10%);
  --ct-color-rule: rgb(255 255 255 / 4%);
  --ct-color-header: rgb(247 247 247 / 80%);
  --ct-color-header-control: rgb(239 239 239 / 80%);
  --ct-color-menu-row: rgb(239 239 239 / 80%);
  --ct-color-header-open: #f7f7f7;
  --ct-color-resource-selected: #e8e8e8;
  --ct-color-resource-selected-hover: #dedede;
  --ct-color-menu-row-open: #efefef;
  --ct-color-menu-row-open-hover: #ebebeb;
  --ct-color-menu-row-open-active: #dedede;
  --ct-color-action: #447970;

  --ct-space-1: 2px;
  --ct-space-2: 4px;
  --ct-space-3: 8px;
  --ct-space-4: 16px;
  --ct-space-5: 24px;
  --ct-space-6: 40px;

  --ct-radius-card: 16px;
  --ct-radius-pill: 40px;
  --ct-rounded-control-height: 32px;
  --ct-interaction-duration: 280ms;
  --ct-interaction-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ct-interaction-hover-scale: 1.01;
  --ct-interaction-pressed-scale: 0.99;
  --ct-content-width: 400px;
  --ct-content-inner-width: 368px;
  --ct-mobile-route-card-height: 400px;
  --ct-page-edge: 16px;
  --ct-safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --ct-page-bottom: calc(16px + var(--ct-safe-area-bottom));
  --ct-content-top: 120px;

  --ct-panel-gap: 2px;
  --ct-panel-stack-gap: 8px;
  --ct-panel-padding: 16px;
  --ct-panel-radius: 16px;
  --ct-panel-border-width: 0.642px;

  --ct-type-caption-size: 12px;
  --ct-type-caption-leading: 16px;
  --ct-type-body-size: 14px;
  --ct-type-body-leading: 18px;
  --ct-type-title-size: 16px;
  --ct-type-title-leading: 20px;
  --ct-type-control-size: 14px;
  --ct-type-control-leading: 18px;

  --ct-blur-header: 12px;
  --ct-blur-card: 60px;
}

@media (min-width: 1440px) {
  :root {
    --ct-content-width: 560px;
  }
}

@media (max-width: 767px), (orientation: portrait) and (min-width: 768px) and (max-width: 1199px) {
  :root {
    --ct-content-width: calc(100vw - 32px);
  }
}

@media (min-width: 1800px) {
  :root {
    --ct-content-width: 640px;
  }
}

.ct-card {
  width: var(--ct-content-width);
  max-width: calc(100% - (var(--ct-page-edge) * 2));
  padding: var(--ct-space-4);
  border-radius: var(--ct-radius-card);
  background: var(--ct-color-card);
  -webkit-backdrop-filter: blur(var(--ct-blur-card));
  backdrop-filter: blur(var(--ct-blur-card));
  color: var(--ct-color-text);
  font-family: var(--ct-font-family);
  font-feature-settings: "dlig" 0;
  font-variant-ligatures: no-discretionary-ligatures;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.ct-card-header {
  display: flex;
  width: 100%;
  flex-direction: column;
  gap: var(--ct-space-3);
}

.ct-card-eyebrow {
  display: block;
  margin: 0;
  padding: 0;
  color: var(--ct-color-text-muted);
  font-size: var(--ct-type-caption-size);
  line-height: 16px;
}

.ct-card-title {
  display: block;
  margin: 0;
  padding: 0;
  color: var(--ct-color-text);
  font-size: var(--ct-type-title-size);
  line-height: 20px;
}

.ct-detail-list,
.ct-panel-list {
  display: flex;
  width: 100%;
  flex-direction: column;
}

.ct-detail-row {
  display: flex;
  width: 100%;
  min-height: 32px;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ct-space-4);
  padding: var(--ct-space-3) 0;
  border-bottom: 1px solid var(--ct-color-rule);
  color: var(--ct-color-text);
  font-size: var(--ct-type-caption-size);
  line-height: 16px;
}

.ct-detail-row:last-child {
  border-bottom: 0;
}

.ct-detail-row--stacked {
  min-height: 0;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--ct-space-1);
}

.ct-detail-row--stacked > :last-child,
.ct-detail-row > :last-child {
  color: var(--ct-color-text-muted);
}

.ct-detail-row--stacked > :last-child {
  width: 100%;
}

.ct-disclosure__description {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-rows: 0fr;
  margin-top: 0;
  opacity: 0;
  transition:
    grid-template-rows 360ms var(--motion-ease),
    margin-top 360ms var(--motion-ease),
    opacity 240ms var(--motion-ease);
}

.ct-disclosure__description-inner {
  display: block;
  min-height: 0;
  overflow: hidden;
}

.ct-disclosure.is-open .ct-disclosure__description {
  grid-template-rows: 1fr;
  margin-top: var(--ct-space-1);
  opacity: 1;
}

/* Desktop cards expose their section copy by default; compact viewports keep accordions. */
@media (min-width: 768px) and (min-height: 640px) and (orientation: landscape),
  (min-width: 1200px) and (min-height: 640px) {
  .ct-disclosure .ct-disclosure__description {
    grid-template-rows: 1fr;
    margin-top: var(--ct-space-1);
    opacity: 1;
  }
}

.ct-panel-list {
  gap: var(--ct-panel-stack-gap);
}

.ct-panel {
  display: flex;
  width: 100%;
  min-height: 66px;
  flex-direction: column;
  justify-content: center;
  gap: var(--ct-panel-gap);
  padding: var(--ct-panel-padding);
  border: var(--ct-panel-border-width) solid var(--ct-color-panel-border);
  border-radius: var(--ct-panel-radius);
  background: var(--ct-color-panel);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transform-origin: center;
  transition:
    background-color var(--ct-interaction-duration) var(--ct-interaction-ease),
    transform var(--ct-interaction-duration) var(--ct-interaction-ease);
}

.ct-panel:hover,
.ct-panel:focus-visible {
  background: var(--ct-color-panel-hover);
}

.ct-panel:is(a, button, [role="button"]):is(:hover, :focus-visible) {
  transform: scale(var(--ct-interaction-hover-scale));
}

.ct-panel:is(a, button, [role="button"]):active {
  transform: scale(var(--ct-interaction-pressed-scale));
}

.ct-panel > :first-child {
  color: var(--ct-color-text-muted);
  font-size: var(--ct-type-caption-size);
  line-height: 16px;
}

.ct-panel > :last-child {
  color: var(--ct-color-text);
  font-size: var(--ct-type-body-size);
  line-height: 18px;
}

.quote-pill {
  border-radius: var(--ct-radius-pill);
  font-family: var(--ct-font-family);
  font-size: var(--ct-type-control-size);
  line-height: 18px;
}

.site-menu:not(.is-open) .site-menu__top {
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.site-menu:not(.is-open) .site-menu__quote--closed {
  background: var(--ct-color-header-control);
  -webkit-backdrop-filter: blur(var(--ct-blur-header));
  backdrop-filter: blur(var(--ct-blur-header));
}

.site-menu:not(.is-open) .site-menu__quote--closed .quote-pill {
  background: var(--ct-color-action);
}

/* Today card detail variant — Figma 200:5588 and 200:5609. */
.today-detail-card .today-detail-card__header {
  gap: 2px;
}

.today-detail-card .today-detail-card__eyebrow {
  font-size: 12px;
  line-height: 16px;
}

.today-detail-card .today-detail-card__title {
  font-size: 14px;
  line-height: 18px;
}

.today-detail-card .today-detail-card__row {
  appearance: none;
  width: 100%;
  gap: 4px;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid var(--ct-color-rule);
  background: transparent;
  color: inherit;
  font-family: inherit;
  font-size: 12px;
  line-height: 16px;
  text-align: left;
  cursor: pointer;
}

.today-detail-card .today-detail-card__row:last-child {
  border-bottom: 1px solid var(--ct-color-rule);
}

.today-detail-card.is-detail-expanded .today-detail-card__row {
  cursor: default;
}

.today-detail-card.is-detail-expanded .today-detail-card__row .ct-disclosure__description {
  grid-template-rows: 1fr;
  margin-top: var(--ct-space-1);
  opacity: 1;
}

.today-detail-card.is-detail-layout-syncing .ct-disclosure__description {
  transition: none !important;
}
