:root {
  color-scheme: light;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --cursor-x: 0;
  --cursor-y: 0;
  --ink: #07130f;
  --paper: #f4f7f1;
  --mist: rgba(255, 255, 255, 0.74);
  --glass: rgba(255, 255, 255, 0.68);
  --panel: rgba(255, 255, 255, 0.96);
  --panel-soft: rgba(247, 250, 247, 0.93);
  --line: rgba(8, 27, 24, 0.14);
  --triad-primary: #0f6f5a;
  --triad-secondary: #4056a1;
  --triad-tertiary: #d59b35;
  --triad-primary-rgb: 15, 111, 90;
  --triad-secondary-rgb: 64, 86, 161;
  --triad-tertiary-rgb: 213, 155, 53;
  --triad-primary-soft: rgba(var(--triad-primary-rgb), 0.12);
  --triad-secondary-soft: rgba(var(--triad-secondary-rgb), 0.12);
  --triad-tertiary-soft: rgba(var(--triad-tertiary-rgb), 0.16);
  --forest: var(--triad-primary);
  --moss: #2f6f4f;
  --river: var(--triad-secondary);
  --sun: var(--triad-tertiary);
  --danger: #b02d48;
  --shadow: 0 26px 80px rgba(6, 22, 17, 0.18);
  --shadow-soft: 0 16px 42px rgba(7, 19, 15, 0.08);
  --ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 140ms;
  --duration-base: 220ms;
  --duration-slow: 420ms;
  --lift-y: -2px;
  --focus-ring: 0 0 0 4px rgba(var(--triad-secondary-rgb), 0.14);
  --shine-soft: linear-gradient(112deg, transparent 0 30%, rgba(255, 255, 255, 0.66) 47%, rgba(var(--triad-tertiary-rgb), 0.28) 52%, rgba(var(--triad-secondary-rgb), 0.1) 58%, transparent 70% 100%);
  --surface-gradient: linear-gradient(135deg, rgba(255, 255, 255, 0.97), rgba(246, 250, 247, 0.91));
  --surface-border: rgba(8, 27, 24, 0.12);
  --spot-x: 50%;
  --spot-y: 50%;
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --magnet-x: 0px;
  --magnet-y: 0px;
}

* {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  min-height: 100%;
  max-width: 100%;
  overflow-x: clip;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  min-height: 100%;
  max-width: 100%;
  overflow-x: clip;
  background:
    radial-gradient(circle at 9% 8%, rgba(var(--triad-tertiary-rgb), 0.18), transparent 30rem),
    radial-gradient(circle at 92% 28%, rgba(var(--triad-secondary-rgb), 0.16), transparent 34rem),
    radial-gradient(circle at 18% 88%, rgba(var(--triad-primary-rgb), 0.12), transparent 28rem),
    linear-gradient(180deg, #edf4ee 0%, #f7f2e8 42%, #eef2f8 100%);
  color: var(--ink);
}

body::before {
  position: fixed;
  inset: 0;
  z-index: -2;
  content: "";
  pointer-events: none;
  background-image:
    linear-gradient(rgba(7, 19, 15, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(7, 19, 15, 0.03) 1px, transparent 1px);
  background-size: clamp(18px, 2.2vw, 34px) clamp(18px, 2.2vw, 34px);
  mask-image: linear-gradient(to bottom, transparent 0%, black 24%, black 88%, transparent 100%);
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

a {
  color: inherit;
  text-decoration: none;
}

:where(button, a, input, textarea, select, [tabindex]):focus-visible {
  outline: 3px solid rgba(var(--triad-secondary-rgb), 0.42);
  outline-offset: 3px;
}

.lucide-loader-circle,
.lucide-loader-2 {
  transform-origin: center;
  animation: icon-spin 820ms linear infinite;
}

@keyframes icon-spin {
  to {
    transform: rotate(360deg);
  }
}

button {
  cursor: pointer;
  --spot-x: 50%;
  --spot-y: 50%;
  --tilt-x: 0deg;
  --tilt-y: 0deg;
  --magnet-x: 0px;
  --magnet-y: 0px;
}

button:disabled {
  cursor: not-allowed;
}

::selection {
  background: rgba(var(--triad-tertiary-rgb), 0.44);
  color: var(--ink);
}

::-webkit-scrollbar {
  width: 11px;
  height: 11px;
}

::-webkit-scrollbar-track {
  background: #dfe8df;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--forest), var(--river));
  border: 3px solid #dfe8df;
  border-radius: 999px;
}

.site-canvas {
  isolation: isolate;
  overflow-x: clip;
}

.hero-pin {
  position: relative;
  display: grid;
  min-height: clamp(440px, 62svh, 720px);
  overflow: clip;
  place-items: end start;
  background: #081a14;
}

.hero-pin::before {
  position: absolute;
  z-index: 1;
  top: 42%;
  left: 50%;
  width: clamp(18rem, 44vw, 40rem);
  aspect-ratio: 1;
  border-radius: 50%;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(circle, rgba(231, 182, 87, 0.24), rgba(27, 110, 168, 0.12) 38%, transparent 68%),
    radial-gradient(circle, rgba(255, 255, 255, 0.2), transparent 48%);
  mix-blend-mode: screen;
  opacity: 0.78;
  transform: translate3d(calc(-50% + (var(--cursor-x) * 7rem)), calc(-50% + (var(--cursor-y) * 5rem)), 0);
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform var(--duration-base) var(--ease-standard);
  will-change: transform;
}

.hero-photo {
  position: absolute;
  inset: -6%;
  background-image: url("./forest-hero.jpg");
  background-position: center;
  background-size: cover;
  backface-visibility: hidden;
  contain: paint;
  filter: saturate(1.1) contrast(1.08);
  transform: translate3d(calc(var(--cursor-x) * -10px), calc(var(--cursor-y) * -8px), 0) scale(1.06);
  transition: transform var(--duration-base) var(--ease-standard);
  will-change: transform;
}

.hero-shader-canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  opacity: 0.58;
  mix-blend-mode: screen;
  pointer-events: none;
  transform: translateZ(0);
  contain: paint;
  will-change: opacity;
}

.hero-shader-canvas.is-fallback {
  opacity: 0;
}

.hero-photo::after {
  position: absolute;
  inset: 0;
  content: "";
  background:
    radial-gradient(circle at 48% 42%, rgba(255, 255, 255, 0.16), transparent 19rem),
    linear-gradient(120deg, rgba(5, 18, 15, 0.88) 0%, rgba(5, 18, 15, 0.55) 38%, rgba(5, 18, 15, 0.76) 100%);
  mix-blend-mode: multiply;
}

.hero-vignette {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(4, 14, 11, 0.22) 0%, rgba(4, 14, 11, 0.08) 30%, rgba(4, 14, 11, 0.92) 100%),
    linear-gradient(90deg, rgba(4, 14, 11, 0.84) 0%, rgba(4, 14, 11, 0.36) 50%, rgba(4, 14, 11, 0.82) 100%);
}

.hero-noise {
  position: absolute;
  inset: 0;
  opacity: 0.16;
  pointer-events: none;
  background-image:
    repeating-radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.5) 0 1px, transparent 1px 3px),
    linear-gradient(120deg, rgba(231, 182, 87, 0.34), rgba(27, 110, 168, 0.22), rgba(47, 111, 79, 0.28));
  background-blend-mode: overlay;
  mix-blend-mode: soft-light;
}

.hero-smoke {
  position: absolute;
  inset: -12%;
  z-index: 1;
  pointer-events: none;
  opacity: 0.96;
  mix-blend-mode: screen;
  filter: blur(14px) saturate(1.34);
  transform: translate3d(calc(var(--cursor-x) * 5.6rem), calc(var(--cursor-y) * 3.9rem), 0);
  transition: transform 120ms var(--ease-standard), opacity var(--duration-base) var(--ease-standard);
  will-change: transform, opacity;
}

.hero-smoke::before,
.hero-smoke::after {
  position: absolute;
  width: clamp(20rem, 48vw, 48rem);
  aspect-ratio: 1.2;
  border-radius: 46% 54% 58% 42% / 44% 42% 58% 56%;
  content: "";
  background:
    radial-gradient(circle at 35% 42%, rgba(255, 255, 255, 0.28), transparent 30%),
    radial-gradient(circle at 62% 54%, rgba(231, 182, 87, 0.28), transparent 32%),
    radial-gradient(circle at 48% 48%, rgba(27, 110, 168, 0.32), transparent 58%);
  opacity: 0.9;
  transform: translate3d(calc(var(--cursor-x) * 4.5rem), calc(var(--cursor-y) * 3.2rem), 0) rotate(0deg);
  animation: hero-smoke-drift 12s ease-in-out infinite alternate;
}

.hero-smoke::before {
  top: 12%;
  left: 28%;
}

.hero-smoke::after {
  right: 10%;
  bottom: 5%;
  width: clamp(16rem, 34vw, 34rem);
  opacity: 0.58;
  transform: translate3d(calc(var(--cursor-x) * -3.8rem), calc(var(--cursor-y) * -2.6rem), 0) rotate(18deg);
  animation-duration: 15s;
  animation-direction: alternate-reverse;
}

.hero-pointer-glow {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: clamp(11rem, 24vw, 22rem);
  aspect-ratio: 1;
  border-radius: 999px;
  pointer-events: none;
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.34), transparent 30%),
    radial-gradient(circle, rgba(231, 182, 87, 0.28), transparent 48%),
    radial-gradient(circle, rgba(27, 110, 168, 0.34), transparent 68%);
  filter: blur(20px);
  mix-blend-mode: screen;
  opacity: 0.74;
  transform: translate3d(calc(-50% + (var(--cursor-x) * 35vw)), calc(-50% + (var(--cursor-y) * 24vh)), 0) scale(1);
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform 110ms var(--ease-standard);
  will-change: transform, opacity;
}

.hero-pointer-glow::after {
  position: absolute;
  inset: 24%;
  border-radius: inherit;
  content: "";
  background: radial-gradient(circle, rgba(255, 255, 255, 0.5), transparent 62%);
  filter: blur(10px);
  animation: hero-pointer-breathe 2.8s ease-in-out infinite alternate;
}

@keyframes hero-pointer-breathe {
  from {
    opacity: 0.42;
    transform: scale(0.92);
  }

  to {
    opacity: 0.9;
    transform: scale(1.08);
  }
}

@keyframes hero-smoke-drift {
  0% {
    border-radius: 46% 54% 58% 42% / 44% 42% 58% 56%;
    filter: blur(16px);
  }

  100% {
    border-radius: 58% 42% 45% 55% / 52% 58% 42% 48%;
    filter: blur(24px);
  }
}

.hero-content {
  position: relative;
  z-index: 2;
  width: min(100% - clamp(2rem, 7vw, 8rem), 1260px);
  margin: 0 auto;
  padding-block: clamp(4rem, 12vh, 8rem);
  color: #fff;
}

.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  width: fit-content;
  margin: 0 0 clamp(0.75rem, 1.8vw, 1.15rem);
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 999px;
  padding: 0.6rem 0.85rem;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
  backdrop-filter: blur(18px);
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(0.72rem, 1.4vw, 0.9rem);
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.hero-title {
  width: 100%;
  margin: 0;
  color: #ffffff;
  font-size: clamp(1.35rem, 6.2vw, 8.6rem);
  font-weight: 950;
  letter-spacing: 0;
  line-height: 0.86;
  text-shadow:
    0 2px 0 rgba(0, 0, 0, 0.2),
    0 24px 90px rgba(0, 0, 0, 0.68);
  text-wrap: balance;
  white-space: normal;
}

.hero-title .word,
.hero-title .char {
  display: inline-block;
}

.hero-copy {
  max-width: min(760px, 86%);
  margin: clamp(1rem, 2.4vw, 1.6rem) 0 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(0.98rem, 1.7vw, 1.25rem);
  font-weight: 650;
  line-height: 1.75;
  text-shadow: 0 12px 42px rgba(0, 0, 0, 0.74);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(0.65rem, 1.5vw, 1rem);
  margin-top: clamp(1.25rem, 3vw, 2rem);
}

.hero-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  min-height: clamp(2.8rem, 5vw, 3.35rem);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.26);
  border-radius: 999px;
  padding: 0 clamp(1rem, 2.4vw, 1.45rem);
  color: #fff;
  font-size: clamp(0.85rem, 1.6vw, 0.98rem);
  font-weight: 950;
  letter-spacing: 0;
  transform: translateZ(0);
  transition:
    transform var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    background-color var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard);
  will-change: transform;
}

.hero-cta::before {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(120deg, transparent 0%, rgba(255, 255, 255, 0.42) 48%, transparent 100%);
  transform: translateX(-115%);
  transition: transform 520ms var(--ease-emphasized);
  animation: button-light-pass 5.8s var(--ease-emphasized) infinite;
}

.hero-cta::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(255, 255, 255, 0.42), transparent 28%),
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(231, 182, 87, 0.28), transparent 46%);
  opacity: 0;
  transition: opacity var(--duration-fast) var(--ease-standard);
}

.hero-cta > * {
  position: relative;
  z-index: 1;
}

.hero-cta:hover {
  transform: perspective(900px) translate3d(var(--magnet-x), var(--magnet-y), 0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift-y));
  border-color: rgba(255, 255, 255, 0.62);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.28);
}

.hero-cta:hover::before {
  transform: translateX(115%);
}

.hero-cta:hover::after {
  opacity: 1;
}

.hero-cta-primary {
  background: linear-gradient(135deg, #2f6f4f, #1b6ea8 56%, #e7b657);
}

.hero-cta-ghost {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(16px);
}

@keyframes button-light-pass {
  0%,
  68% {
    transform: translateX(-118%);
  }

  82%,
  100% {
    transform: translateX(118%);
  }
}

.site-canvas:not(.site-canvas-home) .hero-pin {
  min-height: clamp(245px, 30svh, 340px);
  place-items: center start;
}

.site-canvas:not(.site-canvas-home) .hero-content {
  padding-block: clamp(1.7rem, 4.2vh, 3rem) clamp(3rem, 5.8vh, 4rem);
}

.site-canvas:not(.site-canvas-home) .hero-kicker {
  margin-bottom: 0.75rem;
}

.site-canvas:not(.site-canvas-home) .hero-title {
  max-width: 47rem;
  font-size: clamp(1.82rem, 3.35vw, 4rem);
  line-height: 0.96;
}

.site-canvas:not(.site-canvas-home) .hero-copy {
  max-width: 44rem;
  font-size: clamp(0.86rem, 1.05vw, 0.96rem);
  line-height: 1.5;
}

.site-canvas:not(.site-canvas-home) .hero-actions {
  margin-top: clamp(0.62rem, 1.3vw, 0.9rem);
}

.site-canvas:not(.site-canvas-home) .hero-cta {
  min-height: clamp(2.36rem, 3.2vw, 2.68rem);
  padding-inline: clamp(0.76rem, 1.4vw, 1rem);
  font-size: clamp(0.75rem, 0.98vw, 0.84rem);
}

.app-workbench {
  position: relative;
  z-index: 4;
  width: min(calc(100% - clamp(1.2rem, 3vw, 2.8rem)), 94rem);
  margin-top: clamp(-3rem, -4vw, -1.25rem);
  padding-inline: 0 !important;
}

.app-workbench::before {
  position: absolute;
  inset: -2rem -8vw auto;
  z-index: -1;
  height: clamp(7rem, 14vw, 12rem);
  content: "";
  pointer-events: none;
  background:
    linear-gradient(104deg, transparent 18%, rgba(255, 255, 255, 0) 35%, rgba(255, 255, 255, 0.58) 47%, rgba(231, 182, 87, 0.28) 52%, rgba(255, 255, 255, 0) 68%, transparent 100%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.36), rgba(255, 255, 255, 0));
  filter: blur(0.2px);
  opacity: 0.72;
  transform: translateX(-110%) skewX(-12deg);
  animation: workbench-light-sweep 6.4s var(--ease-emphasized) 220ms infinite;
}

@keyframes workbench-light-sweep {
  0%,
  12%,
  68% {
    transform: translateX(-115%) skewX(-12deg);
  }

  84%,
  100% {
    transform: translateX(115%) skewX(-12deg);
  }
}

.app-dock {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(0.7rem, 1.7vw, 1.15rem);
  align-items: center;
  overflow: hidden;
  border: 1px solid rgba(8, 27, 24, 0.1);
  border-radius: clamp(1.1rem, 2.5vw, 1.7rem);
  padding: clamp(0.72rem, 1.8vw, 1rem);
  background: #fff;
  box-shadow: 0 18px 48px rgba(6, 22, 17, 0.12);
  backdrop-filter: none;
}

.app-dock::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(105deg, transparent 0 32%, rgba(255, 255, 255, 0.58) 46%, rgba(231, 182, 87, 0.3) 51%, transparent 66% 100%);
  opacity: 0.72;
  transform: translateX(-118%) skewX(-10deg);
  animation: dock-light-sweep 6.8s var(--ease-emphasized) 260ms infinite;
}

@keyframes dock-light-sweep {
  0%,
  12%,
  70% {
    transform: translateX(-118%) skewX(-10deg);
  }

  86%,
  100% {
    transform: translateX(118%) skewX(-10deg);
  }
}

.dock-brand {
  position: relative;
  z-index: 1;
  display: flex;
  width: min(100%, 28rem);
  min-width: 0;
  align-items: center;
  gap: 0.9rem;
}

.dock-mark {
  display: grid;
  width: clamp(2.8rem, 5vw, 3.25rem);
  place-items: center;
  color: #fff;
  font-weight: 950;
}

.dock-mark-stack {
  width: clamp(2.8rem, 4.5vw, 3.28rem);
  min-height: clamp(5.7rem, 7.2vw, 6.35rem);
  gap: 0.34rem;
  border: 1px solid rgba(15, 63, 50, 0.12);
  border-radius: 1.15rem;
  padding: 0.36rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(230, 247, 242, 0.58)),
    radial-gradient(circle at 50% 0%, rgba(231, 182, 87, 0.28), transparent 64%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78), 0 18px 38px rgba(15, 63, 50, 0.18);
  line-height: 1;
  perspective: 26rem;
}

.dock-mark-stack span {
  --kat-x: 0rem;
  --kat-y: 0rem;
  --kat-r: 0deg;
  --kat-dur: 1s;
  --kat-delay: 0s;
  position: relative;
  display: grid;
  min-height: 1.46rem;
  overflow: hidden;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 0.82rem;
  background:
    radial-gradient(circle at 72% 18%, rgba(231, 182, 87, 0.86), transparent 34%),
    linear-gradient(145deg, rgba(9, 44, 38, 0.98), rgba(19, 89, 104, 0.96) 58%, rgba(35, 122, 173, 0.94));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28), 0 8px 18px rgba(15, 63, 50, 0.18);
  transform: translateZ(0);
  transition:
    filter var(--duration-base) var(--ease-standard),
    transform var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard);
  animation: kat-letter-idle 6.4s ease-in-out infinite;
  animation-delay: calc(var(--kat-delay) - 0.2s);
  font-size: 0.84rem;
  text-shadow: 0 1px 8px rgba(255, 255, 255, 0.28);
  will-change: transform;
}

.dock-mark-stack span::before {
  position: absolute;
  inset: -18% -65%;
  content: "";
  background: linear-gradient(105deg, transparent 28%, rgba(255, 255, 255, 0.62) 45%, rgba(231, 182, 87, 0.36) 51%, transparent 68%);
  opacity: 0;
  transform: translateX(-72%) skewX(-18deg);
}

.dock-mark-stack span:nth-child(2) {
  animation-delay: -1.35s;
}

.dock-mark-stack span:nth-child(3) {
  animation-delay: -2.4s;
}

.dock-mark-stack:hover span {
  filter: saturate(1.22) contrast(1.05);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.36), 0 10px 22px rgba(27, 110, 168, 0.24);
  animation: kat-letter-dance var(--kat-dur) var(--ease-emphasized) var(--kat-delay) infinite alternate;
}

.dock-mark-stack:hover span::before {
  animation: kat-letter-flash calc(var(--kat-dur) * 1.45) linear infinite;
  opacity: 0.84;
}

.dock-mark-stack:hover span:nth-child(1) {
  --kat-x: -0.18rem;
  --kat-y: 0.13rem;
  --kat-r: -6deg;
  --kat-dur: 0.92s;
}

.dock-mark-stack:hover span:nth-child(2) {
  --kat-x: 0.2rem;
  --kat-y: -0.16rem;
  --kat-r: 5deg;
  --kat-dur: 1.08s;
}

.dock-mark-stack:hover span:nth-child(3) {
  --kat-x: -0.11rem;
  --kat-y: -0.06rem;
  --kat-r: 7deg;
  --kat-dur: 0.84s;
}

@keyframes kat-letter-idle {
  0%,
  100% {
    transform: translate3d(0, 0, 0) rotate(0deg);
  }

  42% {
    transform: translate3d(0, -0.04rem, 0) rotate(0.9deg);
  }

  68% {
    transform: translate3d(0.03rem, 0, 0) rotate(-0.7deg);
  }
}

@keyframes kat-letter-dance {
  0% {
    transform: translate3d(calc(var(--kat-x) * -0.7), calc(var(--kat-y) * 0.5), 0) rotate(calc(var(--kat-r) * -0.45)) scale(1);
  }

  100% {
    transform: translate3d(var(--kat-x), var(--kat-y), 0) rotate(var(--kat-r)) scale(1.07);
  }
}

@keyframes kat-letter-flash {
  0%,
  24% {
    transform: translateX(-74%) skewX(-18deg);
  }

  72%,
  100% {
    transform: translateX(74%) skewX(-18deg);
  }
}

.dock-eyebrow {
  margin: 0;
  color: rgba(15, 63, 50, 0.72);
  font-size: clamp(0.72rem, 1.2vw, 0.82rem);
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.dock-title {
  display: block;
  margin-top: 0.1rem;
  overflow: visible;
  color: var(--ink);
  font-size: clamp(1rem, 2.2vw, 1.35rem);
  font-weight: 950;
  white-space: normal;
}

.dock-nav {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  justify-self: stretch;
  flex-wrap: wrap;
  gap: 0.5rem;
  border: 1px solid rgba(8, 27, 24, 0.08);
  border-radius: 1.2rem;
  padding: 0.45rem;
  background:
    linear-gradient(135deg, rgba(232, 246, 241, 0.92), rgba(238, 244, 255, 0.92)),
    #f8fafc;
}

.dock-menu {
  position: relative;
  z-index: 1;
  display: flex;
  min-width: 0;
  align-items: stretch;
  gap: 0.55rem;
}

.dock-mobile-nav {
  display: none;
}

@media (min-width: 1024px) {
  .dock-nav-primary .dock-tab[data-nav-key="admin"] {
    display: none !important;
  }
}

.dock-menu-separator {
  display: block;
  width: 1px;
  border-radius: 999px;
  background: linear-gradient(180deg, transparent, rgba(8, 27, 24, 0.16), transparent);
}

@media (min-width: 860px) and (max-width: 1023px) {
  .app-dock {
    grid-template-columns: minmax(13rem, 0.62fr) minmax(31rem, 1fr);
  }

  .dock-nav {
    flex-wrap: nowrap;
  }

  .dock-menu {
    min-width: 0;
  }

  .dock-tab {
    flex: 1 1 0;
    min-width: 0;
    min-height: 4.2rem;
    flex-direction: column;
    gap: 0.16rem;
    padding: 0.36rem 0.28rem;
  }

  .dock-tab-icon {
    width: 1.9rem;
  }

  .dock-tab-label {
    font-size: 0.68rem;
    line-height: 1.05;
    white-space: nowrap;
    overflow-wrap: normal;
  }
}

@media (min-width: 1024px) {
  .app-workbench {
    display: grid;
    grid-template-columns: 7.15rem minmax(0, 1fr);
    align-items: start;
    gap: clamp(1rem, 2vw, 1.45rem);
  }

  .app-dock {
    position: sticky;
    top: 1rem;
    grid-template-columns: 1fr;
    align-content: start;
    justify-items: center;
    min-height: auto;
    margin-bottom: 0 !important;
    padding: 0.72rem 0.58rem;
    border-radius: 1.45rem;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(232, 246, 241, 0.92)),
      #fff;
    box-shadow: 0 22px 58px rgba(6, 22, 17, 0.14);
  }

  .app-dock::after {
    inset: -18% 0;
    background: linear-gradient(180deg, transparent 0 18%, rgba(255, 255, 255, 0.55) 34%, rgba(231, 182, 87, 0.28) 46%, transparent 66% 100%);
    transform: translateY(-120%) skewY(-8deg);
    animation-name: dock-light-sweep-vertical;
  }

  .dock-brand {
    width: 100%;
    justify-content: center;
    gap: 0;
  }

  .dock-brand > div {
    display: none;
  }

  .dock-mark {
    width: 3.25rem;
    min-height: 4.3rem;
    border-radius: 0.95rem;
  }

  .dock-menu {
    display: grid;
    width: 100%;
    gap: 0.54rem;
  }

  .dock-menu-separator {
    width: 100%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(8, 27, 24, 0.2), transparent);
  }

  .dock-nav {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr;
    gap: 0.58rem;
    border: 0;
    border-radius: 0;
    padding: 0;
    background: transparent;
  }

  .dock-tab,
  .dock-tab:nth-child(2) {
    width: 100%;
    min-width: 0;
    min-height: 3.78rem;
    flex: none;
    flex-direction: column;
    border-radius: 1.05rem;
    padding: 0.45rem 0.3rem;
    gap: 0.25rem;
    font-size: 0.66rem;
    line-height: 1.12;
  }

  .dock-tab-icon {
    width: 1.92rem;
    border-radius: 0.78rem;
  }

  .dock-tab::after {
    inset: auto 22% 0.38rem;
  }

  .dock-tab-label {
    white-space: nowrap;
  }

  .dock-nav-admin .dock-tab {
    background: rgba(255, 255, 255, 0.56);
  }

  .content-stack {
    grid-column: 2;
    min-width: 0;
  }
}

@keyframes dock-light-sweep-vertical {
  0%,
  12%,
  70% {
    transform: translateY(-120%) skewY(-8deg);
  }

  86%,
  100% {
    transform: translateY(120%) skewY(-8deg);
  }
}

.dock-tab {
  position: relative;
  display: inline-flex;
  flex: 1 1 auto;
  min-width: min(100%, 9.5rem);
  min-height: 3.2rem;
  overflow: hidden;
  border: 0;
  border-radius: 0.9rem;
  padding: 0.55rem 0.8rem;
  background: transparent;
  color: rgba(7, 19, 15, 0.62);
  font-size: clamp(0.78rem, 1.15vw, 0.85rem);
  font-weight: 950;
  letter-spacing: 0;
  align-items: center;
  justify-content: center;
  gap: 0.48rem;
  text-align: center;
  white-space: normal;
  transition:
    color var(--duration-base) var(--ease-standard),
    transform var(--duration-base) var(--ease-standard),
    background-color var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard);
  isolation: isolate;
}

.dock-tab:nth-child(2) {
  flex-grow: 1;
}

.dock-tab-icon {
  position: relative;
  z-index: 1;
  display: grid;
  width: 2.2rem;
  aspect-ratio: 1;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0.8rem;
  background: rgba(255, 255, 255, 0.74);
  color: var(--forest);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.dock-tab::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  content: "";
  pointer-events: none;
  background:
    var(--shine-soft),
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(255, 255, 255, 0.6), transparent 36%),
    radial-gradient(circle at 18% 0%, var(--triad-primary-soft), transparent 62%),
    radial-gradient(circle at 86% 100%, var(--triad-secondary-soft), transparent 58%);
  opacity: 0.16;
  transform: translateX(-42%);
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform 720ms var(--ease-emphasized);
}

.dock-tab-label {
  position: relative;
  z-index: 1;
  overflow: visible;
  line-height: 1.15;
  white-space: normal;
}

@media (min-width: 1024px) {
  .dock-tab-label {
    white-space: nowrap;
  }
}

.dock-tab::after {
  position: absolute;
  inset: auto 18% 0.28rem;
  height: 2px;
  content: "";
  background: linear-gradient(90deg, var(--forest), var(--river), var(--sun));
  opacity: 0.46;
  transform: scaleX(0.18);
  transform-origin: center;
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform 320ms var(--ease-emphasized);
}

.dock-tab:hover,
.dock-tab.is-active {
  background: #fff;
  color: var(--ink);
  transform: perspective(800px) translate3d(var(--magnet-x), var(--magnet-y), 0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift-y));
  box-shadow: 0 12px 30px rgba(7, 19, 15, 0.08);
}

.dock-tab:hover::before,
.dock-tab.is-active::before {
  opacity: 0.82;
  transform: translateX(112%);
}

.dock-tab:hover .dock-tab-icon,
.dock-tab.is-active .dock-tab-icon {
  background: linear-gradient(135deg, var(--forest), var(--river));
  color: #fff;
}

.dock-tab:hover::after,
.dock-tab.is-active::after {
  opacity: 1;
  transform: scaleX(1);
}

.content-stack {
  position: relative;
  display: grid;
  gap: clamp(1rem, 2.4vw, 1.5rem);
}

.content-stack :where(h1, h2, h3, h4, h5, h6, p, span, a, label, button, th, td, strong, small) {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
}

.content-stack :where(.truncate, .line-clamp-2) {
  display: block !important;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: initial !important;
}

.content-stack :where(.whitespace-nowrap) {
  white-space: normal !important;
}

.content-stack a {
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

.content-stack a:not(.link-card-title):not(.link-card-open):hover {
  transform: translateY(var(--lift-y));
}

.motion-page {
  view-transition-name: page-content;
  animation: page-soft-in var(--duration-slow) var(--ease-emphasized) both;
}

::view-transition-old(page-content),
::view-transition-new(page-content) {
  animation-duration: var(--duration-base);
  animation-timing-function: var(--ease-emphasized);
}

@keyframes page-soft-in {
  from {
    opacity: 0;
    transform: translate3d(0, 10px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.content-stack main,
.content-stack section,
.content-stack aside,
.content-stack article,
.content-stack form,
.surface-card,
.admin-panel,
.admin-dashboard,
.admin-filter-panel {
  min-width: 0;
  max-width: 100%;
  border-color: rgba(8, 27, 24, 0.12) !important;
}

.content-stack .rounded-2xl,
.content-stack .rounded-xl,
.surface-card {
  border-radius: clamp(1rem, 2vw, 1.35rem) !important;
}

.content-stack .bg-white,
.content-stack .bg-slate-50,
.content-stack .bg-slate-100 {
  background: var(--panel) !important;
  backdrop-filter: none;
}

.content-stack .bg-slate-50,
.content-stack .bg-slate-100 {
  background: var(--panel-soft) !important;
}

.content-stack .shadow-sm,
.surface-card {
  box-shadow: var(--shadow-soft) !important;
}

.surface-card,
.upload-zone {
  transition:
    transform var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    filter var(--duration-base) var(--ease-standard);
}

.surface-card:hover,
.upload-zone:not(.is-disabled):hover,
.upload-zone.is-dragging {
  border-color: rgba(47, 111, 79, 0.36) !important;
  box-shadow: 0 18px 46px rgba(7, 19, 15, 0.11) !important;
  filter: saturate(1.03);
  transform: translateY(var(--lift-y));
}

.panel {
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: clamp(1rem, 2vw, 1.35rem);
  box-shadow: var(--shadow-soft);
}

.panel-solid {
  background: var(--panel);
}

.padan-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 2.4vw, 1.5rem);
  align-items: start;
}

.padan-layout > * {
  min-width: 0;
}

@media (min-width: 1180px) {
  .padan-layout {
    grid-template-columns: minmax(0, 1fr) minmax(20rem, 0.42fr);
  }
}

.padan-upload {
  position: relative;
  padding: clamp(1rem, 2.5vw, 1.45rem);
}

.section-head {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
  align-items: start;
  gap: clamp(0.75rem, 1.8vw, 1rem);
}

.section-kicker {
  margin: 0 0 0.35rem;
  color: rgba(47, 111, 79, 0.78);
  font-size: clamp(0.7rem, 1.1vw, 0.82rem);
  font-weight: 950;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.section-title {
  margin: 0;
  color: var(--ink);
  font-size: clamp(1.2rem, 2.4vw, 1.75rem);
  font-weight: 950;
  line-height: 1.15;
}

.section-pill {
  display: inline-block;
  max-width: 100%;
  justify-self: start;
  border: 1px solid rgba(27, 110, 168, 0.18);
  border-radius: 999px;
  padding: 0.65rem 1rem;
  background: rgba(27, 110, 168, 0.08);
  color: #16577e;
  font-size: clamp(0.7rem, 1.15vw, 0.82rem);
  font-weight: 950;
  line-height: 1.25;
}

.form-grid,
.region-grid {
  display: grid;
  gap: clamp(0.8rem, 1.8vw, 1rem);
}

.form-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr));
}

.region-fieldset {
  position: relative;
  z-index: 2;
  display: grid;
  gap: 0.65rem;
}

.region-fieldset:has(.select-control.is-open) {
  z-index: 1200;
}

.region-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr));
  align-items: start;
}

.region-grid > * {
  position: relative;
}

.region-grid > *:has(.select-control.is-open) {
  z-index: 1250;
}

.region-note {
  margin: 0;
  color: rgba(7, 19, 15, 0.58);
  font-size: clamp(0.72rem, 1.15vw, 0.82rem);
  font-weight: 700;
  line-height: 1.75;
}

.mode-switch {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
  gap: 0.55rem;
  border: 1px solid rgba(8, 27, 24, 0.1);
  border-radius: 1.05rem;
  padding: 0.35rem;
  background: rgba(8, 27, 24, 0.055);
}

.mode-option {
  position: relative;
  display: grid;
  min-height: 4.2rem;
  overflow: hidden;
  gap: 0.18rem;
  align-content: center;
  border: 0;
  border-radius: 0.78rem;
  padding: 0.7rem 0.85rem;
  background: transparent;
  color: rgba(7, 19, 15, 0.66);
  text-align: left;
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

.mode-option::before {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(110deg, transparent 0 30%, rgba(255, 255, 255, 0.58) 48%, transparent 68% 100%),
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(231, 182, 87, 0.2), transparent 42%);
  opacity: 0;
  transform: translateX(-112%);
  transition:
    opacity var(--duration-fast) var(--ease-standard),
    transform 540ms var(--ease-emphasized);
}

.mode-option:hover,
.mode-option.is-active {
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 10px 24px rgba(7, 19, 15, 0.08);
  color: var(--ink);
  transform: perspective(800px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift-y));
}

.mode-option:hover::before,
.mode-option.is-active::before {
  opacity: 0.9;
  transform: translateX(112%);
}

.mode-option-title {
  font-size: 0.9rem;
  font-weight: 950;
  line-height: 1.3;
}

.mode-option-meta {
  color: rgba(7, 19, 15, 0.54);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1.35;
}

.select-control {
  position: relative;
  z-index: 20;
  min-width: 0;
}

.select-control.is-open {
  z-index: 1300;
}

.select-trigger {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 2.85rem;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid rgba(8, 27, 24, 0.14);
  border-radius: 0.75rem;
  padding: 0.58rem 1rem;
  overflow: hidden;
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(27, 110, 168, 0.08), transparent 42%),
    rgba(255, 255, 255, 0.84);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
  color: var(--ink);
  font-size: 0.875rem;
  font-weight: 800;
  outline: none;
  text-align: left;
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard),
    background-color var(--duration-fast) var(--ease-standard);
}

.select-trigger:focus-visible,
.select-control.is-open .select-trigger {
  border-color: rgba(27, 110, 168, 0.7);
  box-shadow: 0 0 0 4px rgba(27, 110, 168, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.8);
  transform: translateY(var(--lift-y));
}

.select-control.is-disabled .select-trigger {
  background: rgba(240, 244, 241, 0.8);
  color: rgba(7, 19, 15, 0.38);
}

.select-value {
  overflow: visible;
  line-height: 1.25;
  white-space: normal;
}

.select-placeholder {
  color: rgba(7, 19, 15, 0.44);
}

.select-caret {
  flex: 0 0 auto;
  width: 0.54rem;
  height: 0.54rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  margin-top: -0.2rem;
  opacity: 0.62;
  transform: rotate(45deg);
  transition:
    margin var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

.select-control.is-open .select-caret {
  margin-top: 0.22rem;
  transform: rotate(225deg);
}

.select-popover {
  position: absolute;
  z-index: 90;
  top: calc(100% + 0.38rem);
  right: 0;
  left: 0;
  display: grid;
  max-height: 16rem;
  gap: 0.2rem;
  overflow: auto;
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: 0.95rem;
  padding: 0.35rem;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 22px 56px rgba(7, 19, 15, 0.18);
  transform-origin: 50% 0;
  animation: popover-soft-in 160ms var(--ease-emphasized) both;
}

@keyframes popover-soft-in {
  from {
    opacity: 0;
    transform: translate3d(0, -4px, 0) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.select-search {
  width: 100%;
  min-height: 2.45rem;
  border: 1px solid rgba(27, 110, 168, 0.24);
  border-radius: 0.7rem;
  padding: 0 0.8rem;
  background: #fff;
  color: var(--ink);
  font-size: 0.84rem;
  font-weight: 800;
  outline: none;
}

.select-search:focus {
  border-color: rgba(27, 110, 168, 0.7);
  box-shadow: 0 0 0 3px rgba(27, 110, 168, 0.12);
}

.select-option {
  display: grid;
  gap: 0.15rem;
  width: 100%;
  min-height: 2.65rem;
  border: 0;
  border-radius: 0.7rem;
  padding: 0.75rem 1rem;
  background: transparent;
  color: rgba(7, 19, 15, 0.74);
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1.4;
  text-align: left;
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

.select-option-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

.select-option-subtitle {
  color: rgba(7, 19, 15, 0.5);
  font-size: 0.72rem;
  font-weight: 750;
  line-height: 1.35;
}

.select-option:hover,
.select-option:focus-visible,
.select-option.is-selected {
  background: rgba(27, 110, 168, 0.11);
  color: var(--ink);
  outline: none;
}

.select-option.is-placeholder {
  color: rgba(7, 19, 15, 0.46);
}

.select-custom-option {
  margin-top: 0.25rem;
  border: 1px dashed rgba(27, 110, 168, 0.26);
  background:
    linear-gradient(135deg, rgba(27, 110, 168, 0.09), rgba(47, 111, 79, 0.08)),
    rgba(255, 255, 255, 0.94);
  color: var(--forest);
}

.select-option:disabled {
  color: rgba(7, 19, 15, 0.32);
  cursor: not-allowed;
}

.select-empty {
  border-radius: 0.7rem;
  padding: 0.85rem;
  color: rgba(7, 19, 15, 0.52);
  font-size: 0.8rem;
  font-weight: 800;
}

.action-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.7rem;
}

.upload-zone {
  position: relative;
  z-index: 0;
  overflow: hidden;
  border: 1.5px dashed rgba(27, 110, 168, 0.32);
  border-radius: clamp(1rem, 2vw, 1.25rem);
  background:
    linear-gradient(135deg, rgba(27, 110, 168, 0.1), rgba(47, 111, 79, 0.08)),
    rgba(255, 255, 255, 0.92);
}

.upload-zone.is-disabled {
  opacity: 0.58;
}

.upload-zone-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}

.content-stack input[type="file"]:not(.upload-zone-input) {
  min-height: 5.75rem !important;
  border: 1.5px dashed rgba(27, 110, 168, 0.32) !important;
  border-radius: clamp(1rem, 2vw, 1.25rem) !important;
  padding: 1rem !important;
  background:
    linear-gradient(135deg, rgba(27, 110, 168, 0.1), rgba(47, 111, 79, 0.08)),
    rgba(255, 255, 255, 0.92) !important;
  color: rgba(7, 19, 15, 0.58) !important;
  cursor: pointer;
}

.content-stack input[type="file"]:not(.upload-zone-input)::file-selector-button {
  margin-right: 0.9rem;
  border: 0;
  border-radius: 0.9rem;
  padding: 0.78rem 1rem;
  background: linear-gradient(135deg, var(--forest), var(--river));
  color: #fff;
  font-weight: 950;
  cursor: pointer;
}

.upload-zone-button {
  display: grid;
  width: 100%;
  min-height: clamp(7rem, 16vw, 9rem);
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(0.8rem, 2vw, 1.15rem);
  align-items: center;
  border: 0;
  padding: clamp(1rem, 2.8vw, 1.35rem);
  background: transparent;
  color: var(--ink);
  text-align: left;
}

.upload-zone.is-compact .upload-zone-button {
  min-height: 5rem;
  padding: 0.85rem;
}

.upload-zone-icon {
  display: grid;
  width: clamp(2.8rem, 6vw, 3.55rem);
  aspect-ratio: 1;
  place-items: center;
  border-radius: 1rem;
  background: linear-gradient(135deg, var(--forest), var(--river));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.24), 0 12px 24px rgba(15, 63, 50, 0.2);
  color: #fff;
  font-size: clamp(0.72rem, 1.4vw, 0.9rem);
  font-weight: 950;
}

.upload-zone-body {
  display: grid;
  min-width: 0;
  gap: 0.35rem;
}

.upload-zone-title {
  display: block;
  overflow: visible;
  color: #07130f;
  font-size: clamp(0.96rem, 1.9vw, 1.12rem);
  font-weight: 950;
  line-height: 1.35;
}

.upload-zone-meta {
  color: rgba(7, 19, 15, 0.58);
  font-size: clamp(0.76rem, 1.2vw, 0.86rem);
  font-weight: 700;
  line-height: 1.65;
}

.padan-context-banner {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
  border: 1px solid rgba(27, 110, 168, 0.18);
  border-radius: 1rem;
  padding: 0.78rem;
  background:
    linear-gradient(135deg, rgba(27, 110, 168, 0.1), rgba(47, 111, 79, 0.1)),
    rgba(255, 255, 255, 0.78);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.padan-context-icon {
  display: grid;
  width: 2.35rem;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 0.8rem;
  background: linear-gradient(135deg, var(--forest), var(--river));
  color: #fff;
}

.padan-context-copy {
  display: grid;
  min-width: 0;
  gap: 0.1rem;
}

.padan-context-copy strong,
.padan-context-copy small {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.padan-context-copy strong {
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 950;
}

.padan-context-copy small {
  color: rgba(7, 19, 15, 0.56);
  font-size: 0.76rem;
  font-weight: 780;
  line-height: 1.45;
}

.padan-context-clear {
  display: grid;
  width: 2rem;
  aspect-ratio: 1;
  place-items: center;
  border: 0;
  border-radius: 0.7rem;
  background: rgba(255, 255, 255, 0.7);
  color: rgba(7, 19, 15, 0.55);
}

.preview-shell {
  max-width: 100%;
  contain: layout paint;
}

.preview-shell > div:last-child {
  max-width: 100%;
  overscroll-behavior-x: contain;
}

.preview-table {
  width: max-content;
  min-width: 100%;
  table-layout: fixed;
}

.preview-table th,
.preview-table td {
  width: clamp(8.5rem, 18vw, 15rem);
  min-width: 8.5rem;
  max-width: 15rem;
  vertical-align: top;
  white-space: normal;
}

.preview-heading {
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.preview-cell {
  display: block;
  overflow: visible;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.source-pills > span {
  min-width: 0;
}

.source-pill-button,
.location-card {
  min-width: 0;
  max-width: 100%;
}

.location-card {
  contain: layout paint;
}

.location-card-main {
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
  color: inherit;
  background: transparent;
  background-color: transparent;
  -webkit-appearance: none;
  appearance: none;
}

/* Remove any lingering white backgrounds inside location cards (but keep the padan button intact) */
.location-card :where(p, span, div, strong, small, a, b) {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

.location-card :where(.location-card-padan, .location-card-padan *) {
  background: unset !important;
}

.location-card-main::before {
  display: none !important;
}

.location-card-main:hover {
  box-shadow: none !important;
  transform: none !important;
}

.location-card-padan {
  position: relative;
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.45rem;
  margin-top: 0.75rem;
  border: 1px solid rgba(var(--triad-secondary-rgb), 0.14);
  border-radius: 0.85rem;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(var(--triad-secondary-rgb), 0.1), rgba(var(--triad-primary-rgb), 0.11)),
    rgba(255, 255, 255, 0.68);
  color: #16577e;
  font-size: 0.78rem;
  font-weight: 950;
  transition:
    transform var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    background-color var(--duration-base) var(--ease-standard),
    color var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard);
}

.location-card-padan::before {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    var(--shine-soft),
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(255, 255, 255, 0.44), transparent 42%);
  opacity: 0.16;
  transform: translateX(-48%);
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform 700ms var(--ease-emphasized);
}

.location-card-padan:hover {
  border-color: rgba(var(--triad-secondary-rgb), 0.34);
  background: linear-gradient(135deg, var(--forest), var(--river));
  color: #fff;
  transform: perspective(800px) translate3d(var(--magnet-x), var(--magnet-y), 0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift-y));
  box-shadow: 0 14px 30px rgba(var(--triad-secondary-rgb), 0.15);
}

.location-card-padan:hover::before {
  opacity: 0.86;
  transform: translateX(112%);
}

.result-download-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-width: 0;
}

.result-download-link {
  display: inline-grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.5rem;
  min-width: min(100%, 10.5rem);
  min-height: 2.5rem;
  border-radius: 0.78rem;
  padding: 0.5rem 0.68rem;
  background: rgba(255, 255, 255, 0.92);
  color: #334155;
  font-size: 0.74rem;
  font-weight: 900;
  line-height: 1.2;
  box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.24);
}

.result-download-link strong,
.result-download-link small {
  display: block;
}

.result-download-link small {
  margin-top: 0.12rem;
  color: rgba(51, 65, 85, 0.62);
  font-size: 0.66rem;
  font-weight: 780;
  overflow-wrap: anywhere;
}

.result-download-link:hover {
  background: #f8fafc;
  color: #0f172a;
}

.map-side-panel .source-pills {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.map-side-panel .source-pill-button {
  width: 100%;
  justify-content: flex-start;
  overflow: visible;
}

.source-pill-button > span,
.source-pills > span > span {
  min-width: 0;
}

/* Ensure the sidebar header with the active source and its badge is responsive */
.map-side-panel .flex.flex-wrap.items-center.justify-between {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}

.map-side-panel .flex.flex-wrap.items-center.justify-between > span:first-child {
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
}

.map-side-panel .flex.flex-wrap.items-center.justify-between > span.inline-flex {
  flex: 0 0 auto;
  max-width: 100%;
}

.map-side-panel .inline-flex .truncate {
  display: inline-block;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.region-detail {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

.map-side-trail,
.map-drill-trail {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.map-side-trail span,
.map-drill-trail span {
  max-width: 100%;
  border-radius: 999px;
  padding: 0.32rem 0.52rem;
  background: rgba(255, 255, 255, 0.86);
  color: rgba(7, 19, 15, 0.74);
  font-size: 0.68rem;
  font-weight: 900;
  line-height: 1.15;
  overflow-wrap: anywhere;
  box-shadow: inset 0 0 0 1px rgba(8, 27, 24, 0.08);
}

.about-hero-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.34fr);
  gap: clamp(1rem, 2vw, 1.35rem);
  overflow: hidden;
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: 1.3rem;
  padding: clamp(1rem, 2.5vw, 1.65rem);
  background:
    radial-gradient(circle at 82% 16%, rgba(231, 182, 87, 0.24), transparent 16rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(232, 246, 241, 0.9));
  box-shadow: 0 24px 70px rgba(8, 27, 24, 0.12);
}

.about-title {
  max-width: 54rem;
  margin: 0.2rem 0 0;
  color: var(--ink);
  font-size: clamp(1.65rem, 3.8vw, 3.15rem);
  font-weight: 950;
  line-height: 1.03;
}

.about-summary {
  max-width: 58rem;
  margin-top: 0.8rem;
  color: rgba(7, 19, 15, 0.72);
  font-size: clamp(0.95rem, 1.4vw, 1.05rem);
  font-weight: 760;
  line-height: 1.72;
}

.about-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 1rem;
}

.about-chip {
  border-radius: 999px;
  padding: 0.43rem 0.68rem;
  background: rgba(255, 255, 255, 0.82);
  color: rgba(15, 63, 50, 0.86);
  font-size: 0.74rem;
  font-weight: 950;
  box-shadow: inset 0 0 0 1px rgba(15, 63, 50, 0.1);
}

.about-signature {
  display: grid;
  align-content: end;
  gap: 0.55rem;
  border-radius: 1.1rem;
  padding: 1rem;
  background:
    linear-gradient(160deg, rgba(15, 63, 50, 0.95), rgba(27, 110, 168, 0.88)),
    #0f3f32;
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 20px 52px rgba(15, 63, 50, 0.22);
}

.about-signature-mark {
  display: grid;
  width: 3.25rem;
  min-height: 4.3rem;
  place-items: center;
  border-radius: 0.95rem;
  background: rgba(255, 255, 255, 0.14);
  font-size: 0.82rem;
  font-weight: 950;
  letter-spacing: 0;
  writing-mode: vertical-rl;
  text-orientation: upright;
}

.dock-signature-mark {
  width: clamp(2.9rem, 4.5vw, 3.25rem);
  min-height: clamp(4.2rem, 6vw, 4.85rem);
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: #0f6f5a;
  color: #ffffff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 18px 36px rgba(15, 63, 50, 0.18);
}

.about-signature strong,
.about-signature small {
  display: block;
}

.about-signature small {
  color: rgba(255, 255, 255, 0.74);
  font-size: 0.78rem;
  font-weight: 760;
  line-height: 1.55;
}

.about-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(17rem, 0.36fr);
  gap: clamp(1rem, 2vw, 1.35rem);
}

.about-prose,
.about-workflow,
.content-admin {
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: 1.15rem;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 20px 56px rgba(8, 27, 24, 0.09);
}

.about-prose {
  padding: clamp(1rem, 2.2vw, 1.5rem);
  color: rgba(7, 19, 15, 0.78);
  font-size: 0.95rem;
  font-weight: 680;
  line-height: 1.78;
}

.about-prose h2,
.about-prose h3 {
  margin: 1.1rem 0 0.45rem;
  color: var(--ink);
  font-weight: 950;
  line-height: 1.18;
}

.about-prose h2:first-child,
.about-prose h3:first-child {
  margin-top: 0;
}

.about-prose ul,
.about-prose ol {
  display: grid;
  gap: 0.45rem;
  margin: 0.65rem 0;
  padding-left: 1.2rem;
}

.about-prose blockquote {
  margin: 0.8rem 0;
  border-left: 3px solid var(--forest);
  padding: 0.4rem 0 0.4rem 0.85rem;
  color: rgba(15, 63, 50, 0.78);
  font-weight: 820;
}

.about-loading {
  display: grid;
  gap: 0.75rem;
}

.about-loading span {
  height: 1rem;
  border-radius: 999px;
  background: linear-gradient(90deg, #edf2f7, #f8fafc, #edf2f7);
}

.about-prose.is-fallback {
  background:
    radial-gradient(circle at 8% 10%, rgba(34, 197, 94, 0.11), transparent 22rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(240, 249, 245, 0.86));
}

.about-prose.is-refreshing {
  position: relative;
}

.about-refresh-note {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin: 1rem 0 0;
  border-radius: 999px;
  padding: 0.45rem 0.7rem;
  background: rgba(6, 95, 70, 0.08);
  color: rgba(6, 78, 59, 0.86);
  font-size: 0.72rem;
  font-weight: 900;
  line-height: 1;
}

.about-refresh-note svg {
  animation: icon-spin 1.1s linear infinite;
}

.about-workflow {
  align-self: start;
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
}

.about-workflow-step {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: start;
  gap: 0.58rem;
  border-radius: 1rem;
  padding: 0.78rem;
  background: linear-gradient(135deg, rgba(232, 246, 241, 0.82), rgba(248, 250, 252, 0.94));
}

.about-workflow-index {
  color: rgba(15, 63, 50, 0.48);
  font-size: 0.68rem;
  font-weight: 950;
}

.about-workflow-icon {
  display: grid;
  width: 2rem;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 0.72rem;
  background: #fff;
  color: var(--forest);
  box-shadow: 0 10px 28px rgba(8, 27, 24, 0.08);
}

.about-workflow-copy strong,
.about-workflow-copy small {
  display: block;
}

.about-workflow-copy strong {
  color: var(--ink);
  font-size: 0.86rem;
  font-weight: 950;
}

.about-workflow-copy small {
  margin-top: 0.18rem;
  color: rgba(7, 19, 15, 0.58);
  font-size: 0.74rem;
  font-weight: 760;
  line-height: 1.48;
}

.rte-shell {
  overflow: hidden;
  border: 1px solid rgba(8, 27, 24, 0.14);
  border-radius: 1rem;
  background: #fff;
}

.rte-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  border-bottom: 1px solid rgba(8, 27, 24, 0.1);
  padding: 0.55rem;
  background: linear-gradient(135deg, rgba(248, 250, 252, 0.96), rgba(232, 246, 241, 0.72));
}

.rte-tool {
  display: inline-grid;
  width: 2.15rem;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(8, 27, 24, 0.1);
  border-radius: 0.72rem;
  background: #fff;
  color: rgba(7, 19, 15, 0.7);
  font-size: 0.75rem;
  font-weight: 950;
}

.rte-tool:hover,
.rte-tool.is-active {
  border-color: rgba(27, 110, 168, 0.32);
  background: linear-gradient(135deg, var(--forest), var(--river));
  color: #fff;
}

.rte-editor {
  min-height: clamp(16rem, 34vh, 30rem);
  padding: 1rem;
  color: rgba(7, 19, 15, 0.78);
  font-size: 0.94rem;
  font-weight: 680;
  line-height: 1.75;
  outline: none;
}

.rte-editor:focus {
  box-shadow: inset 0 0 0 3px rgba(27, 110, 168, 0.14);
}

.geojson-editor {
  min-height: clamp(16rem, 34vh, 30rem);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace !important;
  font-size: 0.78rem !important;
  line-height: 1.55 !important;
}

.stat-card {
  position: relative;
  overflow: hidden;
  min-height: clamp(5.4rem, 9vw, 6.4rem);
  contain: paint;
}

.stat-card::before {
  position: absolute;
  inset: -45% auto auto -18%;
  width: 62%;
  aspect-ratio: 1;
  border-radius: 999px;
  content: "";
  background: radial-gradient(circle, rgba(255, 255, 255, 0.72), transparent 67%);
  mix-blend-mode: overlay;
  transition: transform var(--duration-slow) var(--ease-emphasized);
}

.stat-card:hover::before {
  transform: translate3d(14%, 10%, 0) scale(1.12);
}

.stat-card-clickable {
  width: 100%;
  appearance: none;
  cursor: pointer;
}

.stat-card-clickable.is-active {
  outline: 3px solid rgba(27, 110, 168, 0.18);
  outline-offset: 2px;
}

.stat-card-clickable:hover .stat-card-icon {
  transform: rotate(-3deg) scale(1.04);
}

.stat-card.is-loading {
  pointer-events: none;
}

.stat-card-icon {
  transition:
    transform var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard);
}

.stat-card .stat-label {
  font-size: clamp(0.68rem, 1.2vw, 0.78rem) !important;
  letter-spacing: 0 !important;
  line-height: 1.3;
}

.stat-card .stat-value {
  font-size: clamp(1.78rem, 3vw, 2.45rem) !important;
  line-height: 1.1;
}

.stat-value-loading {
  position: relative;
  display: block;
  width: min(5.4rem, 52%);
  height: 2.2rem;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.18);
}

.stat-value-loading::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.78), transparent);
  transform: translate3d(-105%, 0, 0);
  animation: link-skeleton 1.45s var(--ease-standard) infinite;
}

.stat-card .stat-subtitle {
  min-height: 1.3rem;
  line-height: 1.4;
}

.stat-grid {
  display: flex !important;
  flex-wrap: wrap;
  align-items: stretch;
}

.stat-grid .stat-card {
  flex: 1 1 calc(25% - 0.75rem);
  min-width: min(100%, 220px);
}

.stat-grid:has(.stat-card:nth-child(9)) .stat-card {
  flex-basis: calc(20% - 0.75rem);
  min-width: min(100%, 205px);
}

.link-home-panel,
.link-archive-hero,
.link-archive-toolbar {
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: clamp(1rem, 2vw, 1.35rem);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(247, 250, 247, 0.9)),
    linear-gradient(90deg, rgba(47, 111, 79, 0.08), rgba(27, 110, 168, 0.08));
  box-shadow: var(--shadow-soft);
}

.link-home-panel {
  padding: clamp(1rem, 2.4vw, 1.35rem);
}

.link-home-head,
.link-archive-hero {
  display: grid;
  align-items: start;
  gap: clamp(1rem, 2.4vw, 1.4rem);
}

.link-home-head {
  grid-template-columns: minmax(0, 1fr) auto;
}

.link-home-copy,
.link-archive-lead {
  margin: 0.42rem 0 0;
  max-width: 68rem;
  color: rgba(7, 19, 15, 0.62);
  font-size: 0.86rem;
  font-weight: 720;
  line-height: 1.6;
}

.link-archive-copy {
  display: grid;
  min-width: 0;
  align-content: start;
}

.link-home-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.55rem;
}

.link-home-count {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.75rem;
  border: 1px solid rgba(27, 110, 168, 0.16);
  border-radius: 999px;
  padding: 0 0.9rem;
  background: rgba(255, 255, 255, 0.78);
  color: #16577e;
  font-size: 0.78rem;
  font-weight: 950;
}

.link-home-grid,
.link-archive-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr));
  gap: 0.85rem;
}

.link-home-grid {
  margin-top: 1rem;
}

.link-card {
  display: grid;
  min-width: 0;
  gap: 0.8rem;
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: 1rem;
  padding: 0.95rem;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 12px 34px rgba(7, 19, 15, 0.07);
  contain: paint;
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

.link-card:hover {
  border-color: rgba(27, 110, 168, 0.24);
  box-shadow: 0 18px 42px rgba(7, 19, 15, 0.1);
  transform: translateY(var(--lift-y));
}

.link-card.is-pinned {
  border-color: rgba(231, 182, 87, 0.48);
  background: linear-gradient(180deg, rgba(255, 250, 236, 0.96), rgba(255, 255, 255, 0.94));
}

.link-card-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.72rem;
}

.link-card-icon,
.link-submit-icon {
  display: grid;
  width: 2.35rem;
  height: 2.35rem;
  place-items: center;
  border-radius: 0.82rem;
  background: #ecfdf5;
  color: #047857;
  box-shadow: inset 0 0 0 1px rgba(4, 120, 87, 0.1);
}

.link-card.is-pinned .link-card-icon {
  background: #fffbeb;
  color: #b7791f;
  box-shadow: inset 0 0 0 1px rgba(183, 121, 31, 0.16);
}

.link-card-title {
  display: flex;
  min-height: 2.5rem;
  align-items: center;
  overflow: visible;
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 950;
  line-height: 1.35;
  text-overflow: clip;
  white-space: normal;
}

.link-card-title:hover {
  color: #16577e;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.link-card-host {
  margin: 0.15rem 0 0;
  overflow: visible;
  color: rgba(7, 19, 15, 0.5);
  font-size: 0.76rem;
  font-weight: 850;
  text-overflow: clip;
  white-space: normal;
}

.link-card-open {
  display: grid;
  width: 2.2rem;
  height: 2.2rem;
  place-items: center;
  border-radius: 0.75rem;
  background: #f8fafc;
  color: #334155;
  box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.22);
  transition:
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard);
}

.link-card-open:hover {
  background: #0f172a;
  color: #fff;
  transform: translateY(var(--lift-y));
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.14);
}

.link-card-description {
  display: block;
  min-height: 2.8rem;
  margin: 0;
  overflow: visible;
  color: rgba(7, 19, 15, 0.64);
  font-size: 0.82rem;
  font-weight: 720;
  line-height: 1.65;
}

.link-card-meta,
.link-card-actions,
.link-card-audit {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
}

.link-card-audit {
  color: rgba(7, 19, 15, 0.48);
  font-size: 0.72rem;
  font-weight: 800;
}

.link-process-chip {
  display: inline-flex;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  gap: 0.35rem;
  border-radius: 999px;
  padding: 0.38rem 0.62rem;
  background: rgba(27, 110, 168, 0.08);
  color: #16577e;
  font-size: 0.72rem;
  font-weight: 950;
  line-height: 1;
  box-shadow: inset 0 0 0 1px rgba(27, 110, 168, 0.14);
}

.link-home-empty,
.link-archive-empty {
  display: grid;
  min-height: 9rem;
  place-items: center;
  gap: 0.55rem;
  border: 1px dashed rgba(8, 27, 24, 0.16);
  border-radius: 1rem;
  padding: 1.25rem;
  background: rgba(255, 255, 255, 0.66);
  color: rgba(7, 19, 15, 0.56);
  text-align: center;
  font-size: 0.9rem;
  font-weight: 850;
}

.link-card-skeleton {
  min-height: 9rem;
}

.link-card-skeleton span,
.link-card-skeleton strong,
.link-card-skeleton p {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(148, 163, 184, 0.16);
}

.link-card-skeleton span::after,
.link-card-skeleton strong::after,
.link-card-skeleton p::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.86), transparent);
  transform: translate3d(-105%, 0, 0);
  animation: link-skeleton 1.45s var(--ease-standard) infinite;
  will-change: transform;
}

.link-card-skeleton span {
  width: 2.2rem;
  height: 2.2rem;
}

.link-card-skeleton strong {
  width: 74%;
  height: 0.9rem;
}

.link-card-skeleton p {
  width: 100%;
  height: 2.8rem;
}

@keyframes link-skeleton {
  to { transform: translate3d(105%, 0, 0); }
}

.link-archive-hero {
  grid-template-columns: minmax(0, 1.18fr) minmax(280px, 340px);
  align-items: stretch;
  padding: clamp(1rem, 2.6vw, 1.5rem);
}

.link-archive-stats,
.link-admin-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.5rem), 1fr));
  gap: 0.65rem;
  margin-top: 1rem;
}

.link-process-overview {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.7rem;
  border: 1px solid rgba(8, 27, 24, 0.1);
  border-radius: 1rem;
  padding: 0.68rem;
  background: rgba(255, 255, 255, 0.58);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.84);
}

.link-process-overview-head,
.link-process-row {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
}

.link-process-overview-head span {
  color: rgba(7, 19, 15, 0.5);
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.link-process-overview-head strong {
  color: #0f766e;
  font-size: 0.78rem;
  font-weight: 950;
  white-space: normal;
}

.link-process-overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
  gap: 0.55rem;
}

.link-process-row {
  min-height: 2.35rem;
  border: 1px solid rgba(27, 110, 168, 0.12);
  border-radius: 0.78rem;
  padding: 0.48rem 0.58rem;
  background: rgba(248, 250, 252, 0.82);
  color: rgba(7, 19, 15, 0.66);
  font-size: 0.76rem;
  font-weight: 850;
}

.link-process-row span {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.link-process-row strong {
  flex: 0 0 auto;
  color: #16577e;
  font-size: 0.74rem;
  font-weight: 950;
}

.link-process-row.is-empty {
  grid-column: 1 / -1;
}

.link-archive-quick {
  display: grid;
  gap: 0.55rem;
  margin-top: 0.7rem;
  border: 1px solid rgba(8, 27, 24, 0.1);
  border-radius: 1rem;
  padding: 0.68rem;
  background:
    linear-gradient(135deg, rgba(255, 251, 235, 0.72), rgba(239, 246, 255, 0.62)),
    rgba(255, 255, 255, 0.68);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

.link-archive-quick-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.link-archive-quick-head span {
  color: rgba(7, 19, 15, 0.5);
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.link-archive-quick-head strong {
  color: #16577e;
  font-size: 0.78rem;
  font-weight: 950;
}

.link-archive-quick-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.55rem;
}

.link-quick-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.55rem;
  min-height: 3.15rem;
  border: 1px solid rgba(27, 110, 168, 0.13);
  border-radius: 0.85rem;
  padding: 0.52rem 0.6rem;
  background: rgba(255, 255, 255, 0.78);
  box-shadow: 0 8px 20px rgba(7, 19, 15, 0.05);
}

.link-quick-card:hover {
  border-color: rgba(27, 110, 168, 0.3);
  box-shadow: 0 12px 28px rgba(7, 19, 15, 0.08);
}

.link-quick-card.is-pinned {
  border-color: rgba(231, 182, 87, 0.45);
  background: rgba(255, 251, 235, 0.86);
}

.link-quick-icon {
  display: grid;
  width: 2rem;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 0.72rem;
  background: #ecfdf5;
  color: #047857;
}

.link-quick-card.is-pinned .link-quick-icon {
  background: #fffbeb;
  color: #b7791f;
}

.link-quick-text {
  display: grid;
  min-width: 0;
  gap: 0.12rem;
}

.link-quick-text strong,
.link-quick-text small {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.link-quick-text strong {
  color: var(--ink);
  font-size: 0.78rem;
  font-weight: 950;
  line-height: 1.25;
}

.link-quick-text small {
  color: rgba(7, 19, 15, 0.5);
  font-size: 0.68rem;
  font-weight: 850;
  line-height: 1.25;
}

.link-quick-skeleton,
.link-quick-empty {
  display: block;
  min-height: 3.15rem;
  border-radius: 0.85rem;
  background: rgba(148, 163, 184, 0.12);
}

.link-quick-empty {
  grid-column: 1 / -1;
  padding: 0.9rem;
  color: rgba(7, 19, 15, 0.52);
  font-size: 0.8rem;
  font-weight: 850;
}

.link-submit-panel {
  align-self: start;
  min-width: 0;
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: 1rem;
  padding: 0.95rem;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 14px 38px rgba(7, 19, 15, 0.08);
}

.link-submit-stack,
.link-submit-grid {
  display: grid;
  gap: 0.68rem;
}

.link-submit-stack {
  margin-top: 0.82rem;
}

.link-submit-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.link-submit-panel input,
.link-submit-panel select {
  height: 2.55rem;
}

.link-submit-panel textarea {
  min-height: 5.35rem;
}

.link-archive-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(12rem, 16rem) auto;
  gap: 0.7rem;
  padding: 0.85rem;
}

.link-admin-list {
  display: grid;
  max-height: 780px;
  gap: 0.8rem;
  overflow: auto;
  padding-right: 0.2rem;
  overscroll-behavior: contain;
}

.map-layout {
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
}

.map-side-panel,
.location-detail-panel,
.location-list {
  min-width: 0;
}

.location-list {
  overscroll-behavior: contain;
}

.admin-job-summary {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr));
}

.admin-mini-card {
  position: relative;
  overflow: hidden;
}

.admin-mini-card::after {
  position: absolute;
  inset: auto -20% -55% auto;
  width: 66%;
  aspect-ratio: 1;
  border-radius: 999px;
  content: "";
  background: radial-gradient(circle, rgba(27, 110, 168, 0.12), transparent 68%);
}

.admin-mini-card.tone-emerald::after {
  background: radial-gradient(circle, rgba(16, 185, 129, 0.16), transparent 68%);
}

.admin-mini-card.tone-amber::after {
  background: radial-gradient(circle, rgba(231, 182, 87, 0.2), transparent 68%);
}

.admin-mini-card.tone-rose::after {
  background: radial-gradient(circle, rgba(244, 63, 94, 0.14), transparent 68%);
}

.admin-action-row button {
  min-width: 5.2rem;
}

.bnba-location-panel {
  min-width: 0;
  background: #ffffff !important;
  color: #0f172a;
  box-shadow: 0 16px 44px rgba(15, 23, 42, 0.08);
}

.bnba-location-panel .rounded-xl {
  background: #f8fafc !important;
  box-shadow: inset 0 0 0 1px rgba(148, 163, 184, 0.16);
}

.bnba-location-panel .text-slate-500,
.bnba-location-panel .text-slate-600 {
  color: #475569 !important;
}

.bnba-stat-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
}

.bnba-search-box {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.75rem;
  padding: 0 0.85rem;
  background: #fff;
  color: #475569;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.bnba-search-box input {
  width: 100%;
  min-width: 0;
  height: 2.75rem;
  border: 0;
  outline: 0;
  color: #0f172a;
  font-size: 0.88rem;
  font-weight: 800;
}

.bnba-search-box input::placeholder {
  color: #64748b;
}

.bnba-segments {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  padding: 0.25rem;
  background: #f8fafc;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

.bnba-segments button {
  min-width: 4.7rem;
  border: 0;
  border-radius: 999px;
  padding: 0.72rem 0.8rem;
  background: transparent;
  color: #334155;
  font-size: 0.75rem;
  font-weight: 950;
}

.bnba-segments button.is-active {
  background: #0f172a;
  color: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.18);
}

.bnba-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #ffffff;
}

.bnba-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  min-width: 9.5rem;
  padding: 0.7rem;
  background: #172033;
  color: #fff;
  border-right: 1px solid rgba(255, 255, 255, 0.1);
}

.bnba-table th input {
  width: 100%;
  min-width: 0;
  height: 2rem;
  margin-top: 0.5rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.55rem;
  padding: 0 0.55rem;
  background: #ffffff;
  color: #0f172a;
  outline: 0;
  font-size: 0.7rem;
  font-weight: 800;
}

.bnba-table th input::placeholder {
  color: #64748b;
}

.bnba-sort-button {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
}

.bnba-table td {
  max-width: 18rem;
  border-bottom: 1px solid #e2e8f0;
  border-right: 1px solid #eef2f7;
  padding: 0.72rem;
  background: #ffffff;
  color: #1e293b;
  font-size: 0.76rem;
  font-weight: 750;
  line-height: 1.45;
  overflow-wrap: anywhere;
  vertical-align: top;
}

.bnba-table tbody tr:nth-child(even) td {
  background: #f8fafc;
}

.bnba-table tbody tr:hover td {
  background: #eef6ff;
}

.bnba-table-shell {
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
  contain: layout paint;
  overscroll-behavior: contain;
}

.location-card {
  width: 100%;
  line-height: 1.5;
}

.location-field strong,
.stat-detail-row h3,
.stat-detail-chip {
  line-height: 1.35;
}

.stat-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  padding: clamp(1rem, 3vw, 2.25rem);
  place-items: center;
  overflow: auto;
  overscroll-behavior: contain;
  background: rgba(7, 19, 15, 0.42);
  backdrop-filter: blur(14px);
  animation: modal-backdrop-in 180ms var(--ease-standard) both;
}

.stat-modal {
  width: min(100%, 58rem);
  max-height: min(86vh, 760px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  touch-action: pan-y;
  border: 1px solid rgba(255, 255, 255, 0.86);
  border-radius: clamp(1.1rem, 2.4vw, 1.5rem);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(247, 250, 247, 0.96)),
    #fff;
  box-shadow: 0 30px 90px rgba(4, 12, 9, 0.32);
  transform-origin: center;
  animation: modal-panel-in 220ms var(--ease-emphasized) both;
}

.motion-modal-backdrop {
  animation: modal-backdrop-in 180ms var(--ease-standard) both;
}

.motion-modal {
  transform-origin: center;
  animation: modal-panel-in 220ms var(--ease-emphasized) both;
}

@keyframes modal-backdrop-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes modal-panel-in {
  from {
    opacity: 0;
    transform: translate3d(0, 10px, 0) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

.stat-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(1rem, 2.4vw, 1.35rem);
  border-bottom: 1px solid rgba(8, 27, 24, 0.1);
}

.stat-modal-title {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.stat-modal-icon,
.stat-modal-close {
  display: grid;
  width: 2.75rem;
  aspect-ratio: 1;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 1rem;
}

.stat-modal-icon {
  background: #eef6ff;
  color: #1d4ed8;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

.stat-modal-icon.tone-emerald {
  background: #e7f8f1;
  color: #047857;
}

.stat-modal-icon.tone-cyan {
  background: #e9fbff;
  color: #0e7490;
}

.stat-modal-icon.tone-violet,
.stat-modal-icon.tone-indigo {
  background: #f1ecff;
  color: #6d28d9;
}

.stat-modal-icon.tone-amber {
  background: #fff6dd;
  color: #b45309;
}

.stat-modal-close {
  border: 0;
  background: #f1f5f9;
  color: #475569;
}

.stat-modal-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: clamp(0.9rem, 2vw, 1.1rem) clamp(1rem, 2.4vw, 1.35rem) 0;
  border: 1px solid rgba(27, 110, 168, 0.14);
  border-radius: 1rem;
  padding: 0.85rem 1rem;
  background: linear-gradient(135deg, rgba(27, 110, 168, 0.08), rgba(231, 182, 87, 0.11));
}

.stat-modal-summary strong {
  color: var(--ink);
  font-size: clamp(1.5rem, 4vw, 2.3rem);
  line-height: 1;
}

.stat-modal-summary span {
  color: rgba(7, 19, 15, 0.58);
  font-size: 0.78rem;
  font-weight: 800;
  text-align: right;
}

.stat-modal-search {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0.9rem clamp(1rem, 2.4vw, 1.35rem);
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: 1rem;
  padding: 0 0.85rem;
  background: #fff;
  color: #64748b;
}

.stat-modal-search input {
  width: 100%;
  min-width: 0;
  height: 2.85rem;
  border: 0;
  outline: none;
  color: var(--ink);
  font-size: 0.9rem;
  font-weight: 750;
}

.stat-modal-body {
  overflow: visible;
  padding: 0 clamp(1rem, 2.4vw, 1.35rem) clamp(1rem, 2.4vw, 1.35rem);
}

.stat-detail-group {
  display: grid;
  gap: 0.65rem;
}

.stat-detail-group + .stat-detail-group {
  margin-top: 1rem;
}

.stat-detail-group-head {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  border-radius: 0.85rem;
  padding: 0.58rem 0.75rem;
  background: rgba(241, 245, 249, 0.96);
  color: #334155;
  font-size: 0.76rem;
  font-weight: 950;
  text-transform: uppercase;
}

.stat-detail-list {
  display: grid;
  gap: 0.58rem;
}

.stat-detail-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(8rem, auto);
  gap: 0.85rem;
  align-items: start;
  border: 1px solid rgba(8, 27, 24, 0.08);
  border-radius: 1rem;
  padding: 0.8rem;
  background: rgba(255, 255, 255, 0.88);
}

.stat-detail-row h3 {
  margin: 0;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 950;
  line-height: 1.3;
}

.stat-detail-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.38rem;
  margin-top: 0.55rem;
}

.stat-detail-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  border-radius: 999px;
  padding: 0.45rem 0.7rem;
  background: #f8fafc;
  color: #475569;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1.3;
}

.stat-detail-chip b {
  color: #0f766e;
  font-weight: 950;
}

.stat-detail-counts {
  display: grid;
  gap: 0.45rem;
  justify-items: end;
  color: #0f172a;
  font-size: 0.74rem;
  font-weight: 950;
  white-space: normal;
}

.stat-detail-counts span {
  display: inline-flex;
  align-items: center;
  gap: 0.32rem;
  border-radius: 999px;
  padding: 0.35rem 0.52rem;
  background: #eef6ff;
}

.stat-modal-empty {
  border: 1px dashed rgba(8, 27, 24, 0.14);
  border-radius: 1rem;
  padding: 2rem;
  color: #64748b;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 850;
}

.map-shell {
  position: relative;
  min-height: clamp(440px, 67vh, 760px);
  overflow: hidden;
  border: 1px solid rgba(8, 27, 24, 0.16) !important;
  border-radius: clamp(1.2rem, 2.4vw, 1.6rem) !important;
  background:
    linear-gradient(135deg, rgba(15, 63, 50, 0.12), rgba(27, 110, 168, 0.08)),
    rgba(255, 255, 255, 0.64);
  box-shadow: 0 34px 100px rgba(8, 27, 24, 0.18);
}

@media (max-width: 1100px) {
  .map-layout {
    grid-template-columns: 1fr;
  }

  .link-archive-hero {
    grid-template-columns: 1fr;
  }

  .about-hero-panel,
  .about-content-grid {
    grid-template-columns: 1fr;
  }

  .map-side-panel {
    max-width: 100%;
  }
}

@media (max-width: 859px) {
  .app-dock {
    position: fixed;
    right: auto;
    bottom: calc(0.65rem + env(safe-area-inset-bottom));
    left: 50%;
    z-index: 80;
    width: min(35rem, calc(100vw - 1.3rem - env(safe-area-inset-left) - env(safe-area-inset-right)));
    grid-template-columns: 1fr;
    margin-bottom: 0 !important;
    border-radius: 1.25rem;
    padding: 0.42rem;
    box-shadow: 0 22px 62px rgba(6, 22, 17, 0.22);
    transform: translateX(-50%);
  }

  .app-workbench {
    padding-bottom: calc(6.3rem + env(safe-area-inset-bottom)) !important;
  }

  .dock-brand {
    display: none;
  }

  .dock-menu {
    display: grid;
    width: 100%;
    max-width: 31rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-inline: auto;
    justify-self: stretch;
    gap: 0.24rem;
  }

  .dock-menu-separator {
    display: none;
  }

  .dock-nav {
    display: contents;
    width: 100%;
    flex-wrap: nowrap;
    border: 0;
    padding: 0;
    background: transparent;
  }

  .dock-tab {
    min-width: 0;
    min-height: 3.55rem;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 0.92rem;
    padding: 0.32rem 0.18rem 0.4rem;
    gap: 0.14rem;
    font-size: 0.62rem;
    text-align: center;
  }

  .dock-tab-icon {
    width: 1.78rem;
    border-radius: 0.68rem;
  }

  .dock-tab-label {
    white-space: nowrap;
    overflow: visible;
    line-height: 1.08;
  }

  .dock-tab::after {
    inset: auto 24% 0.24rem;
  }

  .stat-modal {
    max-height: 90vh;
  }

  .stat-modal-head,
  .stat-modal-title,
  .stat-modal-summary,
  .stat-detail-row {
    align-items: stretch;
  }

  .stat-modal-summary,
  .stat-detail-row {
    grid-template-columns: 1fr;
  }

  .stat-modal-summary,
  .stat-detail-row {
    display: grid;
  }

  .stat-modal-summary span {
    text-align: left;
  }

  .stat-detail-counts {
    justify-items: start;
  }

  .link-home-head,
  .link-archive-toolbar {
    grid-template-columns: 1fr;
  }

  .link-home-actions {
    justify-content: flex-start;
  }

  .link-submit-grid {
    grid-template-columns: 1fr;
  }

  .link-archive-quick-grid {
    grid-template-columns: 1fr;
  }

  .link-archive-toolbar button {
    width: 100%;
  }

  .map-drill-panel {
    top: 0.55rem;
    left: 0.55rem;
    width: calc(100% - 1.1rem);
    border-radius: 1rem;
  }

  .map-drill-head {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .map-layer-chip {
    grid-column: 2 / -1;
    justify-self: start;
  }

  .map-drill-options {
    max-height: 7rem;
  }
}

@media (max-width: 1023px) {
  body .site-canvas .dock-menu {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  body .site-canvas .dock-nav-primary {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 0.24rem !important;
  }

  body .site-canvas .dock-nav-admin,
  body .site-canvas .dock-mobile-nav,
  body .site-canvas .dock-menu-separator {
    display: none !important;
  }

  body .site-canvas .dock-tab {
    width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 640px) {
  .hero-content {
    width: calc(100% - 2.25rem);
    max-width: 1260px;
  }

  .hero-title {
    white-space: normal;
    line-height: 0.94;
  }

  .hero-copy {
    width: 100%;
    max-width: 20.5rem;
    font-size: 0.94rem;
    line-height: 1.7;
    overflow-wrap: anywhere;
  }

  .site-canvas:not(.site-canvas-home) .hero-pin {
    min-height: clamp(270px, 44svh, 340px);
  }

  .site-canvas:not(.site-canvas-home) .hero-content {
    padding-block: 2rem 3.7rem;
  }

  .site-canvas:not(.site-canvas-home) .hero-title {
    font-size: clamp(1.55rem, 8vw, 2.25rem);
    line-height: 1.05;
  }

  .site-canvas:not(.site-canvas-home) .hero-copy {
    max-width: 19.5rem;
    font-size: 0.88rem;
    line-height: 1.62;
  }

  .site-canvas:not(.site-canvas-home) .hero-cta {
    min-height: 2.65rem;
    padding-inline: 0.9rem;
    font-size: 0.82rem;
  }

  .stat-grid {
    display: grid !important;
    grid-template-columns: 1fr;
  }

  .link-card-head {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .link-card-open {
    grid-column: 1 / -1;
    width: 100%;
    height: 2.45rem;
  }

  .link-card-title {
    min-height: 2.65rem;
    white-space: normal;
  }
}

.pask-badge {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  padding: 0.25rem 0.5rem;
  background: #f8fafc;
  color: #475569;
  font-size: 0.64rem;
  font-weight: 950;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.pask-badge.is-pask-2026 {
  border-color: #86cda8;
  background: #f0fdf4;
  color: #166534;
}

.pask-badge.is-pask-before {
  border-color: #f2c46d;
  background: #fffbeb;
  color: #a16207;
}

.pask-badge.is-pask-unmarked {
  border-style: dashed;
  color: #64748b;
}

/* Map data visual key: document completeness is the primary accent;
   source remains a secondary edge/ring treatment. */
.map-canvas {
  position: relative;
}

.map-visual-legend {
  position: absolute;
  z-index: 650;
  top: 0.9rem;
  right: 0.9rem;
  display: grid;
  max-width: min(24rem, calc(100% - 1.8rem));
  gap: 0.35rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(148, 163, 184, 0.7);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.94);
  color: #334155;
  font-size: 0.66rem;
  font-weight: 800;
  line-height: 1.25;
  box-shadow: 0 5px 16px rgba(15, 23, 42, 0.12);
  pointer-events: none;
}

.map-visual-legend > strong {
  color: #0f172a;
  font-size: 0.68rem;
}

.map-legend-section {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.38rem 0.58rem;
}

.map-legend-label {
  color: #64748b;
  font-size: 0.6rem;
  font-weight: 950;
  text-transform: uppercase;
}

.map-legend-item {
  display: inline-flex;
  align-items: center;
  gap: 0.24rem;
  white-space: nowrap;
}

.map-legend-swatch,
.location-visual-badge-mark {
  display: inline-block;
  width: 0.62rem;
  height: 0.62rem;
  flex: 0 0 auto;
  border: 2px solid currentColor;
  border-radius: 50%;
}

.map-legend-swatch.is-document-empty,
.location-visual-badge.is-document-empty .location-visual-badge-mark {
  background: #94a3b8;
  color: #64748b;
}

.map-legend-swatch.is-document-partial,
.location-visual-badge.is-document-partial .location-visual-badge-mark {
  background: #fbbf24;
  color: #d97706;
}

.map-legend-swatch.is-document-complete,
.location-visual-badge.is-document-complete .location-visual-badge-mark {
  background: #4ade80;
  color: #16a34a;
}

.map-legend-swatch.is-source-distribution,
.location-visual-badge.is-source-distribution .location-visual-badge-mark {
  background: transparent;
  color: #0f766e;
  border-style: solid;
}

.map-legend-swatch.is-source-proposal,
.location-visual-badge.is-source-proposal .location-visual-badge-mark {
  background: transparent;
  color: #7c3aed;
  border-style: dashed;
}

.map-legend-swatch.is-source-unknown,
.location-visual-badge.is-source-unknown .location-visual-badge-mark {
  background: transparent;
  color: #64748b;
  border-style: dotted;
}

.location-card {
  border-inline-start: 4px solid #64748b !important;
}

.location-card.is-document-empty {
  border-inline-start-color: #64748b !important;
}

.location-card.is-document-partial {
  border-inline-start-color: #d97706 !important;
}

.location-card.is-document-complete {
  border-inline-start-color: #16a34a !important;
}

.location-card.is-source-distribution {
  border-inline-end: 3px solid #0f766e !important;
}

.location-card.is-source-proposal {
  border-inline-end: 3px dashed #7c3aed !important;
}

.location-card.is-source-unknown {
  border-inline-end: 3px dotted #64748b !important;
}

.location-visual-badge {
  display: inline-flex;
  min-height: 1.55rem;
  max-width: 100%;
  align-items: center;
  gap: 0.28rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  padding: 0.25rem 0.48rem;
  color: #475569;
  font-size: 0.64rem;
  font-weight: 950;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.location-visual-badge.is-document-empty {
  border-color: #cbd5e1;
  background: #f1f5f9;
  color: #475569;
}

.location-visual-badge.is-document-partial {
  border-color: #f2c46d;
  background: #fffbeb;
  color: #a16207;
}

.location-visual-badge.is-document-complete {
  border-color: #86cda8;
  background: #f0fdf4;
  color: #166534;
}

.location-visual-badge.is-source-distribution {
  border-color: #6bb7af;
  background: #f0fdfa;
  color: #115e59;
}

.location-visual-badge.is-source-proposal {
  border-style: dashed;
  border-color: #b99be8;
  background: #faf5ff;
  color: #6b21a8;
}

.location-visual-badge.is-source-unknown {
  border-style: dotted;
  background: #f8fafc;
  color: #475569;
}

.kat-location-tooltip {
  border: 1px solid rgba(15, 23, 42, 0.16) !important;
  border-radius: 0.45rem !important;
  background: #0f172a !important;
  color: #fff !important;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.35;
}

.kat-location-marker.is-source-proposal {
  stroke-dasharray: 5 3;
}

.kat-location-marker.is-source-unknown {
  stroke-dasharray: 2 3;
}

@media (max-width: 640px) {
  .map-visual-legend {
    top: auto;
    bottom: 2rem;
    right: 0.65rem;
    left: auto;
    width: min(220px, calc(100% - 1.3rem));
    max-width: 220px;
    padding: 0.48rem 0.55rem;
  }

  .map-visual-legend > strong,
  .map-legend-label {
    display: none;
  }

  .map-legend-section {
    gap: 0.32rem 0.48rem;
  }

  .location-visual-badge {
    font-size: 0.61rem;
  }
}

/* Responsive tweak: ensure map drill/legend wraps cleanly on smaller screens */
@media (max-width: 1023px) {
  .map-drill-head {
    grid-template-columns: auto 1fr auto;
    grid-template-rows: auto auto;
    gap: 0.45rem;
    align-items: center;
  }

  .map-drill-head .map-layer-chip,
  .map-drill-head .shrink-0 {
    /* place chip and data-badge on their own row so they don't overflow */
    grid-column: 1 / -1;
    justify-self: start;
    margin-top: 0.15rem;
  }

  .map-drill-actions {
    /* keep actions aligned to the right on the first row */
    grid-column: 3 / -1;
    justify-self: end;
  }
}

@media (max-width: 640px) {
  .map-drill-head {
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 0.4rem;
  }

  .map-drill-actions {
    grid-column: 2 / -1;
    justify-self: end;
  }

  .map-drill-head .map-layer-chip,
  .map-drill-head .shrink-0 {
    grid-column: 1 / -1;
  }
}

.map-shell::after {
  position: absolute;
  inset: 0;
  z-index: 450;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.14), transparent 30%),
    radial-gradient(circle at 20% 20%, rgba(231, 182, 87, 0.18), transparent 20rem);
  mix-blend-mode: soft-light;
}

.map-drill-panel {
  position: absolute;
  top: 0.85rem;
  left: 0.85rem;
  z-index: 520;
  display: grid;
  width: min(92%, 30rem);
  gap: 0.55rem;
  border: 1px solid rgba(8, 27, 24, 0.13);
  border-radius: 1.1rem;
  padding: 0.65rem;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 20px 58px rgba(7, 19, 15, 0.16);
  backdrop-filter: blur(18px);
}

.map-drill-panel.is-loading {
  box-shadow: 0 20px 58px rgba(7, 19, 15, 0.16), 0 0 0 3px rgba(47, 111, 79, 0.08);
}

.map-drill-panel.is-collapsed {
  width: min(92%, 22rem);
  gap: 0;
  padding: 0.5rem;
}

.map-drill-panel.is-collapsed .map-drill-copy small {
  display: none;
}

.map-drill-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 0.55rem;
}

.map-drill-icon,
.map-drill-actions button {
  display: grid;
  width: 2rem;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 0.72rem;
  background: linear-gradient(135deg, rgba(15, 63, 50, 0.95), rgba(27, 110, 168, 0.88));
  color: #fff;
}

.map-drill-copy strong,
.map-drill-copy small {
  display: block;
}

.map-drill-copy strong {
  color: var(--ink);
  font-size: 0.82rem;
  font-weight: 950;
}

.map-drill-copy small {
  margin-top: 0.12rem;
  color: rgba(7, 19, 15, 0.58);
  font-size: 0.72rem;
  font-weight: 760;
  line-height: 1.35;
}

.map-drill-actions {
  display: flex;
  gap: 0.3rem;
}

.map-layer-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  min-height: 2rem;
  border-radius: 999px;
  padding: 0.28rem 0.5rem;
  background: rgba(255, 255, 255, 0.86);
  color: rgba(7, 19, 15, 0.58);
  font-size: 0.66rem;
  font-weight: 950;
  line-height: 1.1;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(8, 27, 24, 0.08);
}

.map-layer-chip.is-ready {
  background: rgba(232, 246, 241, 0.96);
  color: var(--forest);
}

.map-layer-chip.is-empty {
  background: rgba(255, 247, 237, 0.94);
  color: #9a5a00;
}

.map-layer-chip.is-loading svg {
  animation: map-chip-spin 0.88s linear infinite;
}

@keyframes map-chip-spin {
  to {
    transform: rotate(360deg);
  }
}

.map-drill-actions button {
  border: 0;
  background: rgba(255, 255, 255, 0.9);
  color: var(--forest);
  box-shadow: inset 0 0 0 1px rgba(8, 27, 24, 0.1);
}

.map-drill-options {
  display: flex;
  max-height: 8.6rem;
  flex-wrap: wrap;
  gap: 0.38rem;
  overflow: auto;
  padding-right: 0.15rem;
}

.map-drill-options button,
.map-drill-loading,
.map-drill-empty {
  display: inline-flex;
  max-width: 100%;
  align-items: center;
  gap: 0.32rem;
  border: 1px solid rgba(27, 110, 168, 0.16);
  border-radius: 999px;
  padding: 0.42rem 0.58rem;
  background: rgba(248, 250, 252, 0.92);
  color: #16577e;
  font-size: 0.7rem;
  font-weight: 950;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.map-drill-empty {
  width: 100%;
  border-style: dashed;
  color: rgba(7, 19, 15, 0.56);
}

.map-drill-options button:hover {
  border-color: rgba(15, 63, 50, 0.34);
  background: linear-gradient(135deg, var(--forest), var(--river));
  color: #fff;
}

.map-drill-options small {
  border-radius: 999px;
  padding: 0.14rem 0.32rem;
  background: rgba(255, 255, 255, 0.62);
  font-size: 0.62rem;
}

.map-shell .leaflet-container {
  min-height: clamp(440px, 67vh, 760px);
  height: 100%;
  width: 100%;
  background: #d9e8e5;
  font: inherit;
}

.leaflet-tile-pane {
  filter: saturate(0.72) contrast(1.02) brightness(1.02);
}

.leaflet-overlay-pane path,
.province-shape {
  cursor: pointer;
  mix-blend-mode: multiply;
  outline: none;
  transition:
    fill var(--duration-fast) var(--ease-standard),
    fill-opacity var(--duration-fast) var(--ease-standard),
    stroke var(--duration-fast) var(--ease-standard),
    stroke-width var(--duration-fast) var(--ease-standard);
}

.map-region-shape {
  filter: drop-shadow(0 0 0 rgba(231, 182, 87, 0));
}

.leaflet-overlay-pane path:hover,
.province-shape:hover {
  stroke: rgba(15, 63, 50, 0.82);
  stroke-width: 1.8;
  fill-opacity: 0.78;
}

.map-region-active {
  filter: drop-shadow(0 0 12px rgba(231, 182, 87, 0.82)) drop-shadow(0 0 3px rgba(8, 27, 24, 0.42));
  animation: map-active-pulse 1.8s var(--ease-standard) infinite alternate;
}

.map-region-scoped {
  filter: drop-shadow(0 0 6px rgba(15, 63, 50, 0.22));
}

@keyframes map-active-pulse {
  from {
    filter: drop-shadow(0 0 6px rgba(231, 182, 87, 0.48));
  }

  to {
    filter: drop-shadow(0 0 15px rgba(231, 182, 87, 0.84));
  }
}

.location-card.is-map-linked {
  border-color: rgba(27, 110, 168, 0.34) !important;
  background:
    linear-gradient(135deg, rgba(232, 246, 241, 0.92), rgba(239, 246, 255, 0.86)) !important;
  box-shadow: inset 0 0 0 1px rgba(27, 110, 168, 0.12), 0 12px 28px rgba(15, 63, 50, 0.08);
}

.location-card.is-map-linked .location-card-main::before {
  opacity: 0.9;
}

.kat-map-tooltip {
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(7, 19, 15, 0.82) !important;
  color: #fff !important;
  font-size: 0.72rem;
  font-weight: 900;
  box-shadow: 0 12px 34px rgba(7, 19, 15, 0.2);
}

.leaflet-control-zoom a {
  border: 0 !important;
  background: rgba(255, 255, 255, 0.84) !important;
  color: var(--ink) !important;
  backdrop-filter: blur(14px);
}

.leaflet-control-attribution {
  display: none !important;
}

.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 20px 60px rgba(7, 19, 15, 0.22);
  backdrop-filter: blur(18px);
}

.leaflet-popup-content {
  color: var(--ink);
  font-size: clamp(0.72rem, 1.3vw, 0.82rem);
  font-weight: 800;
  line-height: 1.7;
}

.kat-map-popup .leaflet-popup-content-wrapper,
.kat-map-popup .leaflet-popup-tip {
  border: 1px solid rgba(8, 27, 24, 0.12);
  border-radius: 1.05rem;
  background: rgba(255, 255, 255, 0.94);
}

.kat-map-popup .leaflet-popup-content {
  width: min(18.5rem, 72vw) !important;
  margin: 0;
}

.kat-popup-card {
  display: grid;
  gap: 0.58rem;
  max-height: min(68vh, 30rem);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.82rem;
  scrollbar-gutter: stable;
  touch-action: pan-y;
}

.kat-popup-kicker {
  color: rgba(15, 63, 50, 0.64);
  font-size: 0.68rem;
  font-weight: 950;
  text-transform: uppercase;
}

.kat-popup-title {
  display: block;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 950;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.kat-popup-path {
  color: rgba(7, 19, 15, 0.58);
  font-size: 0.72rem;
  font-weight: 760;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.kat-popup-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem;
}

.kat-popup-metrics span {
  border-radius: 0.85rem;
  padding: 0.52rem;
  background: rgba(232, 246, 241, 0.82);
}

.kat-popup-metrics b,
.kat-popup-metrics small {
  display: block;
}

.kat-popup-metrics b {
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 950;
}

.kat-popup-metrics small {
  color: rgba(7, 19, 15, 0.54);
  font-size: 0.68rem;
  font-weight: 820;
}

.kat-popup-actions {
  display: grid;
  gap: 0.42rem;
}

.kat-popup-actions button {
  min-height: 2.25rem;
  border: 0;
  border-radius: 0.78rem;
  padding: 0.42rem 0.6rem;
  font-size: 0.75rem;
  font-weight: 950;
}

.kat-popup-primary {
  background: linear-gradient(135deg, var(--forest), var(--river));
  color: #fff;
}

.kat-popup-secondary {
  background: rgba(232, 246, 241, 0.92);
  color: var(--forest);
}

.content-stack input,
.content-stack textarea {
  border-color: rgba(8, 27, 24, 0.14) !important;
  background: rgba(255, 255, 255, 0.82) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
  transition:
    border-color var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard),
    transform var(--duration-fast) var(--ease-standard);
}

.content-stack input:focus,
.content-stack textarea:focus {
  border-color: rgba(27, 110, 168, 0.7) !important;
  box-shadow: 0 0 0 4px rgba(27, 110, 168, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.8) !important;
  transform: translateY(var(--lift-y));
}

.content-stack input:disabled,
.content-stack textarea:disabled {
  color: rgba(7, 19, 15, 0.38) !important;
  background: rgba(240, 244, 241, 0.8) !important;
}

.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card) {
  position: relative;
  min-height: 2.5rem;
  overflow: hidden;
  letter-spacing: 0 !important;
  transition:
    transform var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard),
    background-color var(--duration-base) var(--ease-standard),
    color var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    filter var(--duration-base) var(--ease-standard);
}

.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card)::before {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: var(--shine-soft);
  opacity: 0.14;
  transform: translateX(-46%);
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform 700ms var(--ease-emphasized);
}

.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card)::after {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(255, 255, 255, 0.46), transparent 32%),
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(var(--triad-secondary-rgb), 0.12), transparent 48%),
    linear-gradient(135deg, var(--triad-primary-soft), var(--triad-tertiary-soft));
  opacity: 0.07;
  transition: opacity var(--duration-base) var(--ease-standard);
}

.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):not(:disabled):hover::before {
  opacity: 0.86;
  transform: translateX(112%);
}

.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):not(:disabled):hover::after {
  opacity: 0.92;
}

.content-stack :where(button, a, .source-pill-button, .result-download-link) {
  touch-action: manipulation;
}

.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):not(:disabled):hover {
  transform: perspective(800px) translate3d(var(--magnet-x), var(--magnet-y), 0) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift-y));
  box-shadow: 0 10px 24px rgba(7, 19, 15, 0.1);
  filter: saturate(1.04);
}

.content-stack .rte-tool {
  min-height: initial;
}

.content-stack .rte-tool::before {
  display: none !important;
}

.content-stack .rte-tool:hover {
  box-shadow: none;
}

.site-canvas-admin .content-stack > main > section:first-child {
  position: relative;
  overflow: hidden;
  border-color: rgba(8, 27, 24, 0.1) !important;
  background:
    radial-gradient(circle at 88% 10%, rgba(27, 110, 168, 0.13), transparent 18rem),
    radial-gradient(circle at 12% 18%, rgba(231, 182, 87, 0.14), transparent 16rem),
    rgba(255, 255, 255, 0.94) !important;
  box-shadow: 0 24px 70px rgba(8, 27, 24, 0.12) !important;
}

.site-canvas-admin .content-stack > main > section:first-child::before {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: linear-gradient(110deg, transparent 0 32%, rgba(255, 255, 255, 0.5) 48%, transparent 66% 100%);
  opacity: 0.72;
  transform: translateX(-118%);
  animation: button-light-pass 7.2s var(--ease-emphasized) infinite;
}

.admin-tabs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0.48rem !important;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid rgba(8, 27, 24, 0.08);
  border-radius: 1.15rem;
  padding: 0.42rem;
  background:
    linear-gradient(135deg, rgba(232, 246, 241, 0.8), rgba(238, 244, 255, 0.72)),
    rgba(248, 250, 252, 0.82);
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.admin-tabs button {
  flex: 1 0 max-content;
  justify-content: center;
  min-width: 6.65rem;
  min-height: 2.65rem;
  border-radius: 0.86rem !important;
  scroll-snap-align: start;
  white-space: nowrap;
}

.site-canvas-admin .panel,
.site-canvas-admin .panel-solid,
.site-canvas-admin .admin-table-scroll,
.site-canvas-admin .content-admin {
  box-shadow: 0 20px 56px rgba(8, 27, 24, 0.09);
}

.admin-table-scroll {
  position: relative;
  overscroll-behavior-x: contain;
  scrollbar-gutter: stable;
}

.admin-table-scroll::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 2.8rem;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.9));
}

.admin-table-scroll:has(td[colspan]) {
  overflow: visible;
}

.admin-table-scroll:has(td[colspan])::after {
  display: none;
}

.admin-table-scroll:has(td[colspan]) .admin-job-table {
  min-width: 100% !important;
}

.admin-table-scroll:has(td[colspan]) thead {
  display: none;
}

.content-stack table {
  border-radius: clamp(0.9rem, 2vw, 1.15rem);
  overflow: hidden;
}

.content-stack th,
.content-stack td {
  max-width: min(32rem, 58vw);
  white-space: normal !important;
  overflow-wrap: anywhere;
  vertical-align: top;
}

.content-stack thead {
  background: linear-gradient(135deg, #07130f, #0f3f32 58%, #1b6ea8) !important;
}

.content-stack tbody tr {
  transition: background-color var(--duration-fast) var(--ease-standard);
}

.content-stack tbody tr:hover {
  background: rgba(231, 182, 87, 0.12) !important;
}

.line-clamp-2 {
  display: block;
  overflow: visible;
  -webkit-box-orient: initial;
  -webkit-line-clamp: initial;
}

/* Design polish: denser desktop workbench, clearer motion language, and stronger active states. */
.app-dock,
.link-home-panel,
.link-archive-hero,
.link-archive-toolbar,
.link-submit-panel,
.map-side-panel,
.location-detail-panel,
.surface-card,
.panel,
.admin-mini-card,
.link-card {
  position: relative;
  isolation: isolate;
}

.app-dock,
.link-archive-hero,
.link-archive-toolbar,
.map-side-panel,
.panel,
.surface-card {
  background:
    radial-gradient(circle at 12% 0%, rgba(231, 182, 87, 0.1), transparent 17rem),
    radial-gradient(circle at 100% 18%, rgba(27, 110, 168, 0.09), transparent 19rem),
    var(--surface-gradient) !important;
  border-color: var(--surface-border) !important;
}

.app-dock::before {
  position: absolute;
  inset: 0.34rem;
  border: 1px solid rgba(255, 255, 255, 0.72);
  border-radius: inherit;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.66), transparent 58%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.16), transparent);
  opacity: 0.72;
}

.app-dock .dock-menu::before {
  position: absolute;
  inset: -0.45rem -0.18rem;
  z-index: -1;
  border-radius: 1rem;
  content: "";
  background:
    linear-gradient(180deg, rgba(15, 63, 50, 0.08), transparent 40%, rgba(27, 110, 168, 0.07)),
    radial-gradient(circle at 50% 0%, rgba(231, 182, 87, 0.14), transparent 56%);
  opacity: 0.8;
}

.dock-brand,
.dock-menu {
  position: relative;
  z-index: 1;
}

.link-card::before,
.link-submit-panel::before,
.surface-card::after,
.panel::before,
.admin-mini-card::before,
.map-side-panel::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  content: "";
  pointer-events: none;
  background:
    var(--shine-soft),
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(255, 255, 255, 0.34), transparent 34%);
  opacity: 0;
  transform: translate3d(-22%, 0, 0);
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform 620ms var(--ease-emphasized);
}

.link-card:hover::before,
.link-submit-panel:hover::before,
.surface-card:hover::after,
.panel:hover::before,
.admin-mini-card:hover::before,
.map-side-panel:hover::before {
  opacity: 0.76;
  transform: translate3d(22%, 0, 0);
}

.link-card > *,
.link-submit-panel > *,
.surface-card > *,
.panel > *,
.admin-mini-card > *,
.map-side-panel > * {
  position: relative;
  z-index: 1;
}

.hero-pin::after {
  position: absolute;
  inset: auto 0 0;
  z-index: 2;
  height: clamp(4rem, 12vw, 9rem);
  content: "";
  pointer-events: none;
  background:
    linear-gradient(100deg, transparent 14%, rgba(255, 255, 255, 0) 33%, rgba(255, 255, 255, 0.28) 46%, rgba(231, 182, 87, 0.18) 52%, transparent 68%),
    linear-gradient(180deg, transparent, rgba(4, 14, 11, 0.7));
  opacity: 0.86;
  transform: translate3d(-100%, 0, 0) skewX(-10deg);
  animation: hero-bottom-light-sweep 6.2s var(--ease-emphasized) infinite;
}

.app-workbench::after {
  position: absolute;
  inset: -0.8rem -3vw auto;
  z-index: -1;
  height: clamp(3.6rem, 8vw, 7rem);
  content: "";
  pointer-events: none;
  background:
    radial-gradient(ellipse at 22% 50%, rgba(231, 182, 87, 0.22), transparent 34%),
    radial-gradient(ellipse at 78% 34%, rgba(27, 110, 168, 0.18), transparent 38%),
    linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.48), transparent);
  filter: blur(10px);
  opacity: 0.82;
}

.content-stack::before {
  position: absolute;
  inset: -0.4rem -0.6rem auto;
  z-index: -1;
  height: 4.25rem;
  content: "";
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.56), transparent);
  filter: blur(16px);
  opacity: 0.72;
}

@keyframes hero-bottom-light-sweep {
  0%,
  14%,
  70% {
    transform: translate3d(-110%, 0, 0) skewX(-10deg);
  }

  88%,
  100% {
    transform: translate3d(110%, 0, 0) skewX(-10deg);
  }
}

.hero-cta,
.dock-tab,
.link-card-open,
.location-card-padan,
.kat-popup-actions button,
.result-download-link,
.source-pill-button {
  will-change: transform;
}

.link-card-open,
.result-download-link {
  position: relative;
  overflow: hidden;
}

.link-card-open::before,
.result-download-link::before {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background: var(--shine-soft);
  opacity: 0.14;
  transform: translateX(-48%);
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform 700ms var(--ease-emphasized);
}

.link-card-open > *,
.result-download-link > * {
  position: relative;
  z-index: 1;
}

.link-card-open:hover::before,
.result-download-link:hover::before {
  opacity: 0.76;
  transform: translateX(112%);
}

.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card) > *,
.kat-popup-actions button > *,
.location-card-padan > * {
  position: relative;
  z-index: 1;
}

.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):active,
.hero-cta:active,
.dock-tab:active,
.location-card-padan:active,
.link-card-open:active {
  transform: translateY(0) scale(0.985);
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card)::before,
  .hero-cta::before,
  .dock-tab::before,
  .location-card-padan::before,
  .link-card-open::before,
  .result-download-link::before {
    animation: button-light-pass 8.4s var(--ease-emphasized) infinite;
  }

  .hero-smoke {
    animation: hero-smoke-flow 9s ease-in-out infinite alternate;
  }

  .dock-tab,
  .location-card-padan,
  .link-card-open,
  .result-download-link,
  .content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card) {
    animation: interactive-idle-presence 5.6s ease-in-out infinite alternate;
  }
}

@keyframes interactive-idle-presence {
  from {
    filter: saturate(1);
  }

  to {
    filter: saturate(1.035);
  }
}

@keyframes hero-smoke-flow {
  from {
    filter: blur(14px) saturate(1.24);
  }

  to {
    filter: blur(22px) saturate(1.42);
  }
}

.dock-mark-stack {
  overflow: visible;
  border-radius: 1.02rem;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(232, 246, 241, 0.8)),
    radial-gradient(circle at 55% -10%, rgba(231, 182, 87, 0.38), transparent 70%);
}

.dock-mark-stack::after {
  position: absolute;
  inset: -0.32rem;
  z-index: -1;
  border-radius: 1.28rem;
  content: "";
  background: conic-gradient(from 170deg, rgba(47, 111, 79, 0.2), rgba(27, 110, 168, 0.22), rgba(231, 182, 87, 0.22), rgba(47, 111, 79, 0.2));
  filter: blur(12px);
  opacity: 0.42;
  transform: translateZ(0);
  transition: opacity var(--duration-base) var(--ease-standard);
}

.dock-mark-stack:hover::after {
  opacity: 0.75;
}

.dock-mark-stack:hover {
  transform: translateY(-1px);
}

.dock-mark-stack span:nth-child(1) {
  background:
    radial-gradient(circle at 70% 18%, rgba(231, 182, 87, 0.92), transparent 34%),
    linear-gradient(145deg, #082b25, #0d5963 62%, #1b6ea8);
}

.dock-mark-stack span:nth-child(2) {
  background:
    radial-gradient(circle at 25% 15%, rgba(255, 255, 255, 0.36), transparent 30%),
    linear-gradient(145deg, #113d2d, #2f6f4f 54%, #1b6ea8);
}

.dock-mark-stack span:nth-child(3) {
  background:
    radial-gradient(circle at 72% 20%, rgba(231, 182, 87, 0.9), transparent 35%),
    linear-gradient(145deg, #0f3f32, #0d5a75 58%, #173a73);
}

.dock-nav-primary,
.dock-nav-admin {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

.dock-nav-admin {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.56), rgba(255, 251, 235, 0.38)),
    rgba(255, 255, 255, 0.24);
}

@media (min-width: 1024px) {
  .app-workbench {
    grid-template-columns: 6.35rem minmax(0, 1fr);
    gap: clamp(0.75rem, 1.35vw, 1rem);
  }

  .app-dock {
    padding: 0.56rem 0.48rem;
    border-radius: 1.3rem;
  }

  .dock-mark-stack {
    width: 2.78rem;
    min-height: 5.05rem;
    gap: 0.24rem;
    padding: 0.26rem;
  }

  .dock-mark-stack span {
    min-height: 1.34rem;
    border-radius: 0.7rem;
    font-size: 0.78rem;
  }

  .dock-menu {
    gap: 0.38rem;
  }

  .dock-nav {
    gap: 0.38rem;
  }

  .dock-tab,
  .dock-tab:nth-child(2) {
    min-height: 3.25rem;
    gap: 0.16rem;
    padding: 0.36rem 0.24rem;
    border-radius: 0.88rem;
  }

  .dock-tab-icon {
    width: 1.82rem;
    border-radius: 0.68rem;
  }

  .dock-tab-label {
    font-size: 0.62rem;
    line-height: 1.05;
  }
}

@media (min-width: 1180px) {
  .site-canvas:not(.site-canvas-home) .app-workbench {
    margin-top: clamp(-2.8rem, -3.8vw, -1.45rem);
  }

  .site-canvas:not(.site-canvas-home) .content-stack {
    gap: 0.95rem;
  }

  .content-stack {
    gap: 1.05rem;
  }

  .link-archive-page {
    gap: 0.85rem !important;
  }

  .link-archive-hero {
    grid-template-columns: minmax(0, 1fr) minmax(24rem, 27rem);
    gap: 0.85rem;
    padding: 0.82rem;
  }

  .link-archive-copy {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.62rem;
  }

  .link-archive-copy > .section-kicker,
  .link-archive-copy > .section-title,
  .link-archive-copy > .link-archive-lead,
  .link-archive-stats {
    grid-column: 1 / -1;
  }

  .link-archive-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 0.1rem;
  }

  .link-process-overview,
  .link-archive-quick {
    margin-top: 0;
  }

  .link-submit-panel {
    padding: 0.72rem;
  }

  .link-submit-stack,
  .link-submit-grid {
    gap: 0.5rem;
  }

  .link-submit-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .link-submit-stack > :nth-child(3),
  .link-submit-stack > :nth-child(4),
  .link-submit-stack > :nth-child(5),
  .link-submit-stack > :nth-child(6) {
    grid-column: 1 / -1;
  }

  .link-submit-panel textarea {
    min-height: 4.2rem;
  }

  .link-submit-panel textarea,
  .link-submit-panel input,
  .link-submit-panel select {
    font-size: 0.78rem !important;
  }

  .link-submit-panel label,
  .link-submit-panel .field-label {
    font-size: 0.72rem !important;
  }

  .link-submit-panel input,
  .link-submit-panel select {
    height: 2.35rem;
  }

  .link-archive-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 18.5rem), 1fr));
    gap: 0.72rem;
  }

  .map-layout {
    grid-template-columns: minmax(0, 1fr) minmax(300px, 356px);
    gap: 0.9rem;
  }

  .stat-grid .stat-card {
    flex-basis: calc(25% - 0.6rem);
    min-width: min(100%, 196px);
  }
}

.link-archive-toolbar {
  align-items: center;
}

.link-archive-page .section-title {
  max-width: 52rem;
  font-size: clamp(1.18rem, 2vw, 1.72rem);
  line-height: 1.12;
  text-wrap: balance;
}

.link-archive-page .section-kicker {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: 0.4rem;
  border-radius: 999px;
  padding: 0.28rem 0.56rem;
  background: rgba(232, 246, 241, 0.78);
  color: var(--forest);
  box-shadow: inset 0 0 0 1px rgba(15, 63, 50, 0.1);
}

.link-archive-hero {
  overflow: hidden;
}

.link-archive-hero::before {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.2), transparent 28%),
    repeating-linear-gradient(90deg, rgba(15, 63, 50, 0.035) 0 1px, transparent 1px 5.5rem);
  opacity: 0.62;
}

.link-archive-stats .mini-metric,
.link-archive-stats > * {
  min-height: 3.55rem;
}

.link-process-overview,
.link-archive-quick,
.link-submit-panel {
  backdrop-filter: blur(12px);
}

.link-process-row,
.link-quick-card {
  min-height: 2.42rem;
}

.link-submit-panel {
  position: sticky;
  top: 1rem;
}

.link-submit-panel h3 {
  letter-spacing: 0;
  font-size: 0.95rem;
}

.link-submit-panel :where(input, select, textarea) {
  border-radius: 0.86rem !important;
}

.link-archive-toolbar {
  position: sticky;
  top: 0.75rem;
  z-index: 5;
  backdrop-filter: blur(16px);
}

.link-archive-grid .link-card {
  min-height: 10.5rem;
}

.link-card {
  background:
    radial-gradient(circle at 100% 0%, rgba(27, 110, 168, 0.06), transparent 9rem),
    rgba(255, 255, 255, 0.92);
}

.link-card.is-pinned {
  background:
    radial-gradient(circle at 100% 0%, rgba(231, 182, 87, 0.18), transparent 9rem),
    linear-gradient(180deg, rgba(255, 250, 236, 0.98), rgba(255, 255, 255, 0.95));
}

.link-card,
.link-quick-card,
.link-process-row,
.stat-card,
.admin-mini-card,
.location-card {
  transition:
    transform var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    background-color var(--duration-base) var(--ease-standard),
    filter var(--duration-base) var(--ease-standard);
}

.link-card:hover,
.link-quick-card:hover,
.admin-mini-card:hover,
.location-card:hover {
  filter: saturate(1.04);
}

.location-card {
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(248, 250, 252, 0.82)) !important;
}

.location-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  content: "";
  background: linear-gradient(180deg, var(--forest), var(--river), var(--sun));
  opacity: 0;
  transform: scaleY(0.3);
  transform-origin: center;
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform var(--duration-base) var(--ease-standard);
}

.location-card:hover::before,
.location-card.is-map-linked::before {
  opacity: 0.9;
  transform: scaleY(1);
}

.location-card.is-map-linked {
  border-color: rgba(27, 110, 168, 0.42) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(231, 182, 87, 0.18), transparent 9rem),
    linear-gradient(135deg, rgba(232, 246, 241, 0.96), rgba(239, 246, 255, 0.9)) !important;
  box-shadow: 0 18px 42px rgba(15, 63, 50, 0.12) !important;
}

.map-side-panel {
  background:
    radial-gradient(circle at 100% 0%, rgba(27, 110, 168, 0.1), transparent 14rem),
    rgba(255, 255, 255, 0.92) !important;
  box-shadow: 0 24px 70px rgba(8, 27, 24, 0.11) !important;
}

.map-drill-panel {
  border-color: rgba(255, 255, 255, 0.7);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(232, 246, 241, 0.82)),
    rgba(255, 255, 255, 0.82);
  box-shadow: 0 22px 62px rgba(7, 19, 15, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.map-drill-options button {
  position: relative;
  overflow: hidden;
  transition:
    transform var(--duration-fast) var(--ease-standard),
    border-color var(--duration-fast) var(--ease-standard),
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

.map-drill-options button::before {
  position: absolute;
  inset: 0;
  content: "";
  background: var(--shine-soft);
  opacity: 0;
  transform: translateX(-112%);
  transition:
    opacity var(--duration-fast) var(--ease-standard),
    transform 520ms var(--ease-emphasized);
}

.map-drill-options button:hover {
  transform: translateY(-1px);
}

.map-drill-options button:hover::before {
  opacity: 0.72;
  transform: translateX(112%);
}

.map-region-active {
  stroke: #f1b84b !important;
  stroke-width: 2.2 !important;
}

.admin-tabs {
  position: relative;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 14px 36px rgba(8, 27, 24, 0.06);
}

.admin-tabs button {
  isolation: isolate;
  transition:
    transform var(--duration-fast) var(--ease-standard),
    box-shadow var(--duration-fast) var(--ease-standard),
    background-color var(--duration-fast) var(--ease-standard),
    color var(--duration-fast) var(--ease-standard);
}

.admin-tabs button:hover {
  transform: translateY(-1px);
}

.admin-tabs button.bg-slate-950 {
  background: linear-gradient(135deg, var(--forest), var(--river)) !important;
  box-shadow: 0 12px 28px rgba(27, 110, 168, 0.18);
}

.admin-job-summary {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
}

.admin-mini-card {
  min-height: 6rem;
}

.distribution-admin-grid {
  align-items: start;
}

.distribution-admin-switcher,
.distribution-admin-proposals {
  grid-column: 1 / -1;
  min-width: 0;
}

.distribution-admin-switcher {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-bottom: 1px solid rgb(226 232 240);
  padding-bottom: 0.75rem;
}

.distribution-admin-switcher-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  min-width: 0;
}

.distribution-admin-switcher-actions > button {
  min-height: 2.5rem;
  justify-content: center;
  line-height: 1.25;
}

.distribution-admin-form,
.distribution-admin-list {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  border-color: rgba(8, 27, 24, 0.1) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(27, 110, 168, 0.1), transparent 16rem),
    radial-gradient(circle at 0% 100%, rgba(231, 182, 87, 0.12), transparent 15rem),
    rgba(255, 255, 255, 0.94) !important;
  box-shadow: 0 24px 70px rgba(8, 27, 24, 0.1) !important;
}

.distribution-admin-form::before,
.distribution-admin-list::before {
  position: absolute;
  inset: 0;
  z-index: 0;
  content: "";
  pointer-events: none;
  background:
    linear-gradient(110deg, transparent 0 34%, rgba(255, 255, 255, 0.52) 48%, rgba(231, 182, 87, 0.2) 54%, transparent 68% 100%),
    repeating-linear-gradient(90deg, rgba(15, 63, 50, 0.03) 0 1px, transparent 1px 4.5rem);
  opacity: 0.58;
  transform: translateX(-118%) skewX(-9deg);
  animation: distribution-panel-sweep 7.6s var(--ease-emphasized) infinite;
}

.distribution-admin-form > *,
.distribution-admin-list > * {
  position: relative;
  z-index: 1;
}

.distribution-admin-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.distribution-admin-copy {
  max-width: 42rem;
  margin: 0.35rem 0 0;
  color: rgba(15, 23, 42, 0.62);
  font-size: 0.82rem;
  font-weight: 750;
  line-height: 1.55;
}

.distribution-admin-badge {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.42rem;
  border: 1px solid rgba(47, 111, 79, 0.14);
  border-radius: 999px;
  padding: 0.48rem 0.68rem;
  background:
    radial-gradient(circle at 15% 0%, rgba(231, 182, 87, 0.2), transparent 4rem),
    rgba(232, 246, 241, 0.86);
  color: var(--forest);
  font-size: 0.72rem;
  font-weight: 950;
  white-space: normal;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.distribution-quality-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.distribution-quality-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(8, 27, 24, 0.1);
  border-radius: 1rem;
  padding: 0.78rem;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(248, 250, 252, 0.84)),
    rgba(255, 255, 255, 0.9);
  box-shadow: 0 14px 34px rgba(8, 27, 24, 0.06);
  transition:
    transform var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard);
}

.distribution-quality-card::before {
  position: absolute;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(circle at var(--spot-x) var(--spot-y), rgba(255, 255, 255, 0.48), transparent 34%),
    var(--shine-soft);
  opacity: 0;
  transform: translateX(-112%);
  transition:
    opacity var(--duration-fast) var(--ease-standard),
    transform 560ms var(--ease-emphasized);
}

.distribution-quality-card:hover {
  transform: translateY(-2px);
  border-color: rgba(27, 110, 168, 0.22);
  box-shadow: 0 18px 42px rgba(8, 27, 24, 0.1);
}

.distribution-quality-card:hover::before {
  opacity: 0.74;
  transform: translateX(112%);
}

.distribution-quality-icon {
  display: grid;
  width: 2rem;
  height: 2rem;
  place-items: center;
  border-radius: 0.78rem;
  color: #fff;
  background: linear-gradient(135deg, var(--forest), var(--river));
  box-shadow: 0 10px 24px rgba(27, 110, 168, 0.16);
}

.distribution-quality-card small,
.distribution-quality-card strong {
  position: relative;
  display: block;
  overflow-wrap: anywhere;
}

.distribution-quality-card small {
  margin-top: 0.65rem;
  color: rgba(15, 23, 42, 0.56);
  font-size: 0.68rem;
  font-weight: 950;
  text-transform: uppercase;
}

.distribution-quality-card strong {
  margin-top: 0.1rem;
  color: var(--ink);
  font-size: clamp(1.2rem, 2vw, 1.72rem);
  font-weight: 950;
  letter-spacing: 0;
  line-height: 1;
}

.distribution-quality-card.tone-emerald .distribution-quality-icon {
  background: linear-gradient(135deg, #0f766e, #2f6f4f);
}

.distribution-quality-card.tone-amber .distribution-quality-icon {
  background: linear-gradient(135deg, #b7791f, #e7b657);
}

.distribution-quality-card.tone-blue .distribution-quality-icon {
  background: linear-gradient(135deg, #1b6ea8, #173a73);
}

.distribution-record-list {
  display: grid;
  gap: 0.72rem;
  max-height: min(68vh, 46rem);
  overflow: auto;
  padding-right: 0.16rem;
  overscroll-behavior: contain;
}

.distribution-record-card {
  position: relative;
  display: grid;
  gap: 0.72rem;
  overflow: hidden;
  border: 1px solid rgba(8, 27, 24, 0.09);
  border-radius: 1.08rem;
  padding: 0.86rem;
  background:
    radial-gradient(circle at 100% 0%, rgba(27, 110, 168, 0.08), transparent 10rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(248, 250, 252, 0.82));
  box-shadow: 0 12px 30px rgba(8, 27, 24, 0.06);
  transition:
    transform var(--duration-base) var(--ease-standard),
    box-shadow var(--duration-base) var(--ease-standard),
    border-color var(--duration-base) var(--ease-standard),
    filter var(--duration-base) var(--ease-standard);
}

.distribution-record-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  content: "";
  background: linear-gradient(180deg, var(--forest), var(--river), var(--sun));
  opacity: 0.42;
  transform: scaleY(0.45);
  transform-origin: center;
  transition:
    opacity var(--duration-base) var(--ease-standard),
    transform var(--duration-base) var(--ease-standard);
}

.distribution-record-card:hover {
  transform: translateY(-2px);
  border-color: rgba(27, 110, 168, 0.18);
  filter: saturate(1.04);
  box-shadow: 0 18px 42px rgba(8, 27, 24, 0.1);
}

.distribution-record-card:hover::before {
  opacity: 0.9;
  transform: scaleY(1);
}

.distribution-record-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.72rem;
  align-items: start;
}

.distribution-record-icon {
  display: grid;
  width: 2.25rem;
  height: 2.25rem;
  place-items: center;
  border-radius: 0.82rem;
  color: #fff;
  background:
    radial-gradient(circle at 78% 16%, rgba(231, 182, 87, 0.8), transparent 38%),
    linear-gradient(135deg, var(--forest), var(--river));
  box-shadow: 0 12px 24px rgba(27, 110, 168, 0.16);
}

.distribution-record-title {
  margin: 0;
  color: var(--ink);
  font-size: 0.92rem;
  font-weight: 950;
  line-height: 1.24;
  overflow-wrap: anywhere;
}

.distribution-record-route {
  margin: 0.22rem 0 0;
  color: rgba(15, 23, 42, 0.58);
  font-size: 0.76rem;
  font-weight: 780;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.distribution-meta-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
}

.distribution-meta-chip {
  display: grid;
  min-width: 0;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.08rem 0.38rem;
  align-items: center;
  border: 1px solid rgba(15, 63, 50, 0.08);
  border-radius: 0.86rem;
  padding: 0.48rem 0.54rem;
  background: rgba(255, 255, 255, 0.62);
  color: rgba(15, 63, 50, 0.74);
}

.distribution-meta-chip svg {
  grid-row: span 2;
}

.distribution-meta-chip b,
.distribution-meta-chip em {
  min-width: 0;
  overflow-wrap: anywhere;
  font-style: normal;
}

.distribution-meta-chip b {
  color: rgba(15, 23, 42, 0.52);
  font-size: 0.62rem;
  font-weight: 950;
  text-transform: uppercase;
}

.distribution-meta-chip em {
  color: rgba(15, 23, 42, 0.82);
  font-size: 0.74rem;
  font-weight: 850;
  line-height: 1.24;
}

.distribution-record-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.48rem;
}

.distribution-year-pill {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  border: 1px solid rgba(27, 110, 168, 0.12);
  border-radius: 999px;
  padding: 0 0.68rem;
  background: rgba(239, 246, 255, 0.8);
  color: #1e3a5f;
  font-size: 0.72rem;
  font-weight: 950;
}

.distribution-year-pill.is-complete {
  border-color: rgba(5, 150, 105, 0.24);
  background: rgba(236, 253, 245, 0.92);
  color: #047857;
}

.distribution-document-checklist {
  display: grid;
  gap: 0.75rem;
  min-width: 0;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 0.75rem;
  padding: 0.9rem;
  background: rgba(248, 250, 252, 0.88);
}

.distribution-document-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.distribution-document-head strong,
.distribution-document-head small {
  display: block;
}

.distribution-document-head strong {
  color: #0f172a;
  font-size: 0.86rem;
  line-height: 1.35;
}

.distribution-document-head small {
  margin-top: 0.15rem;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 750;
}

.distribution-document-kicker {
  display: flex;
  align-items: center;
  gap: 0.38rem;
  margin: 0 0 0.28rem;
  color: #475569;
  font-size: 0.66rem;
  font-weight: 950;
  text-transform: uppercase;
}

.distribution-document-score {
  display: inline-grid;
  min-width: 3.2rem;
  min-height: 2rem;
  place-items: center;
  border: 1px solid rgba(217, 119, 6, 0.25);
  border-radius: 999px;
  background: #fffbeb;
  color: #a16207;
  font-size: 0.75rem;
  font-weight: 950;
}

.distribution-document-score.is-complete {
  border-color: rgba(5, 150, 105, 0.24);
  background: #ecfdf5;
  color: #047857;
}

.distribution-document-folder,
.distribution-document-open {
  display: inline-flex;
  align-items: center;
  gap: 0.38rem;
  width: fit-content;
  color: #075985;
  font-size: 0.72rem;
  font-weight: 900;
  text-decoration: none;
}

.distribution-document-folder:hover,
.distribution-document-open:hover {
  text-decoration: underline;
}

.distribution-document-items {
  display: grid;
  gap: 0.45rem;
}

.distribution-document-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  border: 1px solid rgba(203, 213, 225, 0.65);
  border-radius: 0.55rem;
  padding: 0.55rem 0.65rem;
  background: #fff;
}

.distribution-document-checklist.is-editable .distribution-document-item {
  grid-template-columns: minmax(150px, 0.85fr) minmax(0, 1.15fr);
}

.distribution-document-item.is-checked {
  border-color: rgba(5, 150, 105, 0.22);
  background: rgba(236, 253, 245, 0.7);
}

.distribution-document-toggle {
  display: flex;
  align-items: center;
  gap: 0.48rem;
  min-width: 0;
  color: #334155;
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1.35;
}

.distribution-document-toggle input {
  width: 1rem;
  height: 1rem;
  flex: 0 0 auto;
  accent-color: #059669;
}

.distribution-document-icon {
  display: grid;
  width: 1.65rem;
  height: 1.65rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 0.45rem;
  background: #e2e8f0;
  color: #475569;
}

.distribution-document-item.is-checked .distribution-document-icon {
  background: #d1fae5;
  color: #047857;
}

.distribution-document-url {
  width: 100%;
  min-width: 0;
  height: 2.15rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.5rem;
  padding: 0 0.65rem;
  background: #fff;
  color: #0f172a;
  font-size: 0.72rem;
  font-weight: 700;
}

.distribution-document-url:focus {
  border-color: #0284c7;
  outline: 2px solid rgba(14, 165, 233, 0.16);
  outline-offset: 1px;
}

.distribution-document-no-link,
.distribution-document-updated {
  color: #94a3b8;
  font-size: 0.68rem;
  font-weight: 750;
}

.distribution-document-updated {
  margin: 0;
}

@keyframes distribution-panel-sweep {
  0%,
  14%,
  70% {
    transform: translateX(-118%) skewX(-9deg);
  }

  88%,
  100% {
    transform: translateX(118%) skewX(-9deg);
  }
}

@media (max-width: 1180px) {
  .distribution-quality-grid,
  .distribution-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 859px) {
  .distribution-admin-switcher-actions {
    display: grid;
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .distribution-admin-switcher-actions > button {
    width: 100%;
  }

  .distribution-document-checklist.is-editable .distribution-document-item {
    grid-template-columns: 1fr;
  }

  .distribution-document-url {
    height: 2.4rem;
  }

  .distribution-admin-head,
  .distribution-record-main {
    grid-template-columns: 1fr;
  }

  .distribution-admin-head {
    display: grid;
  }

  .distribution-admin-badge {
    width: fit-content;
  }

  .distribution-quality-grid,
  .distribution-meta-grid {
    grid-template-columns: 1fr;
  }

  .distribution-record-list {
    max-height: none;
  }

  .distribution-record-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 420px) {
  .distribution-admin-switcher-actions {
    grid-template-columns: 1fr;
  }
}

#ambient-canvas,
.motion-surface,
.soft-card,
.dropzone-glow,
.admin-dashboard,
.admin-filter-panel,
.admin-panel,
.admin-table-head {
  letter-spacing: 0;
}

html.is-low-power .hero-shader-canvas,
html.is-touch .hero-shader-canvas,
html.is-reduced-motion .hero-shader-canvas {
  display: none;
}

html.is-low-power .hero-smoke,
html.is-reduced-motion .hero-smoke {
  opacity: 0.62;
  filter: blur(20px) saturate(1.14);
}

html.is-low-power .hero-pointer-glow,
html.is-reduced-motion .hero-pointer-glow {
  opacity: 0.46;
  filter: blur(22px) saturate(1.08);
}

html.is-low-power .hero-smoke::before,
html.is-low-power .hero-smoke::after,
html.is-reduced-motion .hero-smoke::before,
html.is-reduced-motion .hero-smoke::after {
  animation: none;
}

html.is-touch .hero-photo,
html.is-reduced-motion .hero-photo {
  transform: scale(1.04);
}

@media (hover: none), (pointer: coarse) {
  .hero-cta:hover,
  .dock-tab:hover,
  .surface-card:hover,
  .upload-zone:not(.is-disabled):hover,
  .mode-option:hover,
  .link-card:hover,
  .content-stack input:focus,
  .content-stack textarea:focus,
  .content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):not(:disabled):hover {
    transform: none;
  }

  .content-stack a:not(.link-card-title):not(.link-card-open):hover,
  .link-card-open:hover {
    transform: none;
  }

  .hero-cta::after {
    opacity: 0.12;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-delay: 0ms !important;
    transition-duration: 0.001ms !important;
    animation-delay: 0ms !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
  }

  .hero-shader-canvas,
  .hero-cta::before,
  .hero-cta::after,
  .app-workbench::before {
    display: none !important;
  }

  .hero-photo,
  .motion-page,
  .stat-modal,
  .motion-modal {
    transform: none !important;
  }

  .motion-page {
    view-transition-name: none;
  }
}

/* No-gradient pass: triadic colors stay solid, not blended. */
:root {
  --shine-soft: none;
  --surface-gradient: #ffffff;
  --surface-border: rgba(8, 27, 24, 0.12);
}

body {
  background: #f1f4ef !important;
}

body::before,
.site-canvas,
.site-canvas *,
.site-canvas *::before,
.site-canvas *::after {
  background-image: none !important;
}

body::before {
  opacity: 0 !important;
  mask-image: none !important;
}

::-webkit-scrollbar-thumb {
  background: var(--forest) !important;
}

.hero-photo {
  background-image: url("./forest-hero.jpg") !important;
}

.hero-shader-canvas,
.hero-noise,
.hero-smoke,
.hero-pointer-glow,
.hero-pin::before,
.hero-pin::after,
.app-workbench::before,
.app-workbench::after,
.content-stack::before,
.link-archive-hero::before,
.site-canvas-admin .content-stack > main > section:first-child::before,
.distribution-admin-form::before,
.distribution-admin-list::before,
.link-card::before,
.link-submit-panel::before,
.surface-card::after,
.panel::before,
.admin-mini-card::before,
.map-side-panel::before {
  display: none !important;
}

.hero-photo::after,
.hero-vignette {
  background: rgba(5, 18, 15, 0.66) !important;
  mix-blend-mode: normal !important;
}

.hero-pin,
.site-canvas:not(.site-canvas-home) .hero-pin {
  background: #07130f !important;
}

.app-dock,
.dock-nav,
.dock-nav-admin,
.site-canvas-admin .content-stack > main > section:first-child,
.link-home-panel,
.link-archive-hero,
.link-archive-toolbar,
.link-submit-panel,
.map-side-panel,
.location-detail-panel,
.surface-card,
.panel,
.admin-mini-card,
.link-card,
.distribution-admin-form,
.distribution-admin-list,
.map-drill-panel,
.stat-card,
.modal-panel,
.bnba-table-shell,
.admin-table-scroll {
  background: #ffffff !important;
  border-color: rgba(8, 27, 24, 0.12) !important;
}

.panel-soft,
.surface-soft,
.link-card.is-pinned,
.location-card,
.location-card.is-map-linked,
.distribution-quality-card,
.distribution-record-card,
.distribution-meta-chip,
.map-drill-options button,
.link-process-row,
.link-quick-card,
.link-archive-quick,
.link-process-overview {
  background: #f8faf7 !important;
}

.dock-mark-stack,
.dock-mark-stack span,
.dock-mark-stack span:nth-child(1),
.dock-mark-stack span:nth-child(2),
.dock-mark-stack span:nth-child(3),
.dock-signature-mark {
  background: var(--forest) !important;
}

.dock-mark-stack {
  background: #e9f2ee !important;
}

.dock-mark-stack::after,
.dock-mark-stack span::before {
  display: none !important;
}

.hero-cta-primary,
.dock-tab.is-active .dock-tab-icon,
.dock-tab:hover .dock-tab-icon,
.admin-tabs button.bg-slate-950,
.content-stack button.bg-slate-950,
.content-stack .bg-blue-600,
.content-stack .bg-emerald-600,
.location-card-padan:hover,
.source-pill-button.is-active,
.kat-popup-actions button:first-child,
.result-download-link:hover {
  background: var(--forest) !important;
  color: #ffffff !important;
}

.hero-cta-ghost,
.dock-tab,
.dock-tab-icon,
.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):not(.btn-open-draft-action):not(.btn-delete-draft-action):not(.btn-gemini-extract-action),
.location-card-padan,
.link-card-open,
.result-download-link,
.source-pill-button,
.kat-popup-actions button {
  background: #ffffff !important;
  border-color: rgba(8, 27, 24, 0.14) !important;
  box-shadow: 0 10px 24px rgba(7, 19, 15, 0.06);
}

.hero-cta-ghost {
  color: var(--ink) !important;
}

.content-stack button:disabled,
.content-stack button[disabled] {
  background: #edf4f1 !important;
  color: rgba(7, 19, 15, 0.46) !important;
  box-shadow: none !important;
}

.content-stack button.bg-blue-600,
.content-stack button.bg-slate-950,
.content-stack button.bg-emerald-600,
.content-stack button.hover\:bg-blue-700,
.content-stack button.hover\:bg-slate-800,
.admin-tabs button.bg-slate-950 {
  background: var(--forest) !important;
  color: #ffffff !important;
  border-color: var(--forest) !important;
}

.content-stack button.bg-red-600,
.content-stack button.bg-rose-600,
.content-stack button.bg-red-50 {
  background: #fff3f4 !important;
  color: var(--danger) !important;
  border-color: rgba(176, 45, 72, 0.18) !important;
}

body .site-canvas .content-stack button.bg-blue-600:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card),
body .site-canvas .content-stack button.bg-slate-950:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card),
body .site-canvas .content-stack button.bg-emerald-600:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card) {
  background: var(--forest) !important;
  color: #ffffff !important;
  border-color: var(--forest) !important;
}

body .site-canvas .content-stack button.bg-red-600:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card),
body .site-canvas .content-stack button.bg-rose-600:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card) {
  background: #fff3f4 !important;
  color: var(--danger) !important;
  border-color: rgba(176, 45, 72, 0.18) !important;
}

.hero-cta-primary::before,
.hero-cta-primary::after,
.hero-cta-ghost::before,
.hero-cta-ghost::after,
.dock-tab::before,
.dock-tab::after,
.location-card-padan::before,
.link-card-open::before,
.result-download-link::before,
.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card)::before,
.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card)::after,
.map-drill-options button::before {
  background: currentColor !important;
  opacity: 0 !important;
  animation: none !important;
  transform: none !important;
}

.hero-cta:hover::after,
.dock-tab:hover::before,
.dock-tab.is-active::before,
.location-card-padan:hover::before,
.link-card-open:hover::before,
.result-download-link:hover::before,
.content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):not(:disabled):hover::after {
  opacity: 0.08 !important;
}

.dock-tab::after,
.dock-tab:hover::after,
.dock-tab.is-active::after {
  display: block !important;
  background: var(--sun) !important;
  opacity: 1 !important;
}

.content-stack table,
.preview-table,
.bnba-table,
.admin-job-table {
  border-collapse: separate;
  background: #ffffff !important;
  color: var(--ink) !important;
}

.content-stack thead,
.content-stack thead.bg-slate-950,
.preview-table thead,
.admin-job-table thead,
.bnba-table thead {
  background: #edf4f1 !important;
  color: var(--ink) !important;
}

.content-stack th,
.preview-table th,
.admin-job-table th,
.bnba-table th,
.bnba-table th.align-top {
  border-bottom: 1px solid rgba(8, 27, 24, 0.12) !important;
  background: #edf4f1 !important;
  color: var(--forest) !important;
  text-shadow: none !important;
}

.preview-table .preview-heading,
.content-stack th.preview-heading {
  color: var(--forest) !important;
}

.content-stack td,
.preview-table td,
.admin-job-table td,
.bnba-table td {
  border-bottom: 1px solid rgba(8, 27, 24, 0.08) !important;
  background: #ffffff !important;
  color: #26342f !important;
}

.content-stack tbody tr:nth-child(even) td,
.preview-table tbody tr:nth-child(even) td,
.admin-job-table tbody tr:nth-child(even) td,
.bnba-table tbody tr:nth-child(even) td {
  background: #f8faf7 !important;
}

.content-stack tbody tr:hover td,
.preview-table tbody tr:hover td,
.admin-job-table tbody tr:hover td,
.bnba-table tbody tr:hover td {
  background: #edf4f1 !important;
}

.admin-table-scroll::after {
  display: none !important;
}

.distribution-quality-icon,
.distribution-record-icon,
.source-icon,
.upload-zone-icon,
.stat-card-icon,
.link-card-icon,
.mini-metric-icon {
  background: var(--forest) !important;
  color: #ffffff !important;
}

.distribution-quality-card.tone-blue .distribution-quality-icon,
.distribution-quality-card.tone-slate .distribution-quality-icon,
.stat-card.tone-blue .stat-card-icon,
.stat-card.tone-indigo .stat-card-icon,
.stat-card.tone-violet .stat-card-icon {
  background: var(--river) !important;
}

.distribution-quality-card.tone-amber .distribution-quality-icon,
.stat-card.tone-amber .stat-card-icon,
.stat-card.tone-orange .stat-card-icon {
  background: var(--sun) !important;
  color: #1d1305 !important;
}

.location-card::before,
.distribution-record-card::before {
  background: var(--forest) !important;
}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .dock-tab,
  .location-card-padan,
  .link-card-open,
  .result-download-link,
  .content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card) {
    animation: none !important;
  }
}

/* Button contrast pass: keep solid triadic colors while making map/upload actions unmistakable. */
body .site-canvas .location-card-padan,
body .site-canvas .kat-popup-actions button:first-child,
body .site-canvas .kat-popup-primary {
  background: var(--forest) !important;
  border-color: var(--forest) !important;
  color: #ffffff !important;
  box-shadow: 0 14px 30px rgba(var(--triad-primary-rgb), 0.18) !important;
}

body .site-canvas .location-card-padan:hover,
body .site-canvas .kat-popup-actions button:first-child:hover,
body .site-canvas .kat-popup-primary:hover {
  background: #0d5f4f !important;
  border-color: #0d5f4f !important;
  color: #ffffff !important;
  transform: translateY(var(--lift-y));
}

body .site-canvas .kat-popup-actions button:not(:first-child),
body .site-canvas .kat-popup-secondary,
body .site-canvas .map-drill-options button,
body .site-canvas .leaflet-control-zoom a {
  background: #ffffff !important;
  border-color: rgba(8, 27, 24, 0.18) !important;
  color: var(--ink) !important;
}

body .site-canvas .kat-popup-actions button:not(:first-child):hover,
body .site-canvas .kat-popup-secondary:hover,
body .site-canvas .map-drill-options button:hover,
body .site-canvas .leaflet-control-zoom a:hover {
  background: #edf4f1 !important;
  border-color: rgba(var(--triad-primary-rgb), 0.28) !important;
  color: var(--forest) !important;
}

body .site-canvas .map-drill-options button.is-active,
body .site-canvas .map-drill-options button[aria-pressed="true"] {
  background: var(--forest) !important;
  border-color: var(--forest) !important;
  color: #ffffff !important;
}

body .site-canvas .upload-zone,
body .site-canvas .upload-zone-button {
  background: #ffffff !important;
  border-color: rgba(var(--triad-primary-rgb), 0.22) !important;
  color: var(--ink) !important;
}

body .site-canvas .upload-zone-button {
  box-shadow: inset 0 0 0 1px rgba(var(--triad-primary-rgb), 0.08), 0 12px 28px rgba(7, 19, 15, 0.06) !important;
}

body .site-canvas .upload-zone:not(.is-disabled):hover .upload-zone-button,
body .site-canvas .upload-zone.is-dragging .upload-zone-button {
  border-color: var(--forest) !important;
  box-shadow: inset 0 0 0 1px rgba(var(--triad-primary-rgb), 0.2), 0 16px 34px rgba(var(--triad-primary-rgb), 0.14) !important;
}

body .site-canvas .upload-zone-icon {
  background: var(--forest) !important;
  color: #ffffff !important;
}

body .site-canvas .content-stack button.location-card-padan:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card),
body .site-canvas .content-stack .kat-popup-actions button:first-child:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card),
body .site-canvas .content-stack button.kat-popup-primary:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card) {
  background: #0f6f5a !important;
  background-color: #0f6f5a !important;
  background-image: none !important;
  border-color: #0f6f5a !important;
  color: #ffffff !important;
}

body .site-canvas .content-stack button.location-card-padan:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):hover,
body .site-canvas .content-stack .kat-popup-actions button:first-child:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):hover,
body .site-canvas .content-stack button.kat-popup-primary:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):hover {
  background: #0d5f4f !important;
  background-color: #0d5f4f !important;
  background-image: none !important;
  border-color: #0d5f4f !important;
  color: #ffffff !important;
}

@media (max-width: 859px) {
  body .site-canvas .app-dock {
    position: fixed !important;
    right: auto !important;
    bottom: calc(0.65rem + env(safe-area-inset-bottom, 0px)) !important;
    left: 50% !important;
    width: min(35rem, calc(100vw - 1.3rem)) !important;
    width: min(35rem, calc(100vw - 1.3rem - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px))) !important;
    width: calc(100vw - 1.3rem) !important;
    max-width: 35rem !important;
    min-width: 0 !important;
    transform: translateX(-50%) !important;
  }

  body .site-canvas .dock-menu {
    display: grid !important;
    width: 100% !important;
    max-width: 31rem !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    grid-template-columns: repeat(5, minmax(0, calc((100vw - 2.7rem) / 5))) !important;
    justify-content: center !important;
    margin-inline: auto !important;
    gap: 0.24rem !important;
  }

  body .site-canvas .dock-nav {
    display: contents !important;
  }

  body .site-canvas .dock-tab {
    width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.14rem !important;
    padding: 0.32rem 0.12rem 0.4rem !important;
    text-align: center !important;
  }

  body .site-canvas .dock-tab-icon {
    width: 1.78rem !important;
  }

  body .site-canvas .dock-tab-label {
    max-width: 100% !important;
    font-size: 0.6rem !important;
    line-height: 1.08 !important;
    white-space: nowrap !important;
  }

  body .site-canvas .dock-menu {
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
  }

  body .site-canvas .dock-nav {
    display: grid !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    gap: 0.24rem !important;
  }

  body .site-canvas .dock-nav-primary {
    flex: 4 1 0 !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  body .site-canvas .dock-nav-admin {
    flex: 1 1 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body .site-canvas .dock-nav-primary,
  body .site-canvas .dock-nav-admin,
  body .site-canvas .dock-menu-separator {
    display: none !important;
  }

  body .site-canvas .dock-menu {
    display: block !important;
  }

  body .site-canvas .dock-nav-primary {
    display: grid !important;
    width: calc(100vw - 2.1rem) !important;
    max-width: 31rem !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    margin-inline: auto !important;
    gap: 0.24rem !important;
  }

  body .site-canvas .dock-nav-admin,
  body .site-canvas .dock-mobile-nav {
    display: none !important;
  }

  body .site-canvas .dock-mobile-nav {
    display: grid !important;
    position: relative !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 1 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    margin-inline: auto !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }
}

/* ==========================================================================
   PDF IMPORT & DRAFT ULTIMATE STYLES (EXPLICIT HIGH-CONTRAST VISIBILITY)
   ========================================================================== */
.pdf-import-container {
  margin-top: 1.5rem !important;
  padding: 1.5rem !important;
  border-radius: 1.5rem !important;
  border: 1.5px solid #c7d2fe !important;
  background: #f5f3ff !important;
  background: linear-gradient(180deg, #ede9fe 0%, #f5f3ff 45%, #ffffff 100%) !important;
  box-shadow: 0 10px 30px -5px rgba(99, 102, 241, 0.12) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
}

.pdf-import-header-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
}

.pdf-import-badge-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 2.75rem !important;
  height: 2.75rem !important;
  border-radius: 0.9rem !important;
  background: #6d28d9 !important;
  background: linear-gradient(135deg, #7c3aed 0%, #4f46e5 100%) !important;
  color: #ffffff !important;
  flex-shrink: 0 !important;
  box-shadow: 0 4px 14px rgba(109, 40, 217, 0.4) !important;
}

.pdf-import-badge-icon svg {
  width: 1.25rem !important;
  height: 1.25rem !important;
  stroke: #ffffff !important;
  color: #ffffff !important;
}

.pdf-import-header-texts {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.15rem !important;
}

.pdf-import-main-title {
  font-size: 1.05rem !important;
  font-weight: 900 !important;
  color: #0f172a !important;
  margin: 0 !important;
  line-height: 1.2 !important;
}

.pdf-import-sub-badge {
  font-size: 0.68rem !important;
  font-weight: 900 !important;
  color: #6d28d9 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

.pdf-import-description {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  color: #334155 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
}

/* LOCAL DRAFT CARD */
.pdf-local-draft-card {
  padding: 1.15rem !important;
  border-radius: 1.15rem !important;
  border: 2px solid #f59e0b !important;
  background: #fffbeb !important;
  background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
  box-shadow: 0 6px 16px rgba(217, 119, 6, 0.15) !important;
}

.pdf-draft-header {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}

.pdf-draft-icon-box {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 2.25rem !important;
  height: 2.25rem !important;
  border-radius: 0.75rem !important;
  background-color: #fef3c7 !important;
  border: 1px solid #fcd34d !important;
  color: #92400e !important;
  flex-shrink: 0 !important;
}

.pdf-draft-icon-box svg {
  stroke: #92400e !important;
  color: #92400e !important;
}

.pdf-draft-text-group {
  min-width: 0 !important;
  flex: 1 1 0 !important;
}

.pdf-draft-title-line {
  display: block !important;
  font-size: 0.85rem !important;
  font-weight: 900 !important;
  color: #78350f !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.pdf-draft-meta-line {
  display: block !important;
  font-size: 0.73rem !important;
  font-weight: 700 !important;
  color: #b45309 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.pdf-draft-action-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}

/* HIGH SPECIFICITY OVERRIDES FOR DRAFT & GEMINI BUTTONS */
body .site-canvas .content-stack button.btn-gemini-extract-action::before,
body .site-canvas .content-stack button.btn-gemini-extract-action::after,
body .site-canvas .content-stack button.btn-open-draft-action::before,
body .site-canvas .content-stack button.btn-open-draft-action::after,
body .site-canvas .content-stack button.btn-delete-draft-action::before,
body .site-canvas .content-stack button.btn-delete-draft-action::after {
  display: none !important;
  content: none !important;
}

body .site-canvas .content-stack button.btn-open-draft-action,
body .site-canvas button.btn-open-draft-action,
button.btn-open-draft-action,
.btn-open-draft-action {
  flex: 1 1 0 !important;
  height: 2.75rem !important;
  border-radius: 0.85rem !important;
  background: #d97706 !important;
  background-color: #d97706 !important;
  background-image: none !important;
  color: #ffffff !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  border: 1.5px solid #b45309 !important;
  box-shadow: 0 4px 12px rgba(217, 119, 6, 0.4) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  cursor: pointer !important;
}

body .site-canvas .content-stack button.btn-open-draft-action *,
body .site-canvas button.btn-open-draft-action *,
button.btn-open-draft-action * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
}

body .site-canvas .content-stack button.btn-open-draft-action:hover,
body .site-canvas button.btn-open-draft-action:hover,
button.btn-open-draft-action:hover {
  background: #b45309 !important;
  background-color: #b45309 !important;
  color: #ffffff !important;
}

body .site-canvas .content-stack button.btn-delete-draft-action,
body .site-canvas button.btn-delete-draft-action,
button.btn-delete-draft-action,
.btn-delete-draft-action {
  height: 2.75rem !important;
  padding: 0 1.15rem !important;
  border-radius: 0.85rem !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #78350f !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  border: 1.5px solid #fcd34d !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
}

body .site-canvas .content-stack button.btn-delete-draft-action *,
body .site-canvas button.btn-delete-draft-action *,
button.btn-delete-draft-action * {
  color: #78350f !important;
}

body .site-canvas .content-stack button.btn-delete-draft-action:hover,
body .site-canvas button.btn-delete-draft-action:hover,
button.btn-delete-draft-action:hover {
  background: #fef3c7 !important;
  background-color: #fef3c7 !important;
}

body .site-canvas .content-stack button.btn-gemini-extract-action,
body .site-canvas button.btn-gemini-extract-action,
button.btn-gemini-extract-action,
.btn-gemini-extract-action {
  width: 100% !important;
  height: 3rem !important;
  padding: 0 1.25rem !important;
  border-radius: 0.9rem !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  transition: all 0.15s ease !important;
}

body .site-canvas .content-stack button.btn-gemini-extract-action:not(:disabled),
body .site-canvas button.btn-gemini-extract-action:not(:disabled),
button.btn-gemini-extract-action:not(:disabled),
.btn-gemini-extract-action:not(:disabled) {
  background: #6d28d9 !important;
  background: linear-gradient(135deg, #6d28d9 0%, #4f46e5 100%) !important;
  background-color: #6d28d9 !important;
  color: #ffffff !important;
  border: 1.5px solid #5b21b6 !important;
  box-shadow: 0 6px 20px rgba(109, 40, 217, 0.45) !important;
  cursor: pointer !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body .site-canvas .content-stack button.btn-gemini-extract-action:not(:disabled) *,
body .site-canvas button.btn-gemini-extract-action:not(:disabled) *,
button.btn-gemini-extract-action:not(:disabled) *,
.btn-gemini-extract-action:not(:disabled) * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body .site-canvas .content-stack button.btn-gemini-extract-action:not(:disabled):hover,
body .site-canvas button.btn-gemini-extract-action:not(:disabled):hover,
button.btn-gemini-extract-action:not(:disabled):hover {
  background: linear-gradient(135deg, #5b21b6 0%, #4338ca 100%) !important;
  color: #ffffff !important;
}

body .site-canvas .content-stack button.btn-gemini-extract-action:disabled,
body .site-canvas button.btn-gemini-extract-action:disabled,
button.btn-gemini-extract-action:disabled,
.btn-gemini-extract-action:disabled {
  background: #f1f5f9 !important;
  background-color: #f1f5f9 !important;
  background-image: none !important;
  color: #0f172a !important;
  border: 2px solid #94a3b8 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body .site-canvas .content-stack button.btn-gemini-extract-action:disabled *,
body .site-canvas button.btn-gemini-extract-action:disabled *,
button.btn-gemini-extract-action:disabled *,
.btn-gemini-extract-action:disabled * {
  color: #0f172a !important;
  stroke: #0f172a !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* PDF Confirmation Modal Footer & Control Buttons (Ultimate Specificity Overrides) */
html body .site-canvas button.pdf-btn-save-draft,
html body div button.pdf-btn-save-draft,
body .site-canvas button.pdf-btn-save-draft,
button.pdf-btn-save-draft,
.pdf-btn-save-draft {
  height: 2.85rem !important;
  padding: 0 1.5rem !important;
  border-radius: 0.85rem !important;
  background: #d97706 !important;
  background-color: #d97706 !important;
  background-image: none !important;
  color: #ffffff !important;
  font-size: 0.85rem !important;
  font-weight: 900 !important;
  border: 1.5px solid #b45309 !important;
  box-shadow: 0 4px 14px rgba(217, 119, 6, 0.4) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  cursor: pointer !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html body .site-canvas button.pdf-btn-save-draft *,
html body div button.pdf-btn-save-draft *,
body .site-canvas button.pdf-btn-save-draft *,
button.pdf-btn-save-draft *,
.pdf-btn-save-draft * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-weight: 900 !important;
}

html body .site-canvas button.pdf-btn-submit-data,
html body div button.pdf-btn-submit-data,
body .site-canvas button.pdf-btn-submit-data,
button.pdf-btn-submit-data,
.pdf-btn-submit-data {
  height: 2.85rem !important;
  padding: 0 1.75rem !important;
  border-radius: 0.85rem !important;
  background: #6d28d9 !important;
  background: linear-gradient(135deg, #6d28d9 0%, #4f46e5 100%) !important;
  background-color: #6d28d9 !important;
  color: #ffffff !important;
  font-size: 0.85rem !important;
  font-weight: 900 !important;
  border: 1.5px solid #5b21b6 !important;
  box-shadow: 0 6px 20px rgba(109, 40, 217, 0.45) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  cursor: pointer !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html body .site-canvas button.pdf-btn-submit-data *,
html body div button.pdf-btn-submit-data *,
body .site-canvas button.pdf-btn-submit-data *,
button.pdf-btn-submit-data *,
.pdf-btn-submit-data * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-weight: 900 !important;
}

html body .site-canvas button.pdf-btn-apply-batch,
html body div button.pdf-btn-apply-batch,
body .site-canvas button.pdf-btn-apply-batch,
button.pdf-btn-apply-batch,
.pdf-btn-apply-batch {
  height: 2.75rem !important;
  padding: 0 1.35rem !important;
  border-radius: 0.75rem !important;
  background: #6d28d9 !important;
  background-color: #6d28d9 !important;
  background-image: linear-gradient(135deg, #6d28d9 0%, #4f46e5 100%) !important;
  color: #ffffff !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  border: 1.5px solid #5b21b6 !important;
  box-shadow: 0 4px 14px rgba(109, 40, 217, 0.4) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  cursor: pointer !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html body .site-canvas button.pdf-btn-apply-batch *,
html body div button.pdf-btn-apply-batch *,
body .site-canvas button.pdf-btn-apply-batch *,
button.pdf-btn-apply-batch *,
.pdf-btn-apply-batch * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-weight: 900 !important;
}

/* ==========================================================================
   PERMANENT HIGH-SPECIFICITY FIX FOR ADMIN TABS, BUTTONS & SELECTINPUT
   ========================================================================== */

/* 1. Admin Selected Tab & Primary Slate Button (bg-slate-950) */
html body .site-canvas button.bg-slate-950,
html body div button.bg-slate-950,
body .site-canvas button.bg-slate-950,
button.bg-slate-950,
.bg-slate-950 {
  background-color: #0f172a !important;
  background: #0f172a !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1px solid #1e293b !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.25) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html body .site-canvas button.bg-slate-950 *,
html body div button.bg-slate-950 *,
body .site-canvas button.bg-slate-950 *,
button.bg-slate-950 *,
.bg-slate-950 * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
}

/* 2. Blue Action Button (bg-blue-600) */
html body .site-canvas button.bg-blue-600,
html body div button.bg-blue-600,
body .site-canvas button.bg-blue-600,
button.bg-blue-600,
.bg-blue-600 {
  background-color: #2563eb !important;
  background: #2563eb !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1px solid #1d4ed8 !important;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.3) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html body .site-canvas button.bg-blue-600 *,
html body div button.bg-blue-600 *,
body .site-canvas button.bg-blue-600 *,
button.bg-blue-600 *,
.bg-blue-600 * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
}

/* 3. Emerald Success Button (bg-emerald-600) */
html body .site-canvas button.bg-emerald-600,
html body div button.bg-emerald-600,
body .site-canvas button.bg-emerald-600,
button.bg-emerald-600,
.bg-emerald-600 {
  background-color: #059669 !important;
  background: #059669 !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1px solid #047857 !important;
  box-shadow: 0 2px 8px rgba(5, 150, 105, 0.3) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html body .site-canvas button.bg-emerald-600 *,
html body div button.bg-emerald-600 *,
body .site-canvas button.bg-emerald-600 *,
button.bg-emerald-600 *,
.bg-emerald-600 * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
}

/* 4. Danger Rose/Red Button (bg-rose-600 / bg-red-600) */
html body .site-canvas button.bg-rose-600,
html body div button.bg-rose-600,
html body .site-canvas button.bg-red-600,
html body div button.bg-red-600,
button.bg-rose-600,
button.bg-red-600,
.bg-rose-600,
.bg-red-600 {
  background-color: #e11d48 !important;
  background: #e11d48 !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1px solid #be123c !important;
  box-shadow: 0 2px 8px rgba(225, 29, 72, 0.3) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html body .site-canvas button.bg-rose-600 *,
html body div button.bg-rose-600 *,
html body .site-canvas button.bg-red-600 *,
html body div button.bg-red-600 *,
button.bg-rose-600 *,
button.bg-red-600 *,
.bg-rose-600 *,
.bg-red-600 * {
  color: #ffffff !important;
  stroke: #ffffff !important;
  fill: none !important;
}

/* 5. Soft White Button (bg-white text-slate-800) */
html body .site-canvas button.bg-white,
html body div button.bg-white,
body .site-canvas button.bg-white,
button.bg-white {
  background-color: #ffffff !important;
  background: #ffffff !important;
  background-image: none !important;
  color: #1e293b !important;
  border: 1px solid #cbd5e1 !important;
  opacity: 1 !important;
  visibility: visible !important;
}

html body .site-canvas button.bg-white *,
html body div button.bg-white *,
body .site-canvas button.bg-white *,
button.bg-white * {
  color: #1e293b !important;
  stroke: #475569 !important;
}

/* 6. SelectInput Dropdown Option States (.select-option) */
html body .select-popover .select-option {
  background: transparent !important;
  color: #1e293b !important;
}

html body .select-popover .select-option * {
  color: inherit !important;
}

html body .select-popover .select-option:hover,
html body .select-popover .select-option:focus-visible {
  background-color: #f3e8ff !important;
  background: #f3e8ff !important;
  color: #6d28d9 !important;
}

html body .select-popover .select-option.is-selected,
html body .select-popover .select-option[aria-selected="true"] {
  background-color: #6d28d9 !important;
  background: #6d28d9 !important;
  color: #ffffff !important;
  font-weight: 900 !important;
}

html body .select-popover .select-option.is-selected *,
html body .select-popover .select-option[aria-selected="true"] * {
  color: #ffffff !important;
  stroke: #ffffff !important;
}

/* Admin controls use a dedicated contract so broad content-button effects cannot
   override a button variant or collapse its padding. */
#root .site-canvas-admin button[data-ui-button] {
  position: relative;
  isolation: isolate;
  display: inline-flex !important;
  min-width: max-content;
  min-height: 2.75rem;
  height: 2.75rem;
  padding: 0 1rem !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border: 1px solid transparent !important;
  border-radius: 0.75rem;
  color: #ffffff !important;
  font-size: 0.75rem;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
  opacity: 1;
  visibility: visible;
}

#root .site-canvas-admin button[data-ui-button] > * {
  position: relative;
  z-index: 1;
  color: inherit !important;
  stroke: currentColor !important;
}

#root .site-canvas-admin button[data-ui-button]::before,
#root .site-canvas-admin button[data-ui-button]::after {
  display: none !important;
  content: none !important;
}

#root .site-canvas-admin button[data-button-variant="primary"] {
  background: #0f766e !important;
  border-color: #0f766e !important;
  color: #ffffff !important;
}

#root .site-canvas-admin button[data-button-variant="blue"] {
  background: #2563eb !important;
  border-color: #1d4ed8 !important;
  color: #ffffff !important;
}

#root .site-canvas-admin button[data-button-variant="success"] {
  background: #047857 !important;
  border-color: #047857 !important;
  color: #ffffff !important;
}

#root .site-canvas-admin button[data-button-variant="danger"] {
  background: #be123c !important;
  border-color: #be123c !important;
  color: #ffffff !important;
}

#root .site-canvas-admin button[data-button-variant="purple"] {
  background: #6d28d9 !important;
  border-color: #5b21b6 !important;
  color: #ffffff !important;
}

#root .site-canvas-admin button[data-button-variant="amber"] {
  background: #b45309 !important;
  border-color: #92400e !important;
  color: #ffffff !important;
}

#root .site-canvas-admin button[data-button-variant="soft"] {
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
  color: #1e293b !important;
}

#root .site-canvas-admin button[data-button-variant="ghost"] {
  background: transparent !important;
  border-color: transparent !important;
  color: #334155 !important;
  box-shadow: none;
}

#root .site-canvas-admin button[data-ui-button].ui-button--compact {
  min-height: 2.25rem;
  height: 2.25rem;
  padding-inline: 0.75rem !important;
  font-size: 0.72rem;
}

#root .site-canvas-admin button[data-ui-button]:disabled {
  background: #e2e8f0 !important;
  border-color: #cbd5e1 !important;
  color: #64748b !important;
  box-shadow: none !important;
  cursor: not-allowed;
}

#root .site-canvas-admin button[data-ui-button]:not(:disabled):hover {
  filter: brightness(0.94);
  transform: translateY(-1px);
}

#root .site-canvas-admin button[data-ui-button]:focus-visible,
#root .site-canvas-admin .admin-export-button:focus-visible,
#root .site-canvas-admin button.pdf-btn-cancel:focus-visible,
#root .site-canvas-admin button.pdf-btn-save-draft:focus-visible,
#root .site-canvas-admin button.pdf-btn-submit-data:focus-visible,
#root .site-canvas-admin button.pdf-btn-apply-batch:focus-visible {
  outline: 3px solid rgba(59, 130, 246, 0.28);
  outline-offset: 2px;
}

.site-canvas-admin .admin-auth-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 0.75rem;
}

.site-canvas-admin .admin-auth-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.site-canvas-admin .admin-export-button {
  display: inline-flex;
  min-height: 2.75rem;
  height: 2.75rem;
  padding: 0 1rem;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  border: 1px solid #cbd5e1;
  border-radius: 0.75rem;
  background: #ffffff;
  color: #334155;
  font-size: 0.75rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
}

#root .site-canvas-admin .admin-tabs button[data-ui-button] {
  flex: 1 0 max-content;
  min-width: max-content;
  min-height: 2.4rem !important;
  height: 2.4rem !important;
  padding-inline: 0.5rem !important;
  font-size: 0.7rem;
}

#root .site-canvas-admin .admin-tabs button[data-ui-button] svg {
  width: 0.9rem;
  height: 0.9rem;
}

.site-canvas-admin .admin-tabs {
  gap: 0.3rem !important;
}

/* The PDF confirmation modal has custom buttons outside Button(), so protect
   those controls from the same broad selectors as well. */
#root .site-canvas-admin button.pdf-btn-cancel,
#root .site-canvas-admin button.pdf-btn-save-draft,
#root .site-canvas-admin button.pdf-btn-submit-data,
#root .site-canvas-admin button.pdf-btn-apply-batch {
  position: relative;
  display: inline-flex !important;
  min-width: max-content;
  min-height: 2.75rem;
  padding-inline: 1.25rem !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  font-size: 0.78rem;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
  opacity: 1 !important;
  visibility: visible !important;
}

#root .site-canvas-admin button.pdf-btn-cancel::before,
#root .site-canvas-admin button.pdf-btn-cancel::after,
#root .site-canvas-admin button.pdf-btn-save-draft::before,
#root .site-canvas-admin button.pdf-btn-save-draft::after,
#root .site-canvas-admin button.pdf-btn-submit-data::before,
#root .site-canvas-admin button.pdf-btn-submit-data::after,
#root .site-canvas-admin button.pdf-btn-apply-batch::before,
#root .site-canvas-admin button.pdf-btn-apply-batch::after {
  display: none !important;
  content: none !important;
}

#root .site-canvas-admin button.pdf-btn-cancel {
  background: #ffffff !important;
  border: 1px solid #cbd5e1 !important;
  color: #334155 !important;
  box-shadow: none !important;
}

#root .site-canvas-admin button.pdf-btn-save-draft {
  background: #b45309 !important;
  border: 1px solid #92400e !important;
  color: #ffffff !important;
}

#root .site-canvas-admin button.pdf-btn-submit-data,
#root .site-canvas-admin button.pdf-btn-apply-batch {
  background: #6d28d9 !important;
  border: 1px solid #5b21b6 !important;
  color: #ffffff !important;
}

#root .site-canvas-admin button.pdf-btn-save-draft *,
#root .site-canvas-admin button.pdf-btn-submit-data *,
#root .site-canvas-admin button.pdf-btn-apply-batch * {
  color: #ffffff !important;
  stroke: #ffffff !important;
}

@media (max-width: 720px) {
  .site-canvas-admin .admin-auth-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .site-canvas-admin .admin-auth-actions > * {
    flex: 1 1 0;
  }

  .site-canvas-admin .admin-tabs {
    margin-inline: -0.25rem;
  }

  .site-canvas-admin .pdf-confirmation-backdrop {
    padding: 0 !important;
  }

  .site-canvas-admin .pdf-confirmation-dialog {
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }

  .site-canvas-admin .pdf-confirmation-header,
  .site-canvas-admin .pdf-confirmation-toolbar,
  .site-canvas-admin .pdf-confirmation-footer {
    padding: 0.85rem 1rem !important;
  }

  .site-canvas-admin .pdf-confirmation-table-scroll {
    padding: 0.85rem 1rem !important;
  }

  .site-canvas-admin .pdf-confirmation-footer {
    align-items: stretch !important;
    flex-direction: column;
    gap: 0.75rem;
  }

  .site-canvas-admin .pdf-confirmation-footer-actions {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.5rem !important;
  }

  #root .site-canvas-admin .pdf-confirmation-footer-actions button {
    min-width: 0;
    padding-inline: 0.65rem !important;
    white-space: normal;
  }
}

/* Shared button contract. Keep this last so broad decorative selectors cannot
   turn variant buttons into white capsules with white text. */
#root .site-canvas button[data-ui-button] {
  position: relative;
  isolation: isolate;
  border: 1px solid transparent !important;
  opacity: 1 !important;
  visibility: visible !important;
}

#root .site-canvas button[data-ui-button]::before,
#root .site-canvas button[data-ui-button]::after {
  display: none !important;
  content: none !important;
}

#root .site-canvas button[data-ui-button][data-button-variant="primary"] {
  background: #0f766e !important;
  border-color: #0f766e !important;
  color: #ffffff !important;
}

#root .site-canvas button[data-ui-button][data-button-variant="blue"] {
  background: #2563eb !important;
  border-color: #1d4ed8 !important;
  color: #ffffff !important;
}

#root .site-canvas button[data-ui-button][data-button-variant="success"] {
  background: #047857 !important;
  border-color: #047857 !important;
  color: #ffffff !important;
}

#root .site-canvas button[data-ui-button][data-button-variant="danger"] {
  background: #be123c !important;
  border-color: #be123c !important;
  color: #ffffff !important;
}

#root .site-canvas button[data-ui-button][data-button-variant="purple"] {
  background: #6d28d9 !important;
  border-color: #5b21b6 !important;
  color: #ffffff !important;
}

#root .site-canvas button[data-ui-button][data-button-variant="amber"] {
  background: #b45309 !important;
  border-color: #92400e !important;
  color: #ffffff !important;
}

#root .site-canvas button[data-ui-button][data-button-variant="soft"] {
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
  color: #1e293b !important;
}

#root .site-canvas button[data-ui-button][data-button-variant="ghost"] {
  background: transparent !important;
  border-color: transparent !important;
  color: #334155 !important;
  box-shadow: none !important;
}

#root .site-canvas button[data-ui-button] svg,
#root .site-canvas button[data-ui-button] > * {
  position: relative;
  z-index: 1;
  color: inherit !important;
  stroke: currentColor !important;
}

#root .site-canvas button[data-ui-button]:disabled {
  background: #e2e8f0 !important;
  border-color: #cbd5e1 !important;
  color: #64748b !important;
  box-shadow: none !important;
}

/* Responsive layout repair: controls keep readable labels and operational
   tables become scannable cards before columns start crushing each other. */
.link-home-panel .section-title {
  max-width: 48rem;
  font-size: clamp(1.18rem, 2vw, 1.48rem);
  line-height: 1.22;
}

.link-home-actions {
  align-items: center;
}

.result-download-list.is-compact {
  display: grid;
  grid-template-columns: repeat(2, minmax(5.5rem, 1fr));
  width: min(100%, 14rem);
  gap: 0.4rem;
}

.result-download-list.is-compact .result-download-link {
  display: inline-flex;
  min-width: 0;
  min-height: 2.25rem;
  justify-content: flex-start;
  padding: 0.45rem 0.6rem;
  white-space: nowrap;
}

.result-download-list.is-compact .result-download-link small {
  display: none;
}

.admin-job-table td:nth-child(4),
.admin-job-table td:nth-child(6) {
  white-space: nowrap !important;
}

.admin-action-row {
  flex-wrap: wrap !important;
  white-space: normal !important;
}

#root .site-canvas-admin .admin-action-row button[data-ui-button] {
  min-width: 0;
}

@media (max-width: 1100px) {
  .link-home-head {
    grid-template-columns: minmax(0, 1fr);
    gap: 0.8rem;
  }

  .link-home-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 1199px) {
  .admin-table-scroll {
    overflow: visible !important;
    padding: 0.75rem;
    background: #f6f8f7;
  }

  .admin-job-table {
    display: block;
    min-width: 0 !important;
    width: 100%;
    background: transparent !important;
  }

  .admin-job-table thead {
    display: none;
  }

  .admin-job-table tbody {
    display: grid;
    gap: 0.75rem;
  }

  .admin-job-table .admin-job-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid rgba(8, 27, 24, 0.12);
    border-radius: 0.85rem;
    background: #ffffff !important;
    box-shadow: 0 4px 14px rgba(7, 19, 15, 0.06);
  }

  .admin-job-table .admin-job-row > td {
    display: grid;
    grid-template-columns: 6.5rem minmax(0, 1fr);
    max-width: none !important;
    min-width: 0;
    gap: 0.65rem;
    align-items: start;
    padding: 0.75rem !important;
    border-right: 1px solid rgba(8, 27, 24, 0.08);
    overflow-wrap: anywhere;
    white-space: normal !important;
  }

  .admin-job-table .admin-job-row > td::before {
    content: attr(data-label);
    color: #0f766e;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0;
    text-transform: uppercase;
  }

  .admin-job-table .admin-job-row > td[data-label="File"],
  .admin-job-table .admin-job-row > td[data-label="Wilayah"],
  .admin-job-table .admin-job-row > td[data-label="Hasil"],
  .admin-job-table .admin-job-row > td[data-label="Aksi"] {
    grid-column: 1 / -1;
  }

  .admin-job-table .result-download-list.is-compact {
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .link-home-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  .link-home-count,
  .link-home-actions .ui-button {
    width: 100%;
    justify-content: center;
  }

  .admin-job-table .admin-job-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-job-table .admin-job-row > td,
  .admin-job-table .admin-job-row > td[data-label] {
    grid-column: 1;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    border-right: 0;
  }

  .admin-job-table .result-download-list.is-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Native action buttons still exist in modal and specialist admin workflows.
   Give their utility colors the same high-specificity protection. */
#root .site-canvas button.bg-slate-900,
#root .site-canvas button.bg-slate-950,
#root .site-canvas button.bg-blue-600 {
  background: #2563eb !important;
  border-color: #1d4ed8 !important;
  color: #ffffff !important;
}

#root .site-canvas button.bg-emerald-600 {
  background: #047857 !important;
  border-color: #047857 !important;
  color: #ffffff !important;
}

#root .site-canvas button.bg-purple-700,
#root .site-canvas button.bg-gradient-to-r.from-purple-700 {
  background: #6d28d9 !important;
  border-color: #5b21b6 !important;
  color: #ffffff !important;
}

#root .site-canvas button.bg-amber-600 {
  background: #b45309 !important;
  border-color: #92400e !important;
  color: #ffffff !important;
}

#root .site-canvas button.bg-red-600,
#root .site-canvas button.bg-rose-600 {
  background: #be123c !important;
  border-color: #be123c !important;
  color: #ffffff !important;
}

#root .site-canvas button.bg-slate-50,
#root .site-canvas button.bg-slate-100 {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
  color: #334155 !important;
}

#root .site-canvas button.bg-purple-100 {
  background: #f3e8ff !important;
  border-color: #d8b4fe !important;
  color: #6b21a8 !important;
}

#root .site-canvas button.bg-white\/10 {
  background: rgba(255, 255, 255, 0.14) !important;
  border-color: rgba(255, 255, 255, 0.2) !important;
  color: #ffffff !important;
}

#root .site-canvas button.location-card-padan {
  background: #0f6f5a !important;
  border-color: #0f6f5a !important;
  color: #ffffff !important;
  box-shadow: 0 8px 20px rgba(15, 111, 90, 0.16) !important;
}

#root .site-canvas button.location-card-padan:hover {
  background: #0d5f4f !important;
  border-color: #0d5f4f !important;
  color: #ffffff !important;
}

#root .site-canvas .content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):not(.location-card-main):not(.location-card-padan):not(.mode-option)::before,
#root .site-canvas .content-stack button:not(.dock-tab):not(.hero-cta):not(.upload-zone-button):not(.select-trigger):not(.select-option):not(.stat-card):not(.location-card):not(.location-card-main):not(.location-card-padan):not(.mode-option)::after {
  display: none !important;
  content: none !important;
}

/* Layout resilience pass. Long operational labels should reflow inside their
   own controls instead of forcing cards, grids, and toolbars wider. */
.site-canvas :where(h1, h2, h3, h4, p, label, strong, small, span, a, button, th, td) {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: normal;
}

.site-canvas :where(input, select, textarea) {
  min-width: 0;
  max-width: 100%;
}

.site-canvas :where(.panel, .panel-solid, .stat-card, .location-card, .link-card, .admin-mini-card) > * {
  min-width: 0;
}

#root .site-canvas button[data-ui-button]:not(.dock-tab) {
  width: auto;
  max-width: 100%;
  height: auto;
  min-height: 2.75rem;
  padding-block: 0.62rem;
  line-height: 1.22;
  text-align: center;
  white-space: normal;
}

#root .site-canvas button[data-ui-button].ui-button--compact {
  min-height: 2.25rem;
  padding-block: 0.42rem;
}

#root .site-canvas-admin .admin-tabs button[data-ui-button] {
  white-space: nowrap;
  overflow-wrap: normal;
}

.site-canvas-admin .admin-tabs {
  scroll-padding-inline: 0.5rem;
  overscroll-behavior-inline: contain;
}

@media (max-width: 720px) {
  .stat-modal-head {
    align-items: flex-start;
  }

  .stat-modal-title {
    align-items: flex-start;
  }

  .stat-modal-close {
    width: 2.5rem;
    height: 2.5rem;
    min-height: 2.5rem;
    align-self: flex-start;
    border-radius: 0.75rem;
  }

  .padan-upload > .action-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }

  #root .site-canvas .padan-upload > .action-row button[data-ui-button] {
    width: 100%;
  }

  .site-canvas-admin .pdf-confirmation-header {
    align-items: flex-start !important;
    gap: 0.75rem;
  }

  .site-canvas-admin .pdf-confirmation-header > div:first-child {
    min-width: 0;
    align-items: flex-start !important;
    gap: 0.7rem !important;
  }

  .site-canvas-admin .pdf-confirmation-header > div:first-child > div:last-child,
  .site-canvas-admin .pdf-confirmation-toolbar > div {
    min-width: 0;
  }

  .site-canvas-admin .pdf-confirmation-header > div:first-child > div:last-child > div:first-child {
    align-items: flex-start !important;
    flex-wrap: wrap;
  }

  .site-canvas-admin .pdf-confirmation-header h3,
  .site-canvas-admin .pdf-confirmation-header p,
  .site-canvas-admin .pdf-confirmation-toolbar span,
  .site-canvas-admin .pdf-confirmation-footer span {
    overflow-wrap: anywhere;
  }

  .site-canvas-admin .pdf-confirmation-toolbar {
    align-items: stretch !important;
  }

  .site-canvas-admin .pdf-confirmation-toolbar > div {
    width: 100%;
  }

  .site-canvas-admin .pdf-confirmation-toolbar > div:last-child {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch !important;
  }

  .site-canvas-admin .pdf-confirmation-toolbar > div:last-child > div,
  .site-canvas-admin .pdf-confirmation-toolbar .pdf-btn-apply-batch {
    width: 100% !important;
    max-width: 100%;
  }

  .site-canvas-admin .pdf-confirmation-footer > div:first-child {
    min-width: 0;
    align-items: flex-start !important;
  }
}

@media (max-width: 520px) {
  .site-canvas-admin .pdf-confirmation-header > div:first-child > div:first-child {
    width: 2.35rem !important;
    height: 2.35rem !important;
    border-radius: 0.75rem !important;
  }

  .site-canvas-admin .pdf-confirmation-header h3 {
    font-size: 0.96rem !important;
    line-height: 1.28 !important;
  }

  .site-canvas-admin .pdf-confirmation-footer-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .site-canvas-admin .pdf-confirmation-footer-actions button:nth-child(3) {
    grid-column: 1 / -1;
  }
}

/* Map workspace pass: keep the map generous until the panel has enough room
   for readable cards. The side-by-side layout starts only at 1180px. */
.map-workspace {
  min-height: 0 !important;
  grid-template-columns: minmax(0, 1fr) !important;
  align-items: start;
}

.map-canvas {
  height: clamp(480px, 68vw, 620px);
  min-height: 0 !important;
}

.map-canvas-inner,
.map-shell .leaflet-container {
  width: 100%;
  height: 100%;
  min-height: 0 !important;
}

.map-results-panel {
  display: flex;
  min-height: 0;
  flex-direction: column;
  overflow: visible;
}

.map-results-panel > .location-list {
  min-height: 16rem;
  max-height: 36rem !important;
  flex: 1 1 auto;
  align-content: start;
  grid-auto-rows: max-content;
}

.location-card {
  position: relative;
  padding: 0.85rem !important;
}

.location-card-main {
  display: grid;
  min-width: 0;
  gap: 0.62rem;
}

.location-card-heading {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 0.6rem;
}

.location-card-copy {
  display: grid;
  min-width: 0;
  gap: 0.18rem;
}

.location-card-title,
.location-card-location,
.location-card-address {
  min-width: 0;
  margin: 0;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  white-space: normal !important;
}

.location-card-title {
  color: var(--ink);
  font-size: 0.94rem;
  font-weight: 950;
  line-height: 1.28;
}

.location-card-location {
  color: rgba(7, 19, 15, 0.58);
  font-size: 0.73rem;
  font-weight: 760;
  line-height: 1.42;
}

.location-card-chevron {
  display: grid;
  width: 2rem;
  height: 2rem;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(8, 27, 24, 0.1);
  border-radius: 0.72rem;
  background: rgba(255, 255, 255, 0.78);
  color: var(--forest);
}

.location-card-badges,
.location-card-metrics {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.38rem;
}

.location-card-badges > *,
.location-card-metrics > * {
  max-width: 100%;
}

.location-card-address {
  color: #475569;
  font-size: 0.75rem;
  line-height: 1.45;
}

.location-card-metric,
.location-card-meta {
  display: inline-flex;
  max-width: 100%;
  min-height: 1.8rem;
  align-items: center;
  gap: 0.32rem;
  border-radius: 0.62rem;
  padding: 0.32rem 0.48rem;
  background: rgba(241, 245, 249, 0.86);
  color: #475569;
  font-size: 0.69rem;
  font-weight: 900;
  line-height: 1.2;
  overflow-wrap: break-word;
  white-space: normal;
}

.location-card-metric.is-success {
  background: #ecfdf5;
  color: #047857;
  box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.18);
}

.location-card-metric.is-warning {
  background: #fffbeb;
  color: #a16207;
  box-shadow: inset 0 0 0 1px rgba(217, 119, 6, 0.18);
}

.location-card-meta {
  color: rgba(7, 19, 15, 0.54);
  font-weight: 820;
}

.location-card-padan {
  min-height: 2.65rem;
  margin-top: 0.72rem;
  padding-inline: 0.7rem;
  line-height: 1.2;
  white-space: normal;
}

.map-drill-panel {
  width: min(calc(100% - 1.7rem), 30rem);
}

.kat-map-popup .leaflet-popup-content {
  width: min(18.5rem, calc(100vw - 3rem)) !important;
}

@media (min-width: 1180px) {
  .map-workspace {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px) !important;
  }

  .map-canvas,
  .map-results-panel {
    height: clamp(560px, min(70vh, 52vw), 760px);
  }

  .map-results-panel > .location-list {
    max-height: none !important;
  }
}

@media (max-width: 1179px) {
  .map-workspace {
    gap: 1rem !important;
  }

  .map-results-panel {
    max-width: none;
  }
}

@media (max-width: 640px) {
  .map-canvas {
    height: clamp(320px, 94vw, 460px);
  }

  .map-results-panel {
    padding: 0.78rem !important;
  }

  .map-results-panel > .location-list {
    min-height: 12rem;
    max-height: min(36rem, 70vh) !important;
  }

  .map-drill-panel {
    top: 0.5rem;
    left: 0.5rem;
    width: calc(100% - 1rem);
    max-width: none;
  }

  .map-drill-options {
    flex-wrap: nowrap;
    max-height: 3.2rem;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 0.15rem;
  }

  .map-drill-options button {
    flex: 0 0 auto;
    overflow-wrap: normal;
    white-space: nowrap;
  }

  .location-card {
    padding: 0.76rem !important;
  }

  .location-card-title {
    font-size: 0.88rem;
  }

  .location-card-location,
  .location-card-address {
    font-size: 0.7rem;
  }
}

/* Map clarity pass: keep the sidebar inside its grid track and give the
   location/BNBA surfaces one readable visual hierarchy. */
.map-workspace {
  align-items: start !important;
  row-gap: 1rem !important;
}

/* Selected location is a full-width workspace below the map and sidebar. */
.map-workspace > .location-detail-workspace,
.map-workspace > .bnba-location-panel {
  grid-column: 1 / -1;
  min-width: 0;
  width: 100%;
}

.location-detail-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
  min-width: 0;
  align-items: start;
}

.location-summary-panel,
.location-documents-panel {
  min-width: 0;
  border: 1px solid #b6c4d2 !important;
  border-radius: 8px !important;
  background: #f0f3f7 !important;
  box-shadow: 0 14px 32px rgba(28, 47, 68, 0.08) !important;
  overflow: hidden;
}

.location-summary-panel {
  padding: 1rem;
}

.location-documents-panel {
  padding: 0.75rem;
}

.location-documents-panel .distribution-document-checklist {
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0.25rem !important;
  background: transparent !important;
}

.location-documents-panel .distribution-document-item {
  background: #e5ebf1 !important;
  border-color: #c4cfdb !important;
  border-radius: 6px !important;
}

@media (max-width: 900px) {
  .location-detail-workspace {
    grid-template-columns: 1fr;
  }
}

.map-workspace > .map-canvas,
.map-workspace > .map-results-panel,
.map-workspace > .bnba-location-panel {
  min-width: 0;
}

.map-workspace > .bnba-location-panel {
  grid-column: 1 / -1;
  width: 100%;
  margin-top: 0 !important;
  position: relative;
  z-index: 1;
}

.map-shell {
  border-radius: 8px !important;
  background: #e5edf3 !important;
  box-shadow: 0 18px 42px rgba(28, 47, 68, 0.14) !important;
}

.map-results-panel {
  border-radius: 8px !important;
  border-color: #b9c6d4 !important;
  background: #edf2f6 !important;
  box-shadow: 0 18px 42px rgba(28, 47, 68, 0.1) !important;
  backdrop-filter: none !important;
  overflow-x: hidden !important;
}

.map-results-panel > .grid > div:first-child {
  border: 1px solid #c5d0dc !important;
  border-radius: 6px !important;
  background: #e3eaf1 !important;
  box-shadow: none !important;
}

.map-results-panel .region-detail {
  border-color: #bac8d6 !important;
  border-radius: 8px !important;
  background: #e8eef4 !important;
  box-shadow: none !important;
}

.location-detail-panel,
.bnba-location-panel {
  border-color: #b6c4d2 !important;
  border-radius: 8px !important;
  background: #f0f3f7 !important;
  box-shadow: 0 14px 32px rgba(28, 47, 68, 0.08) !important;
  backdrop-filter: none !important;
}

.location-detail-panel .location-field,
.location-detail-panel .mini-metric,
.map-results-panel .mini-metric,
.bnba-location-panel .mini-metric {
  border: 1px solid #c4cfdb !important;
  border-radius: 6px !important;
  background: #e5ebf1 !important;
  box-shadow: none !important;
}

.location-detail-panel .location-field .text-slate-500,
.location-detail-panel .mini-metric .text-slate-500,
.map-results-panel .mini-metric .text-slate-500,
.bnba-location-panel .mini-metric .text-slate-500 {
  color: #455b6c !important;
}

.location-detail-panel .location-field strong,
.location-detail-panel .mini-metric strong,
.map-results-panel .mini-metric strong,
.bnba-location-panel .mini-metric strong {
  color: #102b3e !important;
}

.location-card {
  border-color: #bfccd9 !important;
  border-radius: 8px !important;
  background: #f4f6f8 !important;
  box-shadow: none !important;
}

.location-card:hover {
  border-color: #7c91bb !important;
  background: #e9eef7 !important;
}

.location-card.is-map-linked {
  border-color: #657ac0 !important;
  background: #e8edfb !important;
}

.location-card-main {
  width: 100% !important;
  min-height: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #102b3e !important;
}

.location-card-main:hover,
.location-card-main:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
}

.location-card-title {
  color: #102b3e !important;
}

.location-card-location,
.location-card-address {
  color: #455b6c !important;
}

.location-card-badges {
  padding-top: 0.48rem;
  border-top: 1px solid #d0d9e3;
}

.location-card-metric {
  border: 1px solid #c5d1dc;
  border-radius: 6px;
  background: #e6ecf2 !important;
  color: #29445a !important;
}

.location-card-metric.is-success {
  border-color: #86c5ad;
  background: #d5eee3 !important;
  color: #075f4d !important;
}

.location-card-metric.is-warning {
  border-color: #e1be71;
  background: #fff0c9 !important;
  color: #85500b !important;
}

.location-card-meta {
  border-radius: 4px;
  padding: 0.22rem 0.35rem;
  background: transparent !important;
  color: #45665c !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

.location-card-chevron {
  border-color: #aebed3 !important;
  border-radius: 6px !important;
  background: #e1e8f2 !important;
  color: #4056a1 !important;
}

.location-card-padan {
  min-height: 2.55rem;
  border-radius: 6px !important;
  box-shadow: 0 8px 18px rgba(15, 111, 90, 0.14) !important;
}

.bnba-location-panel .bnba-search-box {
  border-color: #bcc9d7 !important;
  background: #f8fafc !important;
  box-shadow: none !important;
}

.bnba-location-panel .bnba-segments {
  border-color: #bcc9d7 !important;
  background: #e3eaf1 !important;
  box-shadow: none !important;
}

.bnba-location-panel .bnba-table-shell {
  border-radius: 8px !important;
  background: #e6ecf2 !important;
  box-shadow: none !important;
}

@media (min-width: 1180px) {
  .map-results-panel {
    overflow-y: auto !important;
    scrollbar-gutter: stable;
  }

  .map-results-panel > .location-list {
    flex: 0 0 auto !important;
    max-height: 28rem !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }
}

@media (max-width: 1179px) {
  .map-results-panel {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  .map-results-panel > .location-list {
    flex: 0 0 auto !important;
  }
}

@media (max-width: 640px) {
  .map-workspace > .bnba-location-panel {
    grid-column: auto;
  }

  .location-card {
    padding: 0.72rem !important;
  }

  .location-card-metric,
  .location-card-meta {
    font-size: 0.68rem;
  }
}

/* Keep the clickable location summary visually fused with its parent card.
   This is intentionally limited to the summary button so badges and the
   separate padan action keep their own surfaces and contrast. */
#root .site-canvas article.location-card > button.location-card-main,
#root .site-canvas article.location-card.is-map-linked > button.location-card-main,
#root .site-canvas article.location-card:hover > button.location-card-main,
#root .site-canvas article.location-card:focus-within > button.location-card-main,
#root .site-canvas article.location-card:active > button.location-card-main {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

#root .site-canvas article.location-card > button.location-card-main::before,
#root .site-canvas article.location-card > button.location-card-main::after,
#root .site-canvas article.location-card.is-map-linked > button.location-card-main::before,
#root .site-canvas article.location-card.is-map-linked > button.location-card-main::after,
#root .site-canvas article.location-card:hover > button.location-card-main::before,
#root .site-canvas article.location-card:hover > button.location-card-main::after,
#root .site-canvas article.location-card:focus-within > button.location-card-main::before,
#root .site-canvas article.location-card:focus-within > button.location-card-main::after,
#root .site-canvas article.location-card:active > button.location-card-main::before,
#root .site-canvas article.location-card:active > button.location-card-main::after {
  display: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  content: none !important;
}

/* Do not let the global emergency wrapping rule split readable operational
   labels into individual characters inside the narrow detail grid. */
.map-results-panel :where(.location-field span, .location-field strong, .mini-metric span, .mini-metric strong),
.bnba-location-panel :where(.mini-metric span, .mini-metric strong) {
  overflow-wrap: break-word !important;
  word-break: normal !important;
  hyphens: none;
}

.bnba-location-panel > .mt-4.rounded-2xl.border-dashed {
  border-color: #bcc9d7 !important;
  border-radius: 8px !important;
  background: #e6ecf2 !important;
}

/* Final map controls pass: keep actions and data states distinct from the
   neutral panel surfaces. */
#root .site-canvas .map-proposal-action {
  border: 1px solid #34468b !important;
  border-radius: 6px !important;
  background: #4056a1 !important;
  background-image: none !important;
  color: #ffffff !important;
  box-shadow: 0 8px 18px rgba(64, 86, 161, 0.18) !important;
}

#root .site-canvas .map-proposal-action:hover {
  border-color: #34468b !important;
  background: #34468b !important;
  background-image: none !important;
  color: #ffffff !important;
}

#root .site-canvas .map-results-panel .source-pill-button {
  border: 1px solid #bcc9d7 !important;
  border-radius: 6px !important;
  background: #e3eaf1 !important;
  color: #29445a !important;
  box-shadow: none !important;
}

#root .site-canvas .map-results-panel .source-pill-button:hover {
  border-color: #8ea2bd !important;
  background: #d8e2ee !important;
  color: #233f5c !important;
}

#root .site-canvas .map-results-panel .source-pill-button.is-active,
#root .site-canvas .map-results-panel .source-pill-button[aria-pressed="true"] {
  border-color: #4056a1 !important;
  background: #4056a1 !important;
  color: #ffffff !important;
}

.map-results-panel .mini-metric strong,
.location-detail-panel .mini-metric strong,
.bnba-location-panel .mini-metric strong {
  min-width: 0;
  font-size: 0.84rem !important;
  line-height: 1.25 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal;
}

.location-detail-address {
  border: 1px solid #c4cfdb !important;
  border-radius: 6px !important;
  background: #e5ebf1 !important;
  color: #455b6c !important;
  box-shadow: none !important;
}

@media (max-width: 640px) {
  .map-results-panel .mini-metric strong,
  .location-detail-panel .mini-metric strong,
  .bnba-location-panel .mini-metric strong {
    font-size: 0.82rem !important;
    line-height: 1.28 !important;
  }
}

#root .site-canvas .bnba-location-panel .bnba-segments button {
  border: 0 !important;
  background: transparent !important;
  background-image: none !important;
  color: #29445a !important;
  box-shadow: none !important;
}

#root .site-canvas .bnba-location-panel .bnba-segments button:hover {
  background: #d8e2ee !important;
  background-image: none !important;
  color: #233f5c !important;
}

#root .site-canvas .bnba-location-panel .bnba-segments button.is-active {
  border: 1px solid #4056a1 !important;
  background: #4056a1 !important;
  background-image: none !important;
  color: #ffffff !important;
  box-shadow: 0 6px 14px rgba(64, 86, 161, 0.2) !important;
}

#root .site-canvas .bnba-location-panel .bnba-segments button.is-active:hover {
  border-color: #34468b !important;
  background: #34468b !important;
  background-image: none !important;
  color: #ffffff !important;
}

/* Button contract: labeled commands get one predictable hit area. Icon-only
   squares, map controls, and segmented choices remain untouched. */
#root .site-canvas :where(
  button[data-ui-button][data-button-kind="command"],
  button.location-card-padan,
  button.map-proposal-action,
  .map-results-panel .source-pill-button,
  .kat-popup-actions button,
  .result-download-link,
  .document-edit-unavailable,
  .distribution-record-actions button,
  .admin-action-row button,
  .link-card-actions button,
  .link-card-actions a
):not(.icon-only):not([data-icon-only="true"]):not(.dock-tab):not(.stat-modal-close):not(.map-control):not(.mode-option) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  min-width: 0 !important;
  min-height: 2.55rem !important;
  max-width: 100% !important;
  padding: 0.58rem 0.95rem !important;
  line-height: 1.25 !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-align: center !important;
}

#root .site-canvas button[data-ui-button][data-button-kind="command"].ui-button--compact:not(.icon-only):not([data-icon-only="true"]),
#root .site-canvas :where(button.location-card-padan, .result-download-link, .document-edit-unavailable) {
  min-height: 2.55rem !important;
  padding-inline: 0.9rem !important;
}

#root .site-canvas :where(.link-card-actions, .distribution-record-actions, .admin-action-row, .kat-popup-actions, .result-download-list) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}

#root .site-canvas :where(.kat-popup-actions, .result-download-list) {
  align-items: stretch;
}

#root .site-canvas .kat-popup-actions > *,
#root .site-canvas .result-download-list > * {
  flex: 1 1 10rem;
}

#root .site-canvas :where(.link-card-actions button, .link-card-actions a, .distribution-record-actions button, .admin-action-row button) {
  flex: 0 1 auto;
}

#root .site-canvas .location-documents-panel-head {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.25rem 0.25rem 0.85rem;
  border-bottom: 1px solid #c4cfdb;
}

#root .site-canvas .location-documents-panel-head > .min-w-0 {
  min-width: 0;
}

#root .site-canvas .location-documents-panel-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
}

#root .site-canvas .location-documents-panel-actions .ui-button,
#root .site-canvas .document-edit-unavailable {
  min-height: 2.55rem;
  padding: 0.58rem 0.9rem;
  line-height: 1.25;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}

#root .site-canvas .document-edit-unavailable {
  display: inline-flex;
  max-width: 15rem;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border: 1px solid #c4cfdb;
  border-radius: 0.75rem;
  background: #e5ebf1;
  color: #526a7b;
  font-size: 0.72rem;
  font-weight: 900;
  text-align: center;
  cursor: not-allowed;
}

#root .site-canvas .location-documents-panel-body {
  min-width: 0;
  padding-top: 0.85rem;
}

@media (max-width: 640px) {
  #root .site-canvas .location-documents-panel-head {
    align-items: stretch;
    flex-direction: column;
    gap: 0.7rem;
  }

  #root .site-canvas .location-documents-panel-actions {
    justify-content: flex-start;
  }

  #root .site-canvas .location-documents-panel-actions .ui-button,
  #root .site-canvas .document-edit-unavailable {
    flex: 1 1 auto;
    max-width: none;
  }

  #root .site-canvas :where(.link-card-actions, .distribution-record-actions, .admin-action-row) {
    align-items: stretch;
  }

  #root .site-canvas :where(.link-card-actions button, .link-card-actions a, .distribution-record-actions button, .admin-action-row button) {
    flex: 1 1 9rem;
  }
}

/* Final labeled-button contract: keep command labels readable inside narrow
   flex/grid tracks without changing icon-only, segmented, dock, or map-zoom controls. */
#root .site-canvas :where(
  button[data-ui-button][data-button-kind="command"],
  button.location-card-padan,
  button.map-proposal-action,
  .map-results-panel .source-pill-button,
  .kat-popup-actions button,
  .result-download-link,
  .document-edit-unavailable,
  .distribution-record-actions button,
  .admin-action-row button,
  .link-card-actions button,
  .link-card-actions a
):not(.icon-only):not([data-icon-only="true"]):not(.dock-tab):not(.stat-modal-close):not(.map-control):not(.mode-option):not(.admin-tabs button):not(.bnba-segments button):not(.map-drill-options button) {
  box-sizing: border-box !important;
  min-height: 44px !important;
  max-width: 100% !important;
  padding-inline: 1rem !important;
  gap: 0.6rem !important;
  overflow: visible !important;
  white-space: normal !important;
  text-align: center !important;
}

#root .site-canvas :where(
  button[data-ui-button][data-button-kind="command"],
  button.location-card-padan,
  .kat-popup-actions button,
  .result-download-link,
  .document-edit-unavailable,
  .distribution-record-actions button,
  .admin-action-row button,
  .link-card-actions button,
  .link-card-actions a
):not(.icon-only):not([data-icon-only="true"]):not(.dock-tab):not(.stat-modal-close):not(.map-control):not(.mode-option):not(.admin-tabs button):not(.bnba-segments button):not(.map-drill-options button) > .ui-button-label {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
  white-space: normal !important;
  text-wrap: balance;
}

#root .site-canvas :where(
  button[data-ui-button][data-button-kind="command"],
  button.location-card-padan,
  .kat-popup-actions button,
  .result-download-link,
  .document-edit-unavailable,
  .distribution-record-actions button,
  .admin-action-row button,
  .link-card-actions button,
  .link-card-actions a
):not(.icon-only):not([data-icon-only="true"]):not(.dock-tab):not(.stat-modal-close):not(.map-control):not(.mode-option):not(.admin-tabs button):not(.bnba-segments button):not(.map-drill-options button) > svg {
  flex: 0 0 auto !important;
  min-width: 0;
}

#root .site-canvas .link-home-actions .ui-button {
  min-width: 8.5rem;
}

#root .site-canvas .link-archive-toolbar {
  grid-template-columns: minmax(0, 1fr) minmax(10rem, 16rem) minmax(5.5rem, auto);
}

#root .site-canvas .link-archive-toolbar > .ui-button {
  min-width: 5.5rem;
}

#root .site-canvas .map-province-filter {
  grid-template-columns: minmax(0, 1fr) minmax(5.5rem, auto) !important;
}

#root .site-canvas .map-province-filter > .ui-button {
  min-width: 5.5rem;
}

#root .site-canvas .padan-upload > .action-row {
  gap: 0.8rem;
  padding: 0.15rem 0.25rem;
}

#root .site-canvas .padan-upload > .action-row > .ui-button {
  min-width: 10.5rem;
}

#root .site-canvas .location-card-padan {
  box-sizing: border-box;
  min-width: 0;
  overflow: visible !important;
  padding-inline: 0.95rem !important;
}

#root .site-canvas .location-card-padan > .ui-button-label {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  text-wrap: balance;
  white-space: normal;
}

@media (max-width: 640px) {
  #root .site-canvas .link-home-actions,
  #root .site-canvas .link-archive-toolbar {
    grid-template-columns: minmax(0, 1fr);
  }

  #root .site-canvas .link-home-actions .ui-button,
  #root .site-canvas .link-archive-toolbar > .ui-button {
    width: 100%;
    min-width: 0;
  }

  #root .site-canvas .map-province-filter {
    grid-template-columns: minmax(0, 1fr) minmax(5.5rem, auto) !important;
  }

  #root .site-canvas .padan-upload > .action-row > .ui-button {
    width: 100%;
    min-width: 0;
  }
}

/* Mobile transformed hero media must not contribute to document overflow.
   `clip` does not create a scroll container, so sticky/fixed dock behavior stays intact. */
@media (max-width: 640px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    overflow-x: clip;
  }

  .site-canvas,
  .hero-pin {
    max-width: 100%;
    overflow-x: clip;
  }

  .hero-pin {
    contain: paint;
  }
}

/* Documents workspace and client-side map filters */
.documents-dashboard {
  display: grid;
  gap: 1.25rem;
  min-width: 0;
}

.documents-dashboard-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.25rem;
  padding: 0.25rem 0 1.15rem;
  border-bottom: 1px solid #cbd5e1;
}

.documents-dashboard-copy,
.documents-location-main,
.documents-location-source {
  min-width: 0;
}

.documents-dashboard-description {
  max-width: 48rem;
  margin: 0.4rem 0 0;
  color: #475569;
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.6;
}

.documents-dashboard-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.65rem;
}

.documents-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.7rem;
}

.documents-summary-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.35rem 0.6rem;
  min-width: 0;
  padding: 0.85rem;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
}

.documents-summary-item strong {
  grid-column: 1 / -1;
  color: #0f172a;
  font-size: 1.45rem;
  line-height: 1;
}

.documents-summary-icon {
  display: inline-flex;
  color: #475569;
}

.documents-summary-label {
  min-width: 0;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1.25;
}

.documents-summary-item.tone-amber { border-top: 3px solid #d97706; }
.documents-summary-item.tone-emerald { border-top: 3px solid #059669; }
.documents-summary-item.tone-blue { border-top: 3px solid #2563eb; }
.documents-summary-item.tone-violet { border-top: 3px solid #7c3aed; }
.documents-summary-item.tone-slate { border-top: 3px solid #64748b; }

.documents-location-workspace {
  min-width: 0;
  border-block: 1px solid #cbd5e1;
  background: rgba(255, 255, 255, 0.78);
}

.documents-toolbar {
  display: grid;
  grid-template-columns: minmax(15rem, 1fr) minmax(13rem, 0.45fr) auto;
  align-items: end;
  gap: 0.8rem;
  padding: 1rem 0;
}

.documents-search-field,
.documents-status-field {
  display: grid;
  gap: 0.4rem;
  min-width: 0;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 850;
}

.documents-result-count {
  align-self: center;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 850;
  white-space: nowrap;
}

.documents-list-heading,
.documents-location-row {
  display: grid;
  grid-template-columns: minmax(15rem, 1.4fr) minmax(7.5rem, 0.45fr) minmax(9rem, 0.65fr) minmax(13rem, 1fr);
  gap: 1rem;
  align-items: center;
}

.documents-list-heading {
  padding: 0.65rem 0.8rem;
  border-block: 1px solid #cbd5e1;
  background: #f1f5f9;
  color: #475569;
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.documents-location-list {
  min-width: 0;
}

.documents-location-row {
  min-width: 0;
  padding: 0.9rem 0.8rem;
  border-bottom: 1px solid #e2e8f0;
  border-left: 3px solid #64748b;
  background: rgba(255, 255, 255, 0.86);
}

.documents-location-row:last-child { border-bottom: 0; }
.documents-location-row.is-started { border-left-color: #d97706; }
.documents-location-row.is-complete { border-left-color: #059669; }

.documents-location-main {
  display: grid;
  gap: 0.25rem;
}

.documents-location-main strong,
.documents-location-main span,
.documents-location-source {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.documents-location-main strong {
  color: #0f172a;
  font-size: 0.86rem;
}

.documents-location-main span,
.documents-location-source {
  color: #64748b;
  font-size: 0.74rem;
  font-weight: 700;
}

.documents-location-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
}

.documents-location-status small {
  color: #475569;
  font-size: 0.69rem;
  font-weight: 800;
  line-height: 1.2;
}

.documents-ratio-badge {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  min-height: 1.8rem;
  padding: 0.2rem 0.55rem;
  border: 1px solid #94a3b8;
  border-radius: 999px;
  background: #f8fafc;
  color: #334155;
  font-size: 0.72rem;
  font-weight: 900;
}

.is-started .documents-ratio-badge {
  border-color: #f59e0b;
  background: #fffbeb;
  color: #92400e;
}

.is-complete .documents-ratio-badge {
  border-color: #10b981;
  background: #ecfdf5;
  color: #065f46;
}

.documents-evidence-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  min-width: 0;
}

.documents-evidence-links a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  min-height: 2.25rem;
  max-width: 100%;
  padding: 0.4rem 0.55rem;
  border: 1px solid #cbd5e1;
  border-radius: 6px;
  background: #fff;
  color: #1d4ed8;
  font-size: 0.7rem;
  font-weight: 850;
  text-decoration: none;
}

.documents-evidence-links a:hover { border-color: #60a5fa; background: #eff6ff; }
.documents-evidence-links a svg { flex-shrink: 0; }
.documents-evidence-links a span { overflow-wrap: anywhere; }

.documents-no-evidence,
.documents-empty-state {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 750;
}

.documents-empty-state {
  padding: 2rem 1rem;
  text-align: center;
}

.map-client-filters {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
  min-width: 0;
}

.map-client-filters > * { min-width: 0; }
.map-client-filters select { width: 100%; }

.map-location-list-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 1rem;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 850;
  text-transform: uppercase;
}

.map-location-list-meta strong {
  color: #0f172a;
  font-size: 0.75rem;
}

#pdf-import {
  scroll-margin-top: 6.5rem;
}

@media (max-width: 1100px) {
  .documents-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .documents-list-heading,
  .documents-location-row { grid-template-columns: minmax(12rem, 1.25fr) minmax(7rem, 0.45fr) minmax(8rem, 0.55fr) minmax(11rem, 0.9fr); }
}

@media (max-width: 760px) {
  .documents-dashboard-head { align-items: start; flex-direction: column; }
  .documents-dashboard-actions { justify-content: flex-start; width: 100%; }
  .documents-dashboard-actions .ui-button { flex: 1 1 12rem; }
  .documents-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .documents-toolbar { grid-template-columns: minmax(0, 1fr); }
  .documents-result-count { justify-self: start; }
  .documents-list-heading { display: none; }
  .documents-location-row { grid-template-columns: minmax(0, 1fr); gap: 0.65rem; padding: 1rem 0.8rem; }
  .documents-location-main strong,
  .documents-location-main span,
  .documents-location-source { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
}

@media (max-width: 420px) {
  .documents-summary-grid { grid-template-columns: minmax(0, 1fr); }
  .documents-dashboard-actions .ui-button { width: 100%; flex-basis: 100%; }
  .map-client-filters { grid-template-columns: minmax(0, 1fr); }
}

/* Keep all five primary destinations and Admin visible in the mobile dock. */
@media (max-width: 1023px) {
  body #root .site-canvas .dock-menu {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 0.18rem !important;
  }

  body #root .site-canvas .dock-nav-primary,
  body #root .site-canvas .dock-nav-admin {
    display: contents !important;
  }

  body #root .site-canvas .dock-menu-separator {
    display: none !important;
  }

  body #root .site-canvas .dock-tab {
    width: 100% !important;
    min-width: 0 !important;
    padding-inline: 0.12rem !important;
  }

  body #root .site-canvas .dock-tab-icon {
    flex-shrink: 0;
  }

  body #root .site-canvas .dock-tab-label {
    display: block;
    width: 100%;
    min-width: 0;
    overflow: visible !important;
    white-space: normal !important;
    overflow-wrap: normal;
    word-break: normal;
    text-align: center;
    line-height: 1.05;
  }
}

@media (max-width: 390px) {
  body #root .site-canvas .dock-tab-label { font-size: 0.55rem !important; }
  body #root .site-canvas .dock-tab-icon { width: 1.65rem; height: 1.65rem; }
}
