/* Appily-Twelve — Florilegium Specimen Chest (account) */

.page-specimen-chest .page-main {
  background: linear-gradient(180deg, var(--mist) 0%, #f4efe6 50%, var(--mist-2) 100%);
}

.specimen-chest-page {
  position: relative;
  padding: 40px 0 72px;
  overflow: hidden;
}
.chest-grain {
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0 48px,
      rgba(92, 64, 40, 0.03) 48px 49px
    ),
    linear-gradient(180deg, #ebe4d8 0%, var(--mist) 40%, #e8e0d4 100%);
  pointer-events: none;
}
.chest-wrap { position: relative; max-width: 1080px; }

.chest-intro {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: center;
  margin-bottom: 32px;
}
.chest-lid-badge {
  display: flex;
  align-items: center;
  gap: 6px;
}
.lid-hinge {
  width: 8px;
  height: 52px;
  border-radius: 4px;
  background: linear-gradient(180deg, #8b7355, #5c4a32);
  box-shadow: inset 0 2px 4px rgba(255, 255, 255, 0.15);
}
.lid-plate {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  background: linear-gradient(145deg, #6b5344, #4a3728);
  border: 2px solid #c4a882;
  color: var(--pollen-pale);
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(74, 55, 40, 0.35), inset 0 2px 8px rgba(255, 255, 255, 0.1);
  transform: rotate(-3deg);
}
.chest-kicker {
  margin: 0 0 8px;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--coral);
}
.chest-intro h1 {
  margin: 0 0 10px;
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4vw, 2.5rem);
  color: var(--emerald-deep);
  line-height: 1.1;
}
.chest-intro h1 em {
  font-style: italic;
  color: var(--emerald);
}
.chest-lede {
  margin: 0;
  max-width: 52ch;
  color: var(--muted);
  font-size: .92rem;
}
.chest-loading {
  text-align: center;
  max-width: 420px;
  margin: 0 auto 24px;
}

/* ── Logged-in: specimen chest workbench ── */
.chest-workbench {
  display: grid;
  grid-template-columns: 240px 1fr 210px;
  gap: 0;
  background: linear-gradient(180deg, #faf6f0, #f0ebe3);
  border: 2px solid #c4a882;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
  min-height: 520px;
}

.drawer-stack {
  background: linear-gradient(180deg, #5c4a32 0%, #4a3728 100%);
  color: var(--pollen-pale);
  padding: 24px 16px;
  display: flex;
  flex-direction: column;
  border-right: 3px solid #3d2e22;
}
.drawer-stack-label {
  margin: 0 0 6px;
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--pollen);
  opacity: .85;
}
.drawer-welcome {
  font-family: var(--font-display);
  font-size: 1.15rem;
  margin: 0 0 20px;
  line-height: 1.2;
}
.drawer-tabs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.drawer-tab {
  display: flex;
  align-items: stretch;
  gap: 0;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  transition: transform .2s;
}
.drawer-tab:hover { transform: translateX(6px); }
.drawer-tab.is-active { transform: translateX(10px); }
.drawer-pull {
  flex-shrink: 0;
  width: 14px;
  align-self: center;
  height: 36px;
  margin-right: 4px;
  border-radius: 3px;
  background: linear-gradient(180deg, #d4a882, #a08060);
  box-shadow: 2px 0 6px rgba(0, 0, 0, 0.25);
}
.drawer-tab.is-active .drawer-pull {
  background: linear-gradient(180deg, var(--pollen), #d4a82a);
  box-shadow: 2px 0 10px rgba(242, 193, 78, 0.4);
}
.drawer-face {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 14px;
  background: linear-gradient(180deg, #e8dcc8, #d4c4a8);
  border: 1px solid #b89870;
  border-radius: 0 4px 4px 0;
  color: var(--emerald-deep);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.drawer-tab.is-active .drawer-face {
  background: linear-gradient(180deg, #faf8f4, #f0ebe3);
  border-color: var(--coral);
  box-shadow: 0 4px 14px rgba(232, 116, 97, 0.2);
}
.drawer-num {
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .1em;
  color: var(--coral);
}
.drawer-name {
  font-size: .82rem;
  font-weight: 700;
}
.drawer-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 20px;
}
.chest-signout {
  border-color: rgba(251, 233, 184, 0.35) !important;
  color: var(--pollen-pale) !important;
}

.glassine-stage {
  padding: 28px 30px 32px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.6) 0%, transparent 80px),
    repeating-linear-gradient(
      0deg,
      transparent 0 23px,
      rgba(11, 61, 46, 0.04) 23px 24px
    ),
    #faf8f4;
}
.glassine-stage #profileVerifyNotice:not(:empty) { margin-bottom: 18px; }

.glassine-sheet {
  position: relative;
  display: none;
  padding: 8px 4px 4px;
  animation: glassineIn .35s ease;
}
.glassine-sheet.is-active { display: block; }
@keyframes glassineIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
.glassine-corner {
  position: absolute;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(11, 61, 46, 0.15);
}
.glassine-corner-tl { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.glassine-corner-tr { top: 0; right: 0; border-left: 0; border-bottom: 0; }

.sheet-kicker {
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--coral);
  margin: 0 0 6px;
}
.sheet-title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  margin: 0 0 20px;
  color: var(--emerald-deep);
}
.sheet-head-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}
.sheet-head-row .sheet-title { margin-bottom: 0; }

.specimen-grid,
.profile-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.profile-item {
  padding: 14px 16px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  border-left: 3px solid var(--pollen);
}
.profile-item .k {
  display: block;
  font-size: .66rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}
.profile-item .v {
  display: block;
  font-weight: 700;
  color: var(--emerald-deep);
  word-break: break-word;
  line-height: 1.4;
}
.profile-item .v.mono {
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: .8rem;
  font-weight: 500;
}

.chest-orders .order-row {
  border-left: 3px solid var(--emerald);
  border-radius: var(--radius-lg);
}

.drying-tags {
  position: relative;
  padding: 28px 14px 24px;
  background: linear-gradient(180deg, #e8f0ec, #dce8e2);
  border-left: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.drying-tags-title {
  margin: 0 0 4px;
  font-size: .64rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--emerald);
  text-align: center;
}
.drying-string {
  position: absolute;
  top: 44px;
  left: 12px;
  right: 12px;
  height: 2px;
  background: linear-gradient(90deg, #8b7355, #c4a882, #8b7355);
  z-index: 0;
}
.dry-tag {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 12px 12px 10px;
  background: var(--white);
  border: 1px solid #d4c4a8;
  border-radius: 2px 2px var(--radius) var(--radius);
  box-shadow: 0 4px 12px rgba(11, 61, 46, 0.06);
  transform: rotate(var(--tag-tilt, -1deg));
  transition: transform .2s, box-shadow .2s;
}
.dry-tag:nth-child(3) { --tag-tilt: 1.5deg; }
.dry-tag:nth-child(4) { --tag-tilt: -2deg; }
.dry-tag:nth-child(5) { --tag-tilt: 0.5deg; }
.dry-tag:nth-child(6) { --tag-tilt: -1.5deg; }
.dry-tag:hover {
  transform: rotate(0deg) translateY(-2px);
  box-shadow: var(--shadow-soft);
}
.tag-pin {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  margin-top: 4px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #e87461, #c45f4d);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.tag-body strong {
  display: block;
  font-size: .78rem;
  color: var(--emerald-deep);
}
.tag-body span {
  display: block;
  font-size: .66rem;
  color: var(--muted);
  margin-top: 2px;
}

.chest-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.chest-form-narrow { max-width: 400px; }
.chest-field label {
  display: block;
  font-size: .82rem;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--emerald-deep);
}
.chest-field input {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d4c4a8;
  border-radius: var(--radius);
  font: inherit;
  background: var(--white);
}
.chest-field input:focus {
  outline: 2px solid rgba(11, 61, 46, 0.2);
  border-color: var(--emerald);
}

/* ── Logged-out: twin-lid chest ── */
.chest-guest {
  background: linear-gradient(180deg, #faf6f0, #f0ebe3);
  border: 2px solid #c4a882;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.chest-guest-frame {
  border-bottom: 3px solid #8b7355;
}
.lid-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: linear-gradient(180deg, #6b5344, #4a3728);
  padding: 8px 8px 0;
}
.lid-toggle {
  padding: 14px 16px;
  border: none;
  border-radius: var(--radius) var(--radius) 0 0;
  background: rgba(0, 0, 0, 0.2);
  font-family: inherit;
  font-size: .88rem;
  font-weight: 700;
  color: rgba(251, 233, 184, 0.65);
  cursor: pointer;
  transition: background .2s, color .2s, transform .2s;
  position: relative;
}
.lid-toggle::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 20%;
  right: 20%;
  height: 3px;
  background: transparent;
  border-radius: 2px 2px 0 0;
}
.lid-toggle.is-active {
  background: linear-gradient(180deg, #faf8f4, #f0ebe3);
  color: var(--emerald-deep);
  transform: translateY(-2px);
}
.lid-toggle.is-active::after {
  background: var(--coral);
}

.lid-compartments {
  position: relative;
  padding: 32px 28px;
  min-height: 380px;
}
.lid-panel {
  display: none;
  max-width: 480px;
  margin: 0 auto;
}
.lid-panel.is-active {
  display: block;
  animation: lidOpen .4s ease;
}
@keyframes lidOpen {
  from { opacity: 0; transform: perspective(400px) rotateX(-8deg); }
  to { opacity: 1; transform: perspective(400px) rotateX(0); }
}
.lid-kicker {
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--coral);
  margin: 0 0 8px;
}
.lid-panel h2 {
  font-family: var(--font-display);
  font-size: 1.5rem;
  margin: 0 0 10px;
  color: var(--emerald-deep);
}
.lid-lede {
  margin: 0 0 22px;
  color: var(--muted);
  font-size: .9rem;
}
.lid-forgot {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px dashed #d4c4a8;
}
.lid-subhead {
  font-family: var(--font-display);
  font-size: 1.05rem;
  margin: 0 0 12px;
  color: var(--emerald);
}
.lid-reset {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px dashed #d4c4a8;
}

.vial-tray {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  background: #e8dcc8;
  border-top: 1px solid #c4a882;
}
.seed-vial {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 20px 12px 16px;
  text-align: center;
  border-right: 1px dashed #c4a882;
}
.seed-vial:last-child { border-right: 0; }
.vial-cap {
  width: 28px;
  height: 12px;
  border-radius: 4px 4px 0 0;
  background: linear-gradient(180deg, #8b7355, #5c4a32);
  box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.2);
}
.vial-cap::after {
  content: '';
  display: block;
  width: 22px;
  height: 32px;
  margin: 0 auto;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(232, 240, 236, 0.8));
  border: 1px solid rgba(11, 61, 46, 0.12);
  border-radius: 0 0 6px 6px;
}
.vial-label {
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .1em;
  color: var(--coral);
  margin-top: 4px;
}
.vial-text {
  font-size: .72rem;
  font-weight: 600;
  color: var(--emerald-deep);
  line-height: 1.3;
}

/* Shared account chrome */
.specimen-chest-page .notice { border-radius: var(--radius-lg); }
.glassine-stage .notice.success { background: #f0fdf4; }
.glassine-stage .notice.warning { background: var(--pollen-pale); }

.toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  max-width: 360px;
  padding: 14px 18px;
  background: var(--emerald-deep);
  color: var(--mist);
  border-radius: var(--radius-lg);
  font-size: .88rem;
  box-shadow: var(--shadow);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
  z-index: 100;
}
.toast.visible,
.toast.is-visible { opacity: 1; pointer-events: auto; }

.dash-panel { display: none; }
.dash-panel.is-active { display: block; }

@media (max-width: 960px) {
  .chest-intro {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .chest-lid-badge { justify-content: center; }
  .chest-lede { margin-left: auto; margin-right: auto; }
  .chest-workbench { grid-template-columns: 1fr; }
  .drawer-stack {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 18px 16px;
    border-right: 0;
    border-bottom: 3px solid #3d2e22;
  }
  .drawer-welcome { width: 100%; margin-bottom: 8px; }
  .drawer-tabs {
    flex-direction: row;
    flex-wrap: wrap;
    flex: 1;
  }
  .drawer-tab { flex: 1 1 auto; min-width: 140px; }
  .drawer-tab:hover,
  .drawer-tab.is-active { transform: none; }
  .drawer-actions {
    flex-direction: row;
    margin-top: 0;
    width: 100%;
  }
  .drying-tags {
    flex-direction: row;
    flex-wrap: wrap;
    border-left: 0;
    border-top: 1px solid var(--line);
    padding-top: 20px;
  }
  .drying-string { display: none; }
  .dry-tag { flex: 1 1 calc(50% - 8px); }
  .vial-tray { grid-template-columns: 1fr 1fr; }
  .seed-vial:nth-child(2) { border-right: 0; }
}

@media (max-width: 640px) {
  .glassine-stage { padding: 22px 18px 28px; }
  .specimen-grid,
  .profile-grid { grid-template-columns: 1fr; }
  .lid-compartments { padding: 24px 18px; }
  .lid-switch { grid-template-columns: 1fr; }
  .vial-tray { grid-template-columns: 1fr; }
  .seed-vial { border-right: 0; border-bottom: 1px dashed #c4a882; }
  .seed-vial:last-child { border-bottom: 0; }
  .toast { left: 16px; right: 16px; bottom: 16px; max-width: none; }
  .drawer-tabs { flex-direction: column; width: 100%; }
  .drawer-actions { flex-direction: column; }
  .drawer-actions .btn { width: 100%; }
}

/* ── Cart: Florilegium Potting Bench (Appily Twelve) ── */
.page-potting-bench .page-main {
  background: linear-gradient(180deg, var(--mist) 0%, #ebe4d8 100%);
}

.bench-hero {
  position: relative;
  background: linear-gradient(155deg, var(--emerald-deep) 0%, var(--emerald) 50%, #145a42 100%);
  color: var(--mist);
  overflow: hidden;
  padding: 44px 0 0;
}
.bench-soil-splash {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 40% 30% at 15% 90%, rgba(92, 64, 40, 0.25), transparent),
    radial-gradient(ellipse 35% 25% at 85% 85%, rgba(92, 64, 40, 0.2), transparent);
  pointer-events: none;
}
.bench-shelf-deco {
  position: absolute;
  right: 6%;
  top: 24px;
  display: flex;
  gap: 10px;
  opacity: .5;
}
.shelf-pot {
  width: 36px;
  height: 28px;
  border-radius: 0 0 8px 8px;
  background: linear-gradient(180deg, #c4714a, #8b4513);
  border: 2px solid #a0522d;
  position: relative;
}
.shelf-pot::before {
  content: '';
  position: absolute;
  top: -4px;
  left: -3px;
  right: -3px;
  height: 6px;
  border-radius: 3px;
  background: #d4a882;
}
.bench-hero-inner {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-bottom: 36px;
  max-width: 720px;
}
.bench-kicker {
  margin: 0 0 10px;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--pollen);
}
.bench-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  line-height: 1.08;
  margin: 0 0 12px;
}
.bench-hero h1 em {
  font-style: italic;
  color: var(--pollen-pale);
}
.bench-lede {
  margin: 0;
  opacity: .88;
  max-width: 48ch;
  font-size: .92rem;
}
.bench-counter {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 22px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(6px);
}
.counter-num {
  font-family: var(--font-display);
  font-size: 2rem;
  font-weight: 700;
  color: var(--pollen);
  line-height: 1;
}
.counter-label {
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .8;
  margin-top: 4px;
}
.bench-edge {
  height: 12px;
  background: linear-gradient(180deg, #8b7355, #6b5344);
  border-top: 3px solid #c4a882;
  box-shadow: inset 0 4px 8px rgba(0, 0, 0, 0.15);
}

.bench-floor { padding: 36px 0 56px; }

.bench-empty {
  text-align: center;
  max-width: 480px;
  margin: 0 auto;
  padding: 12px 0 24px;
}
.bench-empty-pots {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 28px;
  padding-top: 8px;
}
.empty-pot {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 48px;
}
.empty-pot-rim {
  width: 52px;
  height: 8px;
  border-radius: 4px;
  background: #d4a882;
  margin-bottom: -2px;
  z-index: 1;
}
.empty-pot::after {
  content: '';
  display: block;
  width: 48px;
  height: 36px;
  border-radius: 0 0 10px 10px;
  background: linear-gradient(180deg, #c4714a, #8b4513);
  border: 2px solid #a0522d;
  opacity: .65;
}
.bench-empty h2 {
  font-family: var(--font-display);
  font-size: 1.35rem;
  color: var(--emerald-deep);
  margin: 0 0 10px;
}
.bench-empty p {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: .92rem;
}

.bench-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
  gap: 28px;
  align-items: start;
}

.bench-surface {
  position: relative;
  padding: 28px 24px 24px;
  background: linear-gradient(180deg, #d4c4a8, #c4b498);
  border: 2px solid #a08060;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.bench-grain {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    90deg,
    transparent 0 60px,
    rgba(92, 64, 40, 0.06) 60px 61px
  );
  pointer-events: none;
}
.bench-meta {
  position: relative;
  margin: 0 0 20px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--emerald-deep);
  opacity: .75;
}

.pot-row {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: relative;
}

.bench-pot {
  position: relative;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 0 14px;
  align-items: start;
}
.pot-terracotta {
  grid-row: span 2;
  position: relative;
  width: 48px;
  margin-top: 8px;
  align-self: center;
}
.pot-rim {
  display: block;
  width: 52px;
  height: 8px;
  border-radius: 4px;
  background: #d4a882;
  margin: 0 auto -2px;
  position: relative;
  z-index: 1;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.pot-soil {
  display: block;
  width: 48px;
  height: 40px;
  margin: 0 auto;
  border-radius: 0 0 12px 12px;
  background: linear-gradient(180deg, #c4714a 0%, #8b4513 70%, #5c3d2e 100%);
  border: 2px solid #a0522d;
  box-shadow: inset 0 -6px 12px rgba(0, 0, 0, 0.2);
}
.pot-stake {
  position: absolute;
  left: 38px;
  top: 0;
  width: 3px;
  height: 28px;
  background: linear-gradient(180deg, #8b7355, #6b5344);
  transform: rotate(6deg);
  z-index: 2;
}
.stake-num {
  position: absolute;
  top: -2px;
  left: 50%;
  transform: translateX(-50%) rotate(-6deg);
  font-size: .52rem;
  font-weight: 800;
  letter-spacing: .06em;
  color: var(--emerald-deep);
  background: #f5ebe0;
  padding: 2px 5px;
  border: 1px solid #d4c4a8;
  border-radius: 2px;
  white-space: nowrap;
}

.pot-card {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto auto;
  gap: 14px 16px;
  align-items: center;
  padding: 16px 18px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: 0 8px 24px rgba(11, 61, 46, 0.08);
}
.pot-thumb {
  display: block;
  width: 72px;
  height: 72px;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--mist-2);
}
.pot-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pot-thumb-fallback {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  font-size: 1.6rem;
  color: var(--coral);
  opacity: .5;
}
.pot-copy { min-width: 0; }
.pot-sku {
  display: inline-block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--coral);
  margin-bottom: 4px;
}
.pot-copy h2 {
  font-family: var(--font-display);
  font-size: .98rem;
  line-height: 1.25;
  margin: 0 0 4px;
  color: var(--emerald-deep);
}
.pot-copy h2 a:hover { color: var(--coral); }
.pot-pack {
  margin: 0 0 4px;
  font-size: .82rem;
  color: var(--muted);
}
.pot-unit {
  font-size: .78rem;
  font-weight: 600;
  color: var(--emerald);
}
.pot-qty label {
  display: block;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 6px;
}
.pot-qty input {
  width: 72px;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  font: inherit;
  text-align: center;
  background: var(--mist);
}
.pot-qty input:focus {
  outline: 2px solid rgba(11, 61, 46, 0.2);
  border-color: var(--emerald);
}
.pot-total {
  text-align: right;
  min-width: 72px;
}
.pot-total-label {
  display: block;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 4px;
}
.pot-total strong {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--emerald-deep);
}

.bench-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.chalk-invoice {
  position: relative;
  background: linear-gradient(165deg, #2a4a38, var(--emerald-deep));
  color: var(--mist);
  border-radius: var(--radius-xl);
  padding: 28px 22px 24px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.chalk-frame {
  position: absolute;
  inset: 10px;
  border: 2px dashed rgba(255, 255, 255, 0.12);
  border-radius: var(--radius-lg);
  pointer-events: none;
}
.chalk-wax {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #c44, #8b2942);
  display: grid;
  place-items: center;
  font-size: .55rem;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--pollen-pale);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  transform: rotate(-12deg);
}
.chalk-store {
  margin: 0 0 4px;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--pollen);
  opacity: .85;
}
.chalk-title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  margin: 0 0 4px;
  color: var(--mist);
}
.chalk-date {
  margin: 0 0 18px;
  font-size: .76rem;
  opacity: .7;
}
.chalk-rows {
  margin: 0 0 14px;
}
.chalk-rows div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.15);
  font-size: .84rem;
}
.chalk-rows div:last-child { border-bottom: 0; }
.chalk-rows dt {
  opacity: .75;
  font-weight: 600;
}
.chalk-rows dd {
  margin: 0;
  font-weight: 800;
}
.chalk-grand {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0 16px;
  border-top: 2px solid rgba(242, 193, 78, 0.5);
  margin-bottom: 12px;
}
.chalk-grand span {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.chalk-grand strong {
  font-family: var(--font-display);
  font-size: 1.35rem;
  color: var(--pollen);
}
.chalk-notes {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.chalk-notes li {
  font-size: .74rem;
  opacity: .75;
  padding-left: 14px;
  position: relative;
}
.chalk-notes li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--pollen);
  font-size: .7rem;
}
.chalk-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.chalk-dust {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40px;
  background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.04));
  pointer-events: none;
}
.page-potting-bench .btn-block {
  width: 100%;
  text-align: center;
  justify-content: center;
}

.page-potting-bench .bench-form-actions .btn-outline,
.page-potting-bench .cart-add-more.btn-outline {
  background: var(--white);
  border-color: var(--emerald);
  color: var(--emerald-deep);
  box-shadow: 0 2px 8px rgba(11, 61, 46, 0.08);
}
.page-potting-bench .bench-form-actions .btn-outline:hover,
.page-potting-bench .cart-add-more.btn-outline:hover {
  background: var(--mist-2);
  border-color: var(--emerald-deep);
  color: var(--emerald-deep);
}

.page-potting-bench .chalk-actions .bench-add-more.btn-soft {
  background: rgba(255, 255, 255, 0.14);
  border: 2px solid rgba(242, 193, 78, 0.55);
  color: var(--pollen-pale);
}
.page-potting-bench .chalk-actions .bench-add-more.btn-soft:hover {
  background: rgba(255, 255, 255, 0.22);
  border-color: var(--pollen);
  color: var(--white);
}

@media (max-width: 960px) {
  .bench-layout { grid-template-columns: 1fr; }
  .bench-shelf-deco { display: none; }
  .bench-hero-inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 720px) {
  .pot-card {
    grid-template-columns: 64px 1fr;
    grid-template-rows: auto auto;
  }
  .pot-qty,
  .pot-total {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 8px;
    border-top: 1px dashed var(--line);
  }
  .pot-total { text-align: left; }
  .pot-stake { display: none; }
  .bench-pot { grid-template-columns: 1fr; }
  .pot-terracotta { display: none; }
}
@media (max-width: 480px) {
  .bench-surface { padding: 22px 16px 20px; }
  .pot-card { padding: 14px; gap: 12px; }
  .bench-form-actions { flex-direction: column; }
  .bench-form-actions .btn { width: 100%; text-align: center; }
}

/* ── Orders: Florilegium Specimen Rack (Appily Twelve) ── */
.page-specimen-rack .page-main {
  background: linear-gradient(180deg, var(--mist) 0%, #ebe4d8 100%);
}

.rack-hero {
  position: relative;
  background: linear-gradient(155deg, var(--twilight) 0%, var(--emerald-deep) 45%, var(--emerald) 100%);
  color: var(--mist);
  overflow: hidden;
  padding: 44px 0 0;
}
.rack-brass-bars {
  position: absolute;
  right: 8%;
  top: 20px;
  bottom: 40px;
  display: flex;
  gap: 18px;
  opacity: .35;
}
.rack-brass-bars span {
  width: 6px;
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(180deg, #d4a882, #8b7355, #d4a882);
  box-shadow: inset 0 2px 4px rgba(255, 255, 255, 0.15);
}
.rack-hero-inner {
  position: relative;
  max-width: 640px;
  padding-bottom: 36px;
}
.rack-kicker {
  margin: 0 0 10px;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--pollen);
}
.rack-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  line-height: 1.08;
  margin: 0 0 12px;
}
.rack-hero h1 em {
  font-style: italic;
  color: var(--pollen-pale);
}
.rack-lede {
  margin: 0;
  opacity: .88;
  max-width: 52ch;
  font-size: .92rem;
}
.rack-plinth {
  height: 14px;
  background: linear-gradient(180deg, #6b5344, #4a3728);
  border-top: 2px solid #c4a882;
  box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.2);
}

.rack-body { padding: 36px 0 56px; }
.rack-loading {
  text-align: center;
  max-width: 420px;
  margin: 0 auto 24px;
}

.rack-lock-plate {
  position: relative;
  max-width: 480px;
  margin: 0 auto;
  padding: 40px 28px 32px;
  text-align: center;
  background: linear-gradient(180deg, #faf6f0, #e8dcc8);
  border: 2px solid #c4a882;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}
.lock-bolt {
  display: block;
  width: 64px;
  height: 64px;
  margin: 0 auto 12px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #d4a882, #8b7355);
  border: 3px solid #6b5344;
  box-shadow: inset 0 2px 6px rgba(255, 255, 255, 0.25), 0 6px 16px rgba(74, 55, 40, 0.3);
}
.lock-keyhole {
  position: absolute;
  top: 58px;
  left: 50%;
  transform: translateX(-50%);
  width: 10px;
  height: 14px;
  border-radius: 50% 50% 40% 40%;
  background: var(--emerald-deep);
  box-shadow: 0 2px 0 #4a3728;
}
.rack-lock-plate h2 {
  font-family: var(--font-display);
  font-size: 1.3rem;
  color: var(--emerald-deep);
  margin: 8px 0 10px;
}
.rack-lock-plate p {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: .92rem;
}
.rack-guest,
.rack-logged-in { width: 100%; }
.rack-guest-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.orders-view-all { margin-left: auto; }

.rack-gallery {
  position: relative;
  padding: 40px 32px 32px;
  background: linear-gradient(180deg, #f5f0e8, #ebe4d8);
  border: 2px solid #c4a882;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.rack-upright {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 10px;
  background: linear-gradient(180deg, #d4a882, #8b7355, #d4a882);
  box-shadow: inset 0 2px 6px rgba(255, 255, 255, 0.2);
}
.rack-upright-left { left: 16px; }
.rack-upright-right { right: 16px; }
.rack-gallery-label {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--emerald);
  background: #f5f0e8;
  padding: 4px 14px;
  border-radius: var(--radius-round);
  border: 1px dashed #c4a882;
}

.rack-sleeves {
  display: flex;
  flex-direction: column;
  gap: 22px;
  margin-top: 24px;
  padding: 0 12px;
}

.rack-sleeve {
  position: relative;
  margin-left: var(--sleeve-offset, 0px);
  padding: 28px 24px 22px 32px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(250, 248, 244, 0.95));
  border: 1px solid #d4c4a8;
  border-radius: 2px 2px var(--radius-lg) var(--radius-lg);
  box-shadow: 0 10px 28px rgba(11, 61, 46, 0.08);
  transition: transform .2s, box-shadow .2s;
}
.rack-sleeve::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 14px;
  background: linear-gradient(180deg, #ebe3d6, #f5ebe0);
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  opacity: .85;
}
.rack-sleeve:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-soft);
}
.sleeve-clip {
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 18px;
  height: 14px;
  background: linear-gradient(180deg, #d4a882, #a08060);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 -2px 6px rgba(0, 0, 0, 0.15);
  z-index: 2;
}
.sleeve-clip::after {
  content: '';
  position: absolute;
  bottom: -8px;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  height: 10px;
  background: #8b7355;
}
.sleeve-clip-tag {
  position: absolute;
  top: 8px;
  right: 16px;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--coral);
}
.rack-sleeve.tone-emerald { border-left: 4px solid var(--emerald); }
.rack-sleeve.tone-coral { border-left: 4px solid var(--coral); }
.rack-sleeve.tone-pollen { border-left: 4px solid var(--pollen); }
.rack-sleeve.tone-twilight { border-left: 4px solid var(--twilight); }
.rack-sleeve.tone-mist { border-left: 4px solid #6ba88a; }

.sleeve-wax {
  position: absolute;
  top: 18px;
  right: 72px;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: .52rem;
  font-weight: 800;
  letter-spacing: .04em;
  transform: rotate(-10deg);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.bloom-placed {
  background: var(--mist-2);
  color: var(--emerald-deep);
  border: 2px solid var(--emerald);
}
.bloom-packed {
  background: var(--pollen-pale);
  color: #8b6914;
  border: 2px solid var(--pollen);
}
.bloom-shipped {
  background: #e0ecf4;
  color: var(--twilight);
  border: 2px solid #7eb8d4;
}
.bloom-delivered {
  background: #e8f5ec;
  color: #166534;
  border: 2px solid #6ba88a;
}
.bloom-cancelled {
  background: #fef2f2;
  color: #991b1b;
  border: 2px solid #fecaca;
}

.sleeve-label {
  display: block;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 2px;
}
.sleeve-head {
  margin-bottom: 10px;
  padding-right: 120px;
  padding-top: 8px;
}
.sleeve-ref strong {
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--emerald-deep);
  word-break: break-all;
}
.sleeve-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 20px;
  margin-bottom: 10px;
  font-size: .82rem;
  color: var(--emerald-deep);
}
.sleeve-meta > span { font-weight: 600; }
.sleeve-items {
  margin: 0 0 14px;
  padding: 10px 12px;
  background: var(--mist);
  border-radius: var(--radius);
  border: 1px dashed #d4c4a8;
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.45;
}
.sleeve-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding-top: 14px;
  border-top: 1px dashed #d4c4a8;
}
.sleeve-total strong {
  font-family: var(--font-display);
  font-size: 1.1rem;
  color: var(--coral);
}
.sleeve-status-text {
  font-size: .76rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: var(--radius-round);
  margin-left: auto;
}
.sleeve-status-text.bloom-placed { background: var(--mist-2); color: var(--emerald-deep); }
.sleeve-status-text.bloom-packed { background: var(--pollen-pale); color: #8b6914; }
.sleeve-status-text.bloom-shipped { background: #e0ecf4; color: var(--twilight); }
.sleeve-status-text.bloom-delivered { background: #e8f5ec; color: #166534; }
.sleeve-status-text.bloom-cancelled { background: #fef2f2; color: #991b1b; }
.rack-track-btn { flex-shrink: 0; }
.sleeve-fold {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, transparent 50%, rgba(11, 61, 46, 0.06) 50%);
  pointer-events: none;
}

.rack-empty {
  text-align: center;
  padding: 32px 20px 12px;
}
.rack-empty-hooks {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-bottom: 28px;
  padding-top: 12px;
}
.empty-hook {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 40px;
  height: 48px;
  border-left: 2px dashed #c4a882;
  opacity: .6;
}
.empty-clip {
  width: 16px;
  height: 10px;
  background: #d4c4a8;
  border-radius: 2px 2px 0 0;
  margin-bottom: 4px;
}
.rack-empty h2 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: var(--emerald-deep);
  margin: 0 0 10px;
}
.rack-empty p {
  margin: 0 0 18px;
  color: var(--muted);
  font-size: .92rem;
}

.page-specimen-rack .order-row { display: none; }

@media (max-width: 960px) {
  .rack-brass-bars { display: none; }
}
@media (max-width: 720px) {
  .rack-gallery { padding: 36px 16px 24px; }
  .rack-upright { display: none; }
  .rack-sleeve { margin-left: 0 !important; }
  .sleeve-head { padding-right: 0; }
  .sleeve-wax {
    position: static;
    display: inline-grid;
    margin-bottom: 10px;
    transform: none;
  }
  .sleeve-clip-tag { position: static; display: block; margin-bottom: 8px; text-align: left; }
  .sleeve-foot { flex-direction: column; align-items: stretch; }
  .sleeve-status-text { margin-left: 0; align-self: flex-start; }
  .rack-track-btn { width: 100%; text-align: center; }
}
@media (max-width: 480px) {
  .rack-lock-plate { padding: 32px 20px 24px; }
  .rack-guest-actions { flex-direction: column; }
  .rack-guest-actions .btn { width: 100%; }
}

/* ── Checkout: Florilegium Bloom Ledger (Appily Twelve) ── */
.page-bloom-ledger .page-main {
  background: linear-gradient(180deg, var(--mist) 0%, #ebe4d8 100%);
}

.ledger-hero {
  position: relative;
  background: linear-gradient(155deg, var(--twilight) 0%, var(--emerald-deep) 50%, var(--emerald) 100%);
  color: var(--mist);
  overflow: hidden;
  padding: 0 0 0;
}
.ledger-brass-corners {
  position: absolute;
  inset: 16px 24px auto;
  height: 48px;
  pointer-events: none;
}
.corner {
  position: absolute;
  width: 28px;
  height: 28px;
  border: 3px solid rgba(212, 168, 130, 0.45);
}
.corner-tl { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.corner-tr { top: 0; right: 0; border-left: 0; border-bottom: 0; }
.ledger-hero-inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding: 44px 0 32px;
}
.ledger-kicker {
  margin: 0 0 10px;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--pollen);
}
.ledger-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  line-height: 1.08;
  margin: 0 0 12px;
}
.ledger-hero h1 em {
  font-style: italic;
  color: var(--pollen-pale);
}
.ledger-lede {
  margin: 0;
  opacity: .88;
  max-width: 48ch;
  font-size: .92rem;
}
.ledger-dispatch-chip {
  flex-shrink: 0;
  padding: 16px 20px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: var(--radius-lg);
  text-align: center;
  min-width: 150px;
  backdrop-filter: blur(6px);
}
.chip-label {
  display: block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--pollen-pale);
  margin-bottom: 6px;
}
.chip-code {
  display: block;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: .06em;
  color: var(--pollen);
}
.chip-qty {
  display: block;
  margin-top: 6px;
  font-size: .78rem;
  opacity: .85;
}
.ledger-spine-bar {
  height: 12px;
  background: linear-gradient(90deg, #8b7355, #d4a882, #8b7355);
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.15);
}

.ledger-body { padding: 32px 0 56px; }

.petal-trail {
  list-style: none;
  margin: 0 0 28px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  flex-wrap: wrap;
}
.petal-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.petal-mark {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  background: var(--mist-2);
  border: 2px solid var(--line);
}
.petal-mark span {
  transform: rotate(45deg);
  font-size: .75rem;
  font-weight: 800;
  color: var(--muted);
}
.petal-step.is-active .petal-mark {
  background: linear-gradient(135deg, var(--pollen-pale), var(--coral-pale));
  border-color: var(--coral);
  box-shadow: 0 4px 14px rgba(232, 116, 97, 0.25);
}
.petal-step.is-active .petal-mark span {
  color: var(--emerald-deep);
}
.petal-label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
}
.petal-step.is-active .petal-label {
  color: var(--emerald-deep);
}
.petal-vine {
  width: 40px;
  height: 3px;
  background: linear-gradient(90deg, var(--line), var(--pollen-pale), var(--line));
  border-radius: var(--radius-round);
  margin: 0 6px;
  align-self: flex-start;
  margin-top: 16px;
}

.ledger-spread {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
  gap: 28px;
  align-items: start;
}

.ledger-form-panel {
  position: relative;
  background: linear-gradient(180deg, #faf8f4, #f5f0e8);
  border: 1px solid #d4c4a8;
  border-radius: var(--radius-xl);
  padding: 28px 28px 24px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.ledger-ruled {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent 0 27px,
    rgba(11, 61, 46, 0.05) 27px 28px
  );
  pointer-events: none;
}
.ledger-form-head {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 20px;
}
.ledger-wax-mini {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #c44, #8b2942);
  color: var(--pollen-pale);
  font-family: var(--font-display);
  font-size: .72rem;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(139, 41, 66, 0.3);
  transform: rotate(-8deg);
}
.ledger-form-code {
  margin: 0 0 4px;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--coral);
}
.ledger-form-head h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.35rem;
  color: var(--emerald-deep);
}
.ledger-error {
  position: relative;
  margin-bottom: 18px;
}

.ledger-form fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}
.ledger-section {
  margin-bottom: 20px;
  position: relative;
}
.ledger-section legend {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-size: .95rem;
  font-weight: 700;
  color: var(--emerald-deep);
  margin-bottom: 14px;
  padding: 0;
}
.ledger-ribbon {
  display: grid;
  place-items: center;
  width: 28px;
  height: 32px;
  font-size: .72rem;
  font-weight: 800;
  color: var(--mist);
  border-radius: 0 0 var(--radius) var(--radius);
  box-shadow: 0 4px 10px rgba(11, 61, 46, 0.2);
}
.ledger-ribbon-i { background: var(--emerald); }
.ledger-ribbon-ii { background: var(--coral); }
.ledger-ribbon-iii { background: var(--pollen); color: var(--emerald-deep); }

.ledger-fields {
  display: grid;
  gap: 14px;
}
.ledger-fields-duo { grid-template-columns: 1fr 1fr; }
.ledger-fields-route { grid-template-columns: 1fr 1fr; }
.ledger-field-wide { grid-column: 1 / -1; }
.ledger-label {
  display: block;
  font-size: .78rem;
  font-weight: 700;
  color: var(--emerald-deep);
  margin-bottom: 6px;
}
.ledger-field input,
.ledger-field textarea,
.ledger-field select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d4c4a8;
  border-radius: var(--radius);
  font: inherit;
  background: var(--white);
}
.ledger-field input:focus,
.ledger-field textarea:focus,
.ledger-field select:focus {
  outline: 2px solid rgba(11, 61, 46, 0.2);
  border-color: var(--emerald);
}
.ledger-field input[readonly] {
  background: var(--mist);
}
.ledger-field textarea {
  min-height: 88px;
  resize: vertical;
}
.ledger-hint {
  display: block;
  margin-top: 6px;
  font-size: .74rem;
  color: var(--muted);
}

.ledger-divider {
  height: 8px;
  margin: 4px 0 20px;
  background: repeating-linear-gradient(90deg, var(--pollen-pale) 0 10px, transparent 10px 18px);
  opacity: .8;
}

.ledger-pay-single {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 14px 16px;
  background: var(--mist);
  border: 1px solid rgba(11, 61, 46, 0.15);
  border-radius: var(--radius-lg);
  font-weight: 600;
  color: var(--emerald-deep);
}
.wax-seal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}
.wax-option {
  cursor: pointer;
}
.wax-option input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.wax-option-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 16px 12px;
  border: 1px solid #d4c4a8;
  border-radius: var(--radius-lg);
  background: var(--white);
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
.wax-dot {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #f5d4cc, #e87461);
  border: 2px solid rgba(232, 116, 97, 0.35);
  box-shadow: inset 0 2px 6px rgba(255, 255, 255, 0.5);
}
.wax-dot-set {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
}
.wax-option-name {
  font-size: .82rem;
  font-weight: 700;
  text-align: center;
  color: var(--emerald-deep);
}
.wax-option input:checked + .wax-option-body {
  border-color: var(--emerald);
  box-shadow: 0 0 0 2px rgba(11, 61, 46, 0.15);
  transform: translateY(-2px);
}
.wax-option input:checked + .wax-option-body .wax-dot {
  background: radial-gradient(circle at 35% 30%, var(--pollen-pale), var(--pollen));
  border-color: var(--pollen);
}

.ledger-foot {
  margin-top: 8px;
  position: relative;
}
.ledger-policy {
  margin: 0 0 16px;
  font-size: .78rem;
  color: var(--muted);
  line-height: 1.5;
}
.ledger-policy a {
  color: var(--emerald);
  text-decoration: underline;
}
.ledger-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.seed-tally-board {
  position: relative;
  background: linear-gradient(180deg, #d4c4a8, #c4b498);
  border: 2px solid #a08060;
  border-radius: var(--radius-xl);
  padding: 24px 20px 22px;
  box-shadow: var(--shadow);
  overflow: hidden;
}
.tally-peg-rail {
  position: absolute;
  top: 12px;
  left: 16px;
  right: 16px;
  height: 6px;
  background: linear-gradient(90deg, #8b7355, #d4a882, #8b7355);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}
.tally-head {
  margin-bottom: 16px;
  padding-top: 12px;
}
.tally-brand {
  display: block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--emerald-deep);
  opacity: .75;
  margin-bottom: 4px;
}
.tally-head h2 {
  font-family: var(--font-display);
  font-size: 1.15rem;
  margin: 0 0 4px;
  color: var(--emerald-deep);
}
.tally-head p {
  margin: 0;
  font-size: .78rem;
  color: var(--muted);
}
.tally-lines {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 280px;
  overflow-y: auto;
}
.tally-line {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  background: var(--white);
  border-radius: var(--radius);
  border: 1px dashed #d4c4a8;
}
.tally-thumb {
  width: 44px;
  height: 44px;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--mist);
}
.tally-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tally-thumb-empty {
  display: grid;
  place-items: center;
  font-size: 1.2rem;
  color: var(--coral);
  opacity: .5;
}
.tally-info {
  min-width: 0;
}
.tally-info strong {
  display: block;
  font-size: .82rem;
  line-height: 1.25;
  color: var(--emerald-deep);
}
.tally-info span {
  font-size: .72rem;
  color: var(--muted);
}
.tally-price {
  font-weight: 800;
  font-size: .88rem;
  color: var(--emerald-deep);
  white-space: nowrap;
}
.tally-totals {
  margin: 0 0 12px;
}
.tally-totals div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(11, 61, 46, 0.15);
  font-size: .82rem;
}
.tally-totals div:last-child {
  border-bottom: 0;
}
.tally-totals dt {
  color: var(--emerald-deep);
  font-weight: 600;
  opacity: .8;
}
.tally-totals dd {
  margin: 0;
  font-weight: 800;
  color: var(--emerald-deep);
}
.tally-grand {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 12px 0 14px;
  border-top: 2px solid var(--emerald-deep);
  margin-bottom: 10px;
}
.tally-grand span {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--emerald-deep);
}
.tally-grand strong {
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: var(--coral);
}
.tally-notes {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.tally-notes li {
  font-size: .72rem;
  color: var(--emerald-deep);
  opacity: .75;
  padding-left: 12px;
  position: relative;
}
.tally-notes li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .55em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--coral);
}
.tally-ready {
  position: absolute;
  bottom: 16px;
  right: 14px;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .12em;
  color: var(--emerald);
  border: 2px solid var(--emerald);
  padding: 4px 10px;
  border-radius: var(--radius);
  transform: rotate(-12deg);
  opacity: .65;
  background: var(--white);
}

@media (max-width: 960px) {
  .ledger-spread { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .ledger-fields-duo,
  .ledger-fields-route { grid-template-columns: 1fr; }
  .ledger-hero-inner { flex-direction: column; }
  .ledger-dispatch-chip { width: 100%; }
  .petal-vine { display: none; }
  .petal-trail { gap: 16px; }
  .ledger-actions { flex-direction: column; }
  .ledger-actions .btn { width: 100%; text-align: center; }
}
@media (max-width: 480px) {
  .ledger-form-panel { padding: 22px 18px 20px; }
  .seed-tally-board { padding: 20px 16px 18px; }
}
/* ── Order Status: Florilegium Pollen Compass (Appily Twelve) ── */
.page-pollen-compass .page-main {
  background: linear-gradient(180deg, var(--mist) 0%, #e8e4dc 100%);
}

.compass-observatory {
  position: relative;
  background: linear-gradient(165deg, #1a1528 0%, var(--twilight) 42%, var(--emerald-deep) 100%);
  color: var(--mist);
  overflow: hidden;
  padding: 40px 0 0;
}
.observatory-stars {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 12% 22%, rgba(242, 193, 78, 0.35) 0 1px, transparent 2px),
    radial-gradient(circle at 78% 18%, rgba(255, 255, 255, 0.4) 0 1px, transparent 2px),
    radial-gradient(circle at 45% 35%, rgba(242, 193, 78, 0.25) 0 1px, transparent 2px),
    radial-gradient(circle at 88% 55%, rgba(255, 255, 255, 0.3) 0 1px, transparent 2px),
    radial-gradient(circle at 22% 68%, rgba(242, 193, 78, 0.2) 0 1px, transparent 2px);
  pointer-events: none;
  opacity: .7;
}
.compass-hero-inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-bottom: 32px;
}
.compass-kicker {
  margin: 0 0 10px;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--pollen);
}
.compass-observatory h1 {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  line-height: 1.08;
  margin: 0 0 12px;
}
.compass-observatory h1 em {
  font-style: italic;
  color: var(--pollen-pale);
}
.compass-lede {
  margin: 0;
  opacity: .88;
  max-width: 52ch;
  font-size: .92rem;
}
.compass-bearing-badge {
  flex-shrink: 0;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.08);
  border: 2px solid rgba(201, 162, 39, 0.5);
  border-radius: 50%;
  width: 100px;
  height: 100px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.bearing-badge-label {
  display: block;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pollen-pale);
  margin-bottom: 2px;
}
.bearing-badge-code {
  font-family: var(--font-display);
  font-size: .95rem;
  font-weight: 800;
  color: var(--pollen);
}
.compass-brass-sill {
  height: 6px;
  background: linear-gradient(90deg, #8b7355, #c9a227, #8b7355);
  box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3);
}

.compass-chart-floor { padding: 32px 0 56px; }

.dispatch-manifest {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: start;
  padding: 24px 28px;
  margin-bottom: 28px;
  background: linear-gradient(180deg, #fffef8, #f5f0e4);
  border: 1px solid #d4c4a8;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.dispatch-manifest::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--emerald), var(--pollen), var(--coral));
}
.dispatch-manifest.tone-bloom::before { background: linear-gradient(90deg, #166534, var(--pollen), #166534); }
.dispatch-manifest.tone-route::before { background: linear-gradient(90deg, var(--twilight), #7eb8d4, var(--twilight)); }
.dispatch-manifest.tone-pack::before { background: linear-gradient(90deg, var(--pollen), var(--coral-pale), var(--pollen)); }
.dispatch-manifest.tone-void::before { background: linear-gradient(90deg, #991b1b, #fecaca, #991b1b); }
.dispatch-manifest.tone-sow::before { background: linear-gradient(90deg, var(--emerald), var(--mist-2), var(--emerald)); }

.manifest-wax {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #c44, #8b2942);
  display: grid;
  place-items: center;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--pollen-pale);
  box-shadow: 0 6px 16px rgba(139, 41, 66, 0.35);
  flex-shrink: 0;
}
.manifest-kicker {
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--coral);
  margin: 0 0 6px;
}
.manifest-order-id {
  font-family: var(--font-display);
  font-size: 1.35rem;
  margin: 0 0 10px;
  color: var(--emerald-deep);
  word-break: break-all;
}
.manifest-status-pill {
  display: inline-block;
  font-size: .76rem;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: var(--radius-round);
  background: var(--emerald);
  color: var(--mist);
  margin-bottom: 16px;
}
.manifest-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 20px;
  margin: 0;
}
.manifest-meta div { min-width: 0; }
.manifest-meta dt {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 2px;
}
.manifest-meta dd {
  margin: 0;
  font-weight: 700;
  color: var(--emerald-deep);
}

.compass-chamber-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(260px, 300px);
  gap: 24px;
  align-items: start;
}

.rose-progress-panel,
.vial-manifest-tray,
.cartographer-desk {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  padding: 22px 20px;
  box-shadow: var(--shadow-soft);
}
.rose-panel-title {
  font-family: var(--font-display);
  font-size: 1rem;
  margin: 0 0 18px;
  color: var(--emerald-deep);
}

.compass-cancelled {
  padding: 20px;
  background: #fef2f2;
  border: 1px dashed #fecaca;
  border-radius: var(--radius-lg);
  text-align: center;
  margin-bottom: 18px;
}
.compass-void-stamp {
  display: inline-block;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  padding: 6px 14px;
  border: 2px solid #991b1b;
  color: #991b1b;
  border-radius: var(--radius);
  transform: rotate(-6deg);
  margin-bottom: 10px;
}
.compass-cancelled p {
  margin: 0;
  color: #991b1b;
  font-size: .88rem;
}

.pollen-compass-rose {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: center;
  margin-bottom: 20px;
}
.rose-dial {
  position: relative;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 35%, #f5f0e4, #e8e0d4);
  border: 3px solid #c9a227;
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.1), 0 6px 20px rgba(11, 61, 46, 0.12);
  flex-shrink: 0;
}
.rose-cardinal {
  position: absolute;
  font-size: .72rem;
  font-weight: 800;
  color: var(--emerald-deep);
  letter-spacing: .06em;
}
.rose-n { top: 8px; left: 50%; transform: translateX(-50%); color: var(--coral); }
.rose-e { right: 10px; top: 50%; transform: translateY(-50%); }
.rose-s { bottom: 8px; left: 50%; transform: translateX(-50%); }
.rose-w { left: 10px; top: 50%; transform: translateY(-50%); }
.rose-hub {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  margin: -7px 0 0 -7px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #c9a227, #8b7355);
  border: 2px solid #6b5344;
  z-index: 2;
}
.rose-needle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 52px;
  margin: -48px 0 0 -2px;
  background: linear-gradient(180deg, var(--coral), #8b2942);
  border-radius: 2px;
  transform-origin: 50% 92%;
  transform: rotate(calc((var(--compass-stage, 1) - 1) * 90deg - 45deg));
  transition: transform .4s ease;
  z-index: 1;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}
.rose-needle::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  width: 0;
  height: 0;
  margin-left: -6px;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 10px solid #8b2942;
}

.bearing-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bearing-node {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  border-radius: var(--radius);
  border-left: 3px solid var(--line);
  opacity: .55;
  transition: opacity .2s, border-color .2s, background .2s;
}
.bearing-node.is-done,
.bearing-node.is-active {
  opacity: 1;
  border-left-color: var(--pollen);
  background: var(--mist);
}
.bearing-node.is-active {
  border-left-color: var(--coral);
  box-shadow: 0 2px 10px rgba(232, 116, 97, 0.12);
}
.bearing-mark {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--mist-2);
  border: 2px solid var(--line);
  font-size: .78rem;
  font-weight: 800;
  color: var(--emerald-deep);
}
.bearing-node.is-done .bearing-mark,
.bearing-node.is-active .bearing-mark {
  background: linear-gradient(135deg, var(--pollen-pale), var(--coral-pale));
  border-color: var(--coral);
}
.bearing-copy strong {
  display: block;
  font-size: .82rem;
  color: var(--emerald-deep);
  line-height: 1.2;
}
.bearing-copy span {
  font-size: .7rem;
  color: var(--muted);
}

.plot-coordinates-card {
  padding: 14px 16px;
  background: var(--mist);
  border: 1px solid rgba(11, 61, 46, 0.12);
  border-radius: var(--radius-lg);
}
.plot-coordinates-card h4 {
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--emerald);
  margin: 0 0 8px;
}
.plot-coordinates-card p {
  margin: 0 0 4px;
  font-size: .84rem;
  color: var(--emerald-deep);
  line-height: 1.45;
}
.plot-phone {
  font-weight: 700;
  margin-top: 8px !important;
}

.vial-tray-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 16px;
}
.tray-brass-lip {
  flex-shrink: 0;
  width: 28px;
  height: 8px;
  background: linear-gradient(180deg, #c9a227, #8b7355);
  border-radius: 2px 2px 0 0;
  margin-top: 6px;
}
.vial-tray-head h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  margin: 0 0 4px;
  color: var(--emerald-deep);
}
.vial-tray-head p {
  margin: 0;
  font-size: .78rem;
  color: var(--muted);
}
.vial-manifest-list {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 320px;
  overflow-y: auto;
}
.vial-manifest-row {
  display: grid;
  grid-template-columns: 40px 28px minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  background: var(--mist);
  border-radius: var(--radius);
  border-left: 3px solid var(--emerald);
}
.vial-thumb {
  width: 40px;
  height: 40px;
  border-radius: var(--radius);
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--white);
}
.vial-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.vial-thumb-empty {
  display: grid;
  place-items: center;
  font-size: 1rem;
  color: var(--coral);
  opacity: .5;
}
.vial-num {
  font-size: .62rem;
  font-weight: 800;
  color: var(--coral);
}
.vial-name {
  font-size: .82rem;
  font-weight: 600;
  color: var(--emerald-deep);
  min-width: 0;
  line-height: 1.25;
}
.vial-qty {
  font-size: .72rem;
  color: var(--muted);
  white-space: nowrap;
}
.vial-amt {
  font-weight: 800;
  font-size: .84rem;
  color: var(--emerald-deep);
  white-space: nowrap;
}
.vial-manifest-total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-top: 12px;
  border-top: 2px solid var(--emerald-deep);
}
.vial-manifest-total span {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--emerald-deep);
}
.vial-manifest-total strong {
  font-family: var(--font-display);
  font-size: 1.2rem;
  color: var(--coral);
}

.cartographer-desk {
  position: relative;
  padding: 0;
  overflow: hidden;
}
.cartographer-frame {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
.frame-corner {
  position: absolute;
  width: 20px;
  height: 20px;
  border: 2px solid rgba(201, 162, 39, 0.45);
}
.frame-corner.tl { top: 10px; left: 10px; border-right: 0; border-bottom: 0; }
.frame-corner.br { bottom: 10px; right: 10px; border-left: 0; border-top: 0; }
.cartographer-inner {
  position: relative;
  padding: 22px 24px;
  background: linear-gradient(180deg, var(--white), var(--mist));
}
.cartographer-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
}
.cartographer-badge {
  flex-shrink: 0;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .1em;
  padding: 6px 8px;
  background: var(--twilight);
  color: var(--pollen-pale);
  border-radius: var(--radius);
}
.cartographer-head h3 {
  font-family: var(--font-display);
  font-size: 1rem;
  margin: 0 0 4px;
  color: var(--emerald-deep);
}
.cartographer-head p {
  margin: 0;
  font-size: .78rem;
  color: var(--muted);
}
.cartographer-field {
  display: block;
  margin-bottom: 14px;
}
.cartographer-label {
  display: block;
  font-size: .76rem;
  font-weight: 700;
  color: var(--emerald-deep);
  margin-bottom: 6px;
}
.cartographer-field input,
.cartographer-field select,
.cartographer-field textarea {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #d4c4a8;
  border-radius: var(--radius);
  font: inherit;
  background: var(--white);
}
.cartographer-field input:focus,
.cartographer-field select:focus,
.cartographer-field textarea:focus {
  outline: 2px solid rgba(11, 61, 46, 0.2);
  border-color: var(--emerald);
}
.cartographer-field textarea {
  min-height: 88px;
  resize: vertical;
}
.cartographer-submit { width: 100%; }
.cartographer-filings {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px dashed var(--line);
}
.cartographer-filings h4 {
  font-size: .82rem;
  margin: 0 0 12px;
  color: var(--emerald-deep);
}
.cartographer-filing-item {
  padding: 10px 0;
  border-bottom: 1px dashed var(--line);
}
.cartographer-filing-item:last-child { border-bottom: 0; }
.cartographer-filing-item strong {
  display: block;
  font-size: .82rem;
  color: var(--emerald-deep);
  margin-bottom: 4px;
}
.cartographer-filing-item p {
  margin: 0 0 4px;
  font-size: .78rem;
  color: var(--muted);
}
.cartographer-filing-item time {
  font-size: .72rem;
  color: var(--muted);
}

.compass-foot-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.page-pollen-compass .compass-foot-nav .btn-outline,
.page-compass-lost .compass-lost-actions .btn-soft {
  background: var(--white);
  border-color: var(--emerald);
  color: var(--emerald-deep);
  box-shadow: 0 2px 8px rgba(11, 61, 46, 0.08);
}
.page-pollen-compass .compass-foot-nav .btn-outline:hover,
.page-compass-lost .compass-lost-actions .btn-soft:hover {
  background: var(--mist-2);
  border-color: var(--emerald-deep);
  color: var(--emerald-deep);
}

.page-pollen-compass .compass-foot-nav .btn-soft {
  background: var(--pollen-pale);
  border-color: rgba(11, 61, 46, 0.18);
  color: var(--emerald-deep);
}

.page-compass-lost .page-main { background: var(--mist); }
.compass-lost {
  padding: 56px 0 72px;
  text-align: center;
}
.lost-compass-dial {
  position: relative;
  width: 100px;
  height: 100px;
  margin: 0 auto 28px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 35%, #f5f0e4, #e8e0d4);
  border: 3px solid #d4c4a8;
}
.lost-ring {
  position: absolute;
  inset: 12px;
  border: 1px dashed rgba(11, 61, 46, 0.2);
  border-radius: 50%;
}
.lost-needle {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 3px;
  height: 36px;
  margin: -32px 0 0 -1.5px;
  background: #c4b498;
  transform-origin: 50% 90%;
  transform: rotate(127deg);
  opacity: .5;
}
.compass-lost-wrap {
  max-width: 480px;
  margin: 0 auto;
}
.compass-lost h1 {
  font-family: var(--font-display);
  font-size: 1.45rem;
  color: var(--emerald-deep);
  margin: 0 0 12px;
}
.compass-lost p {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: .92rem;
}
.compass-lost-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}

@media (max-width: 1024px) {
  .compass-chamber-grid { grid-template-columns: 1fr 1fr; }
  .cartographer-desk { grid-column: 1 / -1; }
}
@media (max-width: 720px) {
  .compass-chamber-grid { grid-template-columns: 1fr; }
  .dispatch-manifest { grid-template-columns: 1fr; }
  .manifest-wax { width: 48px; height: 48px; }
  .manifest-meta { grid-template-columns: 1fr; }
  .compass-hero-inner { flex-direction: column; }
  .pollen-compass-rose { grid-template-columns: 1fr; justify-items: center; }
  .rose-dial { margin: 0 auto; }
  .bearing-legend { width: 100%; }
  .vial-manifest-row { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .vial-num { display: none; }
  .vial-qty { grid-column: 2; }
  .vial-amt { grid-column: 3; grid-row: 1 / 3; align-self: center; }
}
@media (max-width: 480px) {
  .compass-foot-nav { flex-direction: column; }
  .compass-foot-nav .btn { width: 100%; }
  .compass-lost-actions .btn { width: 100%; }
}
/* ── Product: Florilegium Wardian Case (Appily Twelve) ── */
.page-wardian-case .page-main {
  background: linear-gradient(180deg, var(--mist) 0%, #ebe4d8 100%);
}

.wardian-hero {
  position: relative;
  background: linear-gradient(155deg, #3d2e1f 0%, #5c4a32 42%, var(--emerald-deep) 100%);
  color: var(--mist);
  overflow: hidden;
  padding: 28px 0 0;
}
.wardian-haze {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 15% 90%, rgba(242, 193, 78, 0.12), transparent 45%),
    radial-gradient(ellipse at 85% 15%, rgba(107, 168, 138, 0.1), transparent 40%);
  pointer-events: none;
}
.wardian-hero-inner { position: relative; padding-bottom: 24px; }

.garden-path-trail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  margin-bottom: 12px;
}
.garden-path-trail a {
  color: var(--pollen-pale);
  opacity: .88;
}
.garden-path-trail a:hover {
  opacity: 1;
  text-decoration: underline;
}
.path-stake {
  width: 3px;
  height: 12px;
  background: linear-gradient(180deg, var(--pollen), #8b7355);
  border-radius: 1px;
  transform: rotate(8deg);
}
.path-current {
  opacity: .65;
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wardian-kicker {
  margin: 0;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--pollen);
}
.wardian-brass-ridge {
  height: 6px;
  background: linear-gradient(90deg, #8b7355, var(--pollen), #c9a227, var(--pollen), #8b7355);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.25);
}

.wardian-chamber { padding: 36px 0 48px; }
.wardian-stage-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 32px;
  align-items: start;
}

/* Wardian glass case */
.wardian-case {
  position: relative;
  padding: 24px 22px 22px;
  background: linear-gradient(180deg, #f0ebe3, var(--mist));
  border: 1px solid #d4c4a8;
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
}
.case-brass-frame {
  position: relative;
  padding: 16px;
  background: linear-gradient(145deg, #2a2118, #4a3c2a);
  border-radius: var(--radius-lg);
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.35);
}
.brass-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border: 3px solid #c9a227;
  z-index: 3;
  pointer-events: none;
}
.brass-corner.tl { top: 8px; left: 8px; border-right: 0; border-bottom: 0; border-radius: 4px 0 0 0; }
.brass-corner.tr { top: 8px; right: 8px; border-left: 0; border-bottom: 0; border-radius: 0 4px 0 0; }
.brass-corner.bl { bottom: 52px; left: 8px; border-right: 0; border-top: 0; border-radius: 0 0 0 4px; }
.brass-corner.br { bottom: 52px; right: 8px; border-left: 0; border-top: 0; border-radius: 0 0 4px 0; }

.case-glass-lid {
  position: relative;
  padding: 18px;
  background: rgba(255, 255, 255, 0.35);
  border: 2px solid rgba(201, 162, 39, 0.45);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(6px);
  overflow: hidden;
  margin-bottom: 12px;
}
.glass-sheen {
  position: absolute;
  background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.55), transparent);
  opacity: .45;
  z-index: 2;
  pointer-events: none;
}
.glass-sheen-1 { left: 22%; top: 0; bottom: 0; width: 2px; transform: rotate(3deg); }
.glass-sheen-2 { right: 28%; top: 0; bottom: 0; width: 3px; transform: rotate(-2deg); }

.humidity-dial {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid rgba(201, 162, 39, 0.6);
  background: radial-gradient(circle at 40% 35%, #fff, #e8e0d4);
  z-index: 3;
  display: grid;
  place-items: center;
}
.dial-needle {
  width: 2px;
  height: 10px;
  background: var(--emerald);
  border-radius: 1px;
  transform: rotate(-35deg);
  transform-origin: bottom center;
  margin-top: -4px;
}

.case-specimen {
  margin: 0;
  position: relative;
  z-index: 1;
}
.case-specimen img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: var(--radius);
  background: var(--mist-2);
  border: 1px solid rgba(11, 61, 46, 0.12);
}

.case-base-plate {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: linear-gradient(180deg, #6b5344, #4a3c2a);
  color: var(--pollen-pale);
  border-radius: var(--radius);
  border: 1px solid #8b7355;
}
.plate-registry {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.plate-sku {
  font-family: var(--font-display);
  font-size: .88rem;
  font-weight: 800;
  color: var(--pollen);
}

.case-stock-ribbon {
  position: absolute;
  top: 16px;
  right: 16px;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 6px 12px;
  background: var(--coral);
  color: var(--white);
  border-radius: var(--radius-round);
  box-shadow: 0 4px 12px rgba(232, 116, 97, 0.35);
  z-index: 4;
}

.case-assurances {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.case-assurances li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .78rem;
  font-weight: 600;
  color: var(--emerald-deep);
}
.assurance-seal {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, var(--pollen-pale), var(--pollen));
  border: 1px solid #c9a227;
}

/* Tone accents on glass border */
.wardian-case.tone-veg .case-glass-lid { border-color: rgba(74, 222, 128, 0.5); }
.wardian-case.tone-bloom .case-glass-lid { border-color: rgba(244, 114, 182, 0.5); }
.wardian-case.tone-forage .case-glass-lid { border-color: rgba(163, 163, 163, 0.5); }
.wardian-case.tone-fruit .case-glass-lid { border-color: rgba(251, 146, 60, 0.5); }
.wardian-case.tone-herb .case-glass-lid { border-color: rgba(52, 211, 153, 0.5); }
.wardian-case.tone-spice .case-glass-lid { border-color: rgba(251, 191, 36, 0.5); }
.wardian-case.tone-misc .case-glass-lid { border-color: rgba(129, 140, 248, 0.5); }

/* Field journal sheet */
.field-journal {
  position: relative;
  background: linear-gradient(180deg, #fffef8, #f8f4ea);
  border: 1px solid #d4c4a8;
  border-radius: var(--radius-xl);
  padding: 28px 26px 24px;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.field-journal::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    transparent 0 27px,
    rgba(11, 61, 46, 0.04) 27px 28px
  );
  pointer-events: none;
}
.journal-clip {
  position: absolute;
  top: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: 18px;
  background: linear-gradient(180deg, #a8a8a8, #6b6b6b);
  border-radius: 0 0 6px 6px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
  z-index: 2;
}
.journal-fold {
  position: absolute;
  top: 0;
  right: 0;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 28px 28px 0;
  border-color: transparent #e8e0d4 transparent transparent;
}
.field-journal.tone-veg .journal-fold { border-right-color: rgba(74, 222, 128, 0.25); }
.field-journal.tone-bloom .journal-fold { border-right-color: rgba(244, 114, 182, 0.25); }
.field-journal.tone-forage .journal-fold { border-right-color: rgba(163, 163, 163, 0.25); }
.field-journal.tone-fruit .journal-fold { border-right-color: rgba(251, 146, 60, 0.25); }
.field-journal.tone-herb .journal-fold { border-right-color: rgba(52, 211, 153, 0.25); }
.field-journal.tone-spice .journal-fold { border-right-color: rgba(251, 191, 36, 0.25); }
.field-journal.tone-misc .journal-fold { border-right-color: rgba(129, 140, 248, 0.25); }

.journal-kicker {
  position: relative;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--coral);
  margin: 10px 0 6px;
}
.journal-collection {
  position: relative;
  display: inline-block;
  font-size: .72rem;
  font-weight: 700;
  padding: 4px 10px;
  background: var(--mist-2);
  color: var(--emerald-deep);
  border-radius: var(--radius-round);
  border-left: 3px solid var(--pollen);
  margin-bottom: 10px;
}
.field-journal h1 {
  position: relative;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 3vw, 2rem);
  line-height: 1.15;
  color: var(--emerald-deep);
  margin: 0 0 12px;
}
.journal-pack {
  position: relative;
  margin: 0 0 12px;
  font-size: .88rem;
  color: var(--muted);
}
.journal-desc {
  position: relative;
  margin: 0 0 18px;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.55;
}
.journal-registry {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 0 0 22px;
}
.journal-registry div {
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.7);
  border-radius: var(--radius);
  border-left: 3px solid var(--emerald);
}
.journal-registry dt {
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 2px;
}
.journal-registry dd {
  margin: 0;
  font-weight: 700;
  color: var(--emerald-deep);
  word-break: break-all;
}

/* Bench transfer station */
.bench-transfer-station {
  position: relative;
  padding: 20px;
  background: linear-gradient(145deg, var(--emerald-deep), var(--emerald));
  color: var(--mist);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow);
}
.transfer-station-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.transfer-tray {
  flex-shrink: 0;
  width: 36px;
  height: 28px;
  background: linear-gradient(180deg, #c4a882, #8b7355);
  border-radius: 4px 4px 8px 8px;
  border: 2px solid #6b5344;
  box-shadow: inset 0 2px 4px rgba(255, 255, 255, 0.2);
}
.transfer-label {
  display: block;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .85;
  margin-bottom: 2px;
}
.transfer-price {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--pollen);
}
.bench-transfer-form {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}
.transfer-qty-label {
  display: block;
  font-size: .78rem;
  font-weight: 600;
  margin-bottom: 6px;
  width: 100%;
}
.transfer-qty {
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.1);
  color: var(--mist);
  font: inherit;
  min-width: 72px;
}
.bench-place-btn { flex: 1 1 auto; }
.transfer-note {
  margin: 14px 0 0;
  font-size: .74rem;
  opacity: .78;
  line-height: 1.45;
}

/* Companion envelopes */
.companion-wall-section {
  padding: 0 0 56px;
  background: linear-gradient(180deg, transparent, rgba(11, 61, 46, 0.04));
}
.companion-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 24px;
}
.companion-bracket {
  flex-shrink: 0;
  width: 6px;
  height: 52px;
  background: linear-gradient(180deg, #c9a227, var(--emerald));
  border-radius: 3px;
}
.companion-kicker {
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--coral);
  margin: 0 0 4px;
}
.companion-head h2 {
  font-family: var(--font-display);
  font-size: 1.25rem;
  margin: 0;
  color: var(--emerald-deep);
}
.companion-envelopes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 18px;
}

.seed-envelope {
  position: relative;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 14px 14px 16px;
  box-shadow: var(--shadow-soft);
  transition: transform .2s, box-shadow .2s;
}
.seed-envelope:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.envelope-clip {
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 10px;
  background: linear-gradient(180deg, #c9a227, #8b7355);
  border-radius: 2px 2px 0 0;
  z-index: 2;
}
.envelope-face {
  display: block;
  margin-bottom: 12px;
}
.envelope-index {
  display: block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  color: var(--coral);
  margin-bottom: 8px;
}
.envelope-window {
  display: block;
  border-radius: var(--radius);
  overflow: hidden;
  border: 2px solid var(--line);
  background: var(--mist-2);
}
.envelope-window img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.seed-envelope.tone-bloom .envelope-window { border-color: rgba(244, 114, 182, 0.4); }
.seed-envelope.tone-veg .envelope-window { border-color: rgba(74, 222, 128, 0.4); }
.seed-envelope.tone-herb .envelope-window { border-color: rgba(52, 211, 153, 0.4); }
.seed-envelope.tone-fruit .envelope-window { border-color: rgba(251, 146, 60, 0.4); }
.seed-envelope.tone-spice .envelope-window { border-color: rgba(251, 191, 36, 0.4); }
.seed-envelope.tone-forage .envelope-window { border-color: rgba(163, 163, 163, 0.4); }
.seed-envelope.tone-misc .envelope-window { border-color: rgba(129, 140, 248, 0.4); }

.envelope-copy h3 {
  font-family: var(--font-display);
  font-size: .92rem;
  line-height: 1.25;
  margin: 0 0 8px;
  color: var(--emerald-deep);
}
.envelope-bed {
  display: block;
  font-size: .66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  margin-bottom: 4px;
}
.envelope-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.envelope-price {
  font-weight: 800;
  color: var(--coral);
  font-size: .9rem;
}
.envelope-open {
  font-size: .72rem;
  font-weight: 700;
  color: var(--emerald);
}
.envelope-open:hover { text-decoration: underline; }

/* Vacant case 404 */
.page-wardian-vacant .page-main { background: var(--mist); }
.wardian-vacant {
  padding: 64px 0 80px;
  text-align: center;
}
.vacant-case {
  position: relative;
  width: min(220px, 65vw);
  height: 180px;
  margin: 0 auto 28px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.5), rgba(232, 224, 212, 0.9));
  border: 2px solid #d4c4a8;
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.vacant-brass {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 2px solid #c9a227;
  opacity: .6;
}
.vacant-brass.tl { top: 10px; left: 10px; border-right: 0; border-bottom: 0; }
.vacant-brass.tr { top: 10px; right: 10px; border-left: 0; border-bottom: 0; }
.vacant-brass.bl { bottom: 10px; left: 10px; border-right: 0; border-top: 0; }
.vacant-brass.br { bottom: 10px; right: 10px; border-left: 0; border-top: 0; }
.vacant-fog {
  position: absolute;
  inset: 0;
  background: rgba(247, 250, 248, 0.75);
}
.wardian-vacant-wrap { max-width: 440px; margin: 0 auto; }
.wardian-vacant h1 {
  font-family: var(--font-display);
  font-size: 1.4rem;
  color: var(--emerald-deep);
  margin: 0 0 12px;
}
.wardian-vacant p {
  margin: 0 0 20px;
  color: var(--muted);
  font-size: .92rem;
}

@media (max-width: 900px) {
  .wardian-stage-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .journal-registry { grid-template-columns: 1fr; }
  .bench-transfer-form { flex-direction: column; align-items: stretch; }
  .press-pull-btn { width: 100%; }
  .path-current { max-width: 160px; }
  .companion-envelopes { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 420px) {
  .companion-envelopes { grid-template-columns: 1fr; }
  .field-journal { padding: 24px 18px 20px; }
  .wardian-case { padding: 22px 16px 20px; }
}
/* ── Global mobile polish (Appily Eight pages) ── */
@media (max-width: 980px) {
  .chest-wrap,
  .bench-hero-inner,
  .rack-hero-inner,
  .ledger-hero-inner,
  .compass-hero-inner,
  .wardian-hero-inner,
  .letterpress-hero-inner,
  .monsoon-track-hero-inner { max-width: none; }

  .chest-intro { text-align: left; }
  .chest-workbench { gap: 16px; }
  .drying-tags { border-top: 1px solid var(--line); border-left: 0; }

  .bench-layout,
  .ledger-spread,
  .compass-chamber-grid,
  .wardian-stage-grid,
  .letterpress-layout,
  .monsoon-track-grid { gap: 20px; }

  .dispatch-deed { grid-template-columns: 1fr; padding: 20px; }
  .deed-wax-seal { width: 48px; height: 48px; }

  .compass-rose { min-height: 200px; }
  .compass-core { width: 38px; height: 38px; font-size: .95rem; }

  .shutter-kiosk { max-width: none; }
  .lid-switch { flex-direction: column; }
  .lid-toggle { width: 100%; text-align: center; }
}

@media (max-width: 720px) {
  .rack-hero,
  .ledger-hero,
  .compass-observatory,
  .wardian-hero,
  .letterpress-hero,
  .monsoon-track-hero { padding: 32px 0 28px; }

  .bench-shelf-deco,
  .rack-brass-bars,
  .ledger-brass-corners,
  .observatory-stars,
  .wardian-haze,
  .press-ink-rollers { display: none; }

  .ledger-dispatch-chip,
  .compass-bearing-badge,
  .rack-hero-inner,
  .bench-hero-inner,
  .ledger-hero-inner { flex-direction: column; align-items: flex-start; }

  .petal-trail { gap: 8px; }
  .petal-vine { display: none; }

  .pot-card {
    grid-template-columns: 64px 1fr;
    grid-template-rows: auto auto;
  }
  .pot-qty,
  .pot-total {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 8px;
    border-top: 1px dashed var(--line);
  }

  .rack-sleeve { margin-left: 0 !important; }
  .sleeve-head { padding-right: 0; }
  .sleeve-wax { position: static; display: inline-grid; margin-bottom: 10px; transform: none; }
  .sleeve-foot { flex-direction: column; align-items: stretch; }
  .rack-track-btn { width: 100%; text-align: center; }

  .bearing-node { padding: 8px 0; }

  .clerk-window-inner { padding: 18px 16px; }
  .almanac-strip-row { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .strip-num { display: none; }

  .drawer-stack { flex-direction: column; align-items: stretch; }
  .drawer-tabs { flex-direction: column; width: 100%; }
  .drawer-tab { width: 100%; }
  .drawer-actions { flex-direction: column; width: 100%; }
  .drawer-actions .btn { width: 100%; }

  .vial-tray { grid-template-columns: 1fr; }
  .seed-vial { border-right: 0; border-bottom: 1px dashed #c4a882; }

  .folio-stats,
  .deed-meta,
  .manifest-totals div { grid-template-columns: 1fr; }

  .downpour-path { padding-left: 0; }
  .shipment-folio { padding: 22px 18px; }
}

@media (max-width: 480px) {
  .bench-form-actions,
  .ledger-actions,
  .compass-foot-nav,
  .satchel-guest-actions,
  .rack-guest-actions,
  .terrace-guest-actions,
  .compass-lost-actions,
  .wardian-vacant-wrap .btn { flex-direction: column; width: 100%; }

  .bench-form-actions .btn,
  .ledger-actions .btn,
  .compass-foot-nav .btn,
  .bench-transfer-form .btn,
  .bench-place-btn,
  .press-pull-btn,
  .ledger-seal-btn { width: 100%; }

  .archive-latch-gate,
  .rack-lock-plate,
  .lid-compartments,
  .glassine-stage,
  .ledger-form-panel,
  .seed-tally-board { padding: 22px 16px; }

  .mobile-nav-foot { grid-template-columns: 1fr; }
  .pavilion-nav { width: min(360px, 100vw); border-radius: 0; }
}

@media (max-width: 380px) {
  .product-grid-compact,
  .folio-grid,
  .companion-envelopes { grid-template-columns: 1fr !important; }
  .hero-actions { flex-direction: column; }
  .hero-actions .btn { width: 100%; flex: none; }
}

/* ── Contact: Florilegium Bloom Letterpress (Appily Twelve) ── */
.page-bloom-letterpress .page-main {
  background: linear-gradient(180deg, var(--mist) 0%, #ebe4d8 100%);
}

.letterpress-hero {
  position: relative;
  background: linear-gradient(160deg, #2a2118 0%, #4a3c2a 38%, var(--emerald-deep) 100%);
  color: var(--mist);
  overflow: hidden;
  padding: 40px 0 0;
}
.press-ink-rollers {
  position: absolute;
  right: 6%;
  top: 24px;
  display: flex;
  gap: 14px;
  opacity: .35;
  pointer-events: none;
}
.ink-roller {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 4px solid #6b5344;
  background: radial-gradient(circle at 35% 30%, var(--emerald), var(--emerald-deep));
}
.roller-b {
  margin-top: 12px;
  background: radial-gradient(circle at 35% 30%, var(--coral), #b84a3a);
}

.letterpress-hero-inner {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  padding-bottom: 32px;
}
.press-kicker {
  margin: 0 0 10px;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--pollen);
}
.letterpress-hero h1 {
  font-family: var(--font-display);
  font-size: clamp(1.85rem, 4vw, 2.55rem);
  line-height: 1.08;
  margin: 0 0 12px;
}
.letterpress-hero h1 em {
  font-style: italic;
  color: var(--pollen-pale);
}
.press-lede {
  margin: 0;
  opacity: .88;
  max-width: 52ch;
  font-size: .92rem;
}
.press-chase-badge {
  flex-shrink: 0;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.08);
  border: 2px solid rgba(201, 162, 39, 0.45);
  border-radius: var(--radius-lg);
  text-align: center;
}
.chase-label {
  display: block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--pollen-pale);
  margin-bottom: 4px;
}
.chase-mark {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--pollen);
}
.press-bed-ridge {
  height: 8px;
  background: repeating-linear-gradient(
    90deg,
    #6b5344 0 12px,
    #8b7355 12px 24px,
    #4a3c2a 24px 36px
  );
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.25);
}

.letterpress-floor { padding: 36px 0 64px; }
.letterpress-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, 360px);
  gap: 28px;
  align-items: start;
}

.press-composition-slip {
  position: relative;
  background: linear-gradient(180deg, #fffef8, #f5f0e4);
  border: 1px solid #d4c4a8;
  border-radius: var(--radius-xl);
  padding: 28px 26px 24px;
  box-shadow: var(--shadow-soft);
  overflow: hidden;
}
.press-composition-slip::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    transparent 0 27px,
    rgba(11, 61, 46, 0.035) 27px 28px
  );
  pointer-events: none;
}
.slip-chase-frame { position: absolute; inset: 12px; pointer-events: none; }
.chase-pin {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #c9a227, #8b7355);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.chase-pin.tl { top: 0; left: 0; }
.chase-pin.tr { top: 0; right: 0; }
.chase-pin.bl { bottom: 0; left: 0; }
.chase-pin.br { bottom: 0; right: 0; }

.slip-head {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 20px;
}
.slip-type-block {
  flex-shrink: 0;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  background: var(--emerald-deep);
  color: var(--pollen-pale);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .06em;
  border-radius: 4px;
  box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.2);
}
.slip-label {
  margin: 0 0 4px;
  font-size: .68rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--coral);
}
.slip-head h2 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.25rem;
  color: var(--emerald-deep);
}

.press-notice {
  position: relative;
  padding: 14px 16px;
  border-radius: var(--radius-lg);
  margin-bottom: 18px;
  font-size: .88rem;
  line-height: 1.45;
}
.press-notice-success {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}
.press-notice-error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.press-form { position: relative; }
.press-fields {
  display: grid;
  gap: 14px;
}
.press-fields-duo {
  grid-template-columns: 1fr 1fr;
}
.press-field {
  display: block;
}
.press-field-wide {
  grid-column: 1 / -1;
}
.type-label {
  display: block;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--emerald-deep);
  margin-bottom: 6px;
}
.press-field input,
.press-field textarea {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #c4b498;
  border-radius: var(--radius);
  font: inherit;
  background: rgba(255, 255, 255, 0.85);
  color: var(--ink);
}
.press-field input:focus,
.press-field textarea:focus {
  outline: 2px solid rgba(11, 61, 46, 0.2);
  border-color: var(--emerald);
}
.press-field textarea {
  min-height: 120px;
  resize: vertical;
}
.press-form-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 2px dashed #d4c4a8;
}
.press-fine {
  margin: 0;
  font-size: .76rem;
  color: var(--muted);
  max-width: 28ch;
  line-height: 1.4;
}
.press-pull-btn { flex-shrink: 0; }

.slip-impression {
  position: absolute;
  bottom: 18px;
  right: 22px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 3px solid rgba(139, 41, 66, 0.35);
  opacity: .25;
  pointer-events: none;
}
.slip-impression::after {
  content: 'AP12';
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  font-size: .52rem;
  font-weight: 800;
  letter-spacing: .06em;
  color: #8b2942;
  transform: rotate(-12deg);
}

.imprint-drying-line {
  position: relative;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  padding: 22px 20px 24px;
  box-shadow: var(--shadow-soft);
}
.drying-cord {
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 3px;
  background: linear-gradient(90deg, #8b7355, #c4a882, #8b7355);
  border-radius: 2px;
}
.imprint-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 8px 0 20px;
}
.imprint-stamp {
  flex-shrink: 0;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .1em;
  padding: 6px 8px;
  background: var(--coral);
  color: var(--white);
  border-radius: var(--radius);
}
.imprint-head h2 {
  margin: 0 0 4px;
  font-family: var(--font-display);
  font-size: 1.05rem;
  color: var(--emerald-deep);
}
.imprint-head p {
  margin: 0;
  font-size: .78rem;
  color: var(--muted);
}

.imprint-cards {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.imprint-card {
  position: relative;
  padding: 12px 14px 12px 28px;
  background: var(--mist);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  border-left: 3px solid var(--pollen);
}
.imprint-peg {
  position: absolute;
  left: 10px;
  top: 14px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, var(--coral), #b84a3a);
  box-shadow: 0 2px 4px rgba(232, 116, 97, 0.35);
}
.imprint-key {
  display: block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 3px;
}
.imprint-val {
  display: block;
  font-size: .84rem;
  font-weight: 600;
  color: var(--emerald-deep);
  line-height: 1.4;
  word-break: break-word;
}
a.imprint-val:hover {
  color: var(--coral);
  text-decoration: underline;
}

.imprint-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 16px;
  border-top: 1px dashed var(--line);
}
.imprint-links .btn { width: 100%; text-align: center; }

@media (max-width: 900px) {
  .letterpress-layout { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .press-fields-duo { grid-template-columns: 1fr; }
  .letterpress-hero-inner { flex-direction: column; }
  .press-form-foot { flex-direction: column; align-items: stretch; }
  .press-pull-btn { width: 100%; }
  .press-ink-rollers { display: none; }
}
@media (max-width: 420px) {
  .press-composition-slip { padding: 24px 18px 20px; }
  .imprint-drying-line { padding: 20px 16px; }
}

