:root {
  --d0mo-footer-height: 38px;
  --d0mo-paper: #f2efe8;
  --d0mo-ink: #0d0d0f;
  --d0mo-signal: #ff4d2f;
}

.d0mo-credit-footer {
  position: fixed;
  z-index: 120;
  right: 0;
  bottom: 0;
  left: 0;
  min-height: var(--d0mo-footer-height);
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 4px 14px;
  color: #f2efe8;
  background: #0d0d0f;
  border-top: 1px solid #2b2b2e;
  font: 10px/1.25 Inter, Arial, Helvetica, sans-serif;
}

.d0mo-credit-footer p {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.d0mo-credit-footer__brand {
  display: block;
  width: 112px;
  height: 28px;
}

.d0mo-credit-footer__brand img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.d0mo-credit-footer__about,
.about-top-link {
  color: #f2efe8;
  text-decoration: none;
}

.d0mo-credit-footer__about {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border: 1px solid #58585d;
  font-weight: 800;
}

.d0mo-credit-footer__about:hover,
.d0mo-credit-footer__about:focus-visible,
.about-top-link:hover,
.about-top-link:focus-visible {
  color: var(--d0mo-ink);
  background: var(--d0mo-signal);
  outline: none;
}

.school-signature {
  display: block;
  width: min(280px, 75%);
  margin-top: 28px;
}

.school-signature img {
  display: block;
  width: 100%;
  height: auto;
}

.about-top-link {
  padding: 8px 10px;
  border: 1px solid #303843;
  font-size: 10px;
}

body.d0mo-credit-enabled:not(.citylens-full-workspace) {
  padding-bottom: var(--d0mo-footer-height);
}

body.citylens-full-workspace .route-bar {
  bottom: calc(20px + var(--d0mo-footer-height));
}

body.citylens-full-workspace .maplibregl-ctrl-bottom-left,
body.citylens-full-workspace .maplibregl-ctrl-bottom-right {
  bottom: var(--d0mo-footer-height);
}

body.d0mo-credit-enabled .toast {
  z-index: 130;
  bottom: calc(24px + var(--d0mo-footer-height));
}

body.citylens-full-workspace .objects-panel {
  bottom: var(--d0mo-footer-height);
}

body.citylens-full-workspace .object-drawer {
  padding-bottom: calc(50px + var(--d0mo-footer-height));
}

body.citylens-full-workspace .workflow-rail,
body.citylens-full-workspace .workflow-panel {
  scroll-padding-bottom: calc(18px + var(--d0mo-footer-height));
}

@media (max-width: 1000px) {
  :root { --d0mo-footer-height: 54px; }
  .d0mo-credit-footer {
    grid-template-columns: 72px minmax(0, 1fr) auto;
    gap: 8px;
    padding: 5px 8px;
    font-size: 7.5px;
    line-height: 1.15;
  }
  .d0mo-credit-footer__brand { width: 70px; height: 24px; }
  .d0mo-credit-footer p { overflow: visible; white-space: normal; }
  .d0mo-credit-footer__about { min-height: 25px; padding: 0 6px; font-size: 7.5px; }
  body.citylens-full-workspace .route-bar {
    bottom: calc(12px + var(--d0mo-footer-height));
  }
}

@media (prefers-reduced-motion: reduce) {
  .d0mo-credit-footer * {
    animation: none !important;
    transition: none !important;
  }
}
