body {
  --lake-ink: #17231f;
  --lake-muted: #66746e;
  --lake-line: #d8e1dd;
  --lake-paper: #fbfcfa;
  --lake-paper-soft: #f2f5f1;
  --lake-map-land: #e7ece3;
  --lake-map-water: #cfe3e3;
  --lake-map-road: #fffef9;
  --lake-green: #08705f;
  --lake-green-dark: #075548;
  --lake-yellow: #d69b22;
  --lake-red: #c94b3f;
  --lake-blue: #356b86;
  color: var(--lake-ink);
  background: #e8ece8;
}

body .device-frame,
body .app-preview,
body .lake-app {
  max-width: 100%;
  overflow: hidden;
}

body .app-preview {
  height: 100%;
  min-height: 0;
  background: var(--lake-paper);
}

body .lake-app,
body .lake-app *,
body .lake-app *::before,
body .lake-app *::after {
  box-sizing: border-box;
}

body .lake-app {
  --lake-dock-height: 62px;
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  color: var(--lake-ink);
  overflow: hidden;
  background: var(--lake-paper);
  font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  letter-spacing: 0;
}

body .lake-app button,
body .lake-app input,
body .lake-app textarea {
  margin: 0;
  border: 0;
  color: inherit;
  font: inherit;
  letter-spacing: 0;
}

body .lake-app button {
  cursor: pointer;
}

body .lake-app button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}

body .lake-app svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.9;
  flex: 0 0 auto;
}

body .lake-icon-button {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  background: transparent;
}

/* Shared bottom navigation */
body .lake-dock {
  position: absolute;
  z-index: 20;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  height: calc(var(--lake-dock-height) + env(safe-area-inset-bottom));
  padding: 3px 4px env(safe-area-inset-bottom);
  border-top: 1px solid var(--lake-line);
  background: rgba(251, 252, 250, 0.97);
}

body .lake-dock :is(a, button) {
  display: flex;
  min-width: 0;
  min-height: 54px;
  padding: 5px 2px 3px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 2px;
  color: #77837e;
  background: transparent;
  text-decoration: none;
}

body .lake-dock :is(a, button) svg {
  width: 21px;
  height: 21px;
}

body .lake-dock :is(a, button) span {
  overflow: hidden;
  max-width: 100%;
  font-size: 10px;
  line-height: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-dock :is(a, button).active {
  color: var(--lake-green);
}

body .lake-dock :is(a, button).active svg {
  stroke-width: 2.4;
}

/* Angler: edge-to-edge map */
body .lake-map-explorer {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: var(--lake-map-land);
}

body .lake-map-canvas {
  position: absolute;
  inset: 0 0 calc(var(--lake-dock-height) + env(safe-area-inset-bottom));
  overflow: hidden;
  background: var(--lake-map-land);
}

body .lake-map-water {
  position: absolute;
  background: var(--lake-map-water);
  border: 1px solid #bdd7d7;
}

body .lake-water-east {
  top: -12%;
  right: -24%;
  width: 56%;
  height: 76%;
  border-radius: 46% 0 0 58%;
  transform: rotate(-7deg);
}

body .lake-water-south {
  right: 20%;
  bottom: -18%;
  width: 84%;
  height: 42%;
  border-radius: 58% 48% 0 0;
  transform: rotate(8deg);
}

body .lake-road {
  position: absolute;
  display: block;
  height: 7px;
  border: 1px solid #d8ded8;
  background: var(--lake-map-road);
  box-shadow: 0 0 0 2px rgba(202, 211, 203, 0.42);
  transform-origin: left center;
}

body .lake-road::after {
  position: absolute;
  top: 2px;
  right: 0;
  left: 0;
  height: 1px;
  background: #d8c687;
  content: "";
}

body .lake-road-a {
  top: 31%;
  left: -12%;
  width: 86%;
  transform: rotate(14deg);
}

body .lake-road-b {
  top: 13%;
  left: 45%;
  width: 72%;
  transform: rotate(78deg);
}

body .lake-road-c {
  top: 63%;
  left: 1%;
  width: 70%;
  transform: rotate(-18deg);
}

body .lake-road-d {
  top: 22%;
  left: 17%;
  width: 48%;
  transform: rotate(100deg);
}

body .lake-place-name {
  position: absolute;
  z-index: 1;
  color: #7f8c84;
  font-size: 11px;
  line-height: 16px;
}

body .lake-place-one {
  top: 26%;
  left: 12%;
}

body .lake-place-two {
  top: 42%;
  right: 15%;
}

body .lake-place-three {
  top: 66%;
  left: 18%;
}

body .lake-map-command {
  position: absolute;
  z-index: 6;
  top: 10px;
  right: 10px;
  left: 10px;
  display: grid;
  gap: 7px;
}

body .lake-weather {
  display: grid;
  min-height: 45px;
  padding: 0 3px 0 10px;
  grid-template-columns: minmax(68px, 1.2fr) repeat(3, minmax(48px, 0.8fr)) 44px;
  align-items: center;
  border: 1px solid rgba(205, 217, 211, 0.9);
  border-radius: 6px;
  background: rgba(251, 252, 250, 0.96);
  box-shadow: 0 4px 12px rgba(22, 52, 43, 0.08);
}

body .lake-weather-no-location {
  grid-template-columns: minmax(68px, 1.2fr) repeat(3, minmax(48px, 0.8fr));
}

body .lake-weather > span {
  display: flex;
  min-width: 0;
  padding: 0 4px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border-left: 1px solid var(--lake-line);
}

body .lake-weather > span b {
  overflow: hidden;
  max-width: 100%;
  font-size: 11px;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-weather > span small {
  color: var(--lake-muted);
  font-size: 9px;
  line-height: 12px;
}

body .lake-weather .lake-weather-place {
  justify-content: flex-start;
  flex-direction: row;
  gap: 5px;
  border-left: 0;
  color: var(--lake-green-dark);
}

body .lake-weather-place svg {
  width: 18px;
  height: 18px;
  color: var(--lake-yellow);
}

body .lake-weather .lake-icon-button {
  color: var(--lake-green);
}

body .lake-map-search {
  display: grid;
  height: 44px;
  padding-left: 12px;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(205, 217, 211, 0.9);
  border-radius: 6px;
  background: rgba(251, 252, 250, 0.96);
  box-shadow: 0 4px 12px rgba(22, 52, 43, 0.08);
}

body .lake-map-search > span {
  overflow: hidden;
  color: #7b8781;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-map-search > button {
  height: 42px;
  padding: 0 13px;
  color: var(--lake-green);
  font-weight: 700;
  background: transparent;
}

body .lake-map-marker {
  --marker-x: 50%;
  --marker-y: 50%;
  position: absolute;
  z-index: 3;
  top: var(--marker-y);
  left: var(--marker-x);
  display: flex;
  min-width: 54px;
  min-height: 44px;
  padding: 3px 8px 9px;
  align-items: center;
  justify-content: center;
  border: 2px solid #ffffff;
  border-radius: 6px;
  color: #ffffff;
  background: var(--lake-green-dark);
  box-shadow: 0 4px 10px rgba(20, 55, 45, 0.2);
  transform: translate(-50%, -100%);
}

body .lake-map-marker > span {
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

body .lake-map-marker > i {
  position: absolute;
  bottom: -8px;
  left: calc(50% - 6px);
  width: 12px;
  height: 12px;
  border-right: 2px solid #fff;
  border-bottom: 2px solid #fff;
  background: var(--lake-green-dark);
  transform: rotate(45deg);
}

body .lake-map-marker.is-active {
  color: var(--lake-ink);
  background: #f0bd49;
}

body .lake-map-marker.is-active > i {
  background: #f0bd49;
}

body .lake-user-dot {
  position: absolute;
  z-index: 2;
  top: 49%;
  left: 38%;
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid rgba(53, 107, 134, 0.35);
  border-radius: 50%;
  background: rgba(53, 107, 134, 0.18);
}

body .lake-user-dot i {
  display: block;
  width: 10px;
  height: 10px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--lake-blue);
  box-shadow: 0 1px 4px rgba(23, 35, 31, 0.24);
}

body .lake-map-scale {
  position: absolute;
  right: 12px;
  bottom: 118px;
  color: #5f6d67;
  font-size: 9px;
}

body .lake-map-scale span {
  display: block;
  width: 42px;
  margin-bottom: 2px;
  border-top: 2px solid #596862;
  border-right: 1px solid #596862;
  border-left: 1px solid #596862;
}

body .lake-map-recenter {
  position: absolute;
  z-index: 4;
  right: 12px;
  bottom: 145px;
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  border: 1px solid var(--lake-line);
  border-radius: 50%;
  color: var(--lake-green);
  background: #fff;
  box-shadow: 0 3px 9px rgba(22, 52, 43, 0.12);
}

/* Map drawer */
body .lake-ground-sheet {
  position: absolute;
  z-index: 10;
  right: 0;
  bottom: calc(var(--lake-dock-height) + env(safe-area-inset-bottom));
  left: 0;
  height: calc(100% - var(--lake-dock-height) - env(safe-area-inset-bottom) - 10px);
  overflow: hidden;
  border: 1px solid var(--lake-line);
  border-bottom: 0;
  border-radius: 15px 15px 0 0;
  background: var(--lake-paper);
  box-shadow: 0 -6px 22px rgba(27, 53, 45, 0.14);
  transition: transform 220ms ease;
}

body .lake-ground-sheet[data-snap="peek"] {
  transform: translateY(calc(100% - 96px));
}

body .lake-ground-sheet[data-snap="half"] {
  transform: translateY(48%);
}

body .lake-ground-sheet[data-snap="full"] {
  transform: translateY(0);
}

body .lake-sheet-grip {
  position: relative;
  z-index: 2;
  display: grid;
  width: 100%;
  height: 28px;
  padding: 0;
  place-items: center;
  background: var(--lake-paper);
}

body .lake-sheet-grip i {
  display: block;
  width: 38px;
  height: 4px;
  border-radius: 2px;
  background: #b8c4bf;
}

body .lake-sheet-index,
body .lake-detail-view {
  height: calc(100% - 28px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}

body .lake-sheet-index > header {
  display: flex;
  min-height: 50px;
  padding: 3px 15px 5px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

body .lake-sheet-index > header > span:first-child {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-sheet-index > header small {
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 14px;
}

body .lake-sheet-index > header b {
  font-size: 18px;
  line-height: 23px;
}

body .lake-sheet-index > header > span:last-child {
  color: var(--lake-green);
  font-size: 11px;
  white-space: nowrap;
}

body .lake-map-filters {
  display: flex;
  min-height: 52px;
  padding: 0 14px;
  align-items: center;
  gap: 6px;
  border-top: 1px solid var(--lake-line);
  border-bottom: 1px solid var(--lake-line);
  overflow-x: auto;
}

body .lake-map-filters :is(button, a) {
  display: inline-flex;
  min-width: 54px;
  min-height: 44px;
  padding: 0 12px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 17px;
  color: var(--lake-muted);
  background: transparent;
  white-space: nowrap;
}

body .lake-map-filters :is(button, a).is-active {
  border-color: #9ec8bd;
  color: var(--lake-green-dark);
  background: #e5f2ed;
  font-weight: 700;
}

body .lake-result-list {
  padding: 0 14px 90px;
}

body .lake-result-row {
  position: relative;
  display: grid;
  width: 100%;
  min-height: 80px;
  padding: 9px 22px 9px 0;
  grid-template-columns: 60px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--lake-line);
  text-align: left;
  background: transparent;
}

body .lake-result-row > img,
body .lake-result-row > .lake-ground-image-placeholder {
  width: 60px;
  height: 60px;
  border-radius: 4px;
  background: var(--lake-paper-soft);
}

body .lake-result-row > img {
  object-fit: contain;
}

body .lake-ground-image-placeholder {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 0;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  overflow: hidden;
  color: #315f54;
  background: #e6efeb;
  text-align: center;
}

body .lake-ground-image-placeholder::before,
body .lake-ground-image-placeholder::after {
  position: absolute;
  right: -12%;
  left: -12%;
  height: 13%;
  border-top: 1px solid rgba(49, 95, 84, 0.14);
  border-bottom: 1px solid rgba(49, 95, 84, 0.09);
  content: "";
  transform: rotate(-4deg);
}

body .lake-ground-image-placeholder::before {
  top: 17%;
}

body .lake-ground-image-placeholder::after {
  bottom: 14%;
  transform: rotate(5deg);
}

body .lake-ground-image-placeholder > :is(i, b) {
  position: relative;
  z-index: 1;
  font-style: normal;
}

body .lake-ground-image-placeholder > i {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 1px solid #8db0a4;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  font-weight: 800;
}

body .lake-ground-image-placeholder > b {
  margin-top: 6px;
  font-size: 11px;
  line-height: 15px;
}

body .lake-ground-image-placeholder.is-compact > i {
  width: 20px;
  height: 20px;
  font-size: 9px;
}

body .lake-ground-image-placeholder.is-compact > b {
  max-width: 54px;
  margin-top: 3px;
  font-size: 8px;
  line-height: 10px;
}

body .lake-result-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-result-copy small,
body .lake-result-copy em,
body .lake-result-price small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 10px;
  font-style: normal;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-result-copy b {
  overflow: hidden;
  margin: 2px 0;
  font-size: 14px;
  line-height: 19px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-result-price {
  display: flex;
  min-width: 48px;
  align-items: flex-end;
  flex-direction: column;
}

body .lake-result-price b {
  color: var(--lake-red);
  font-size: 14px;
}

body .lake-news-card .lake-result-copy,
body .news-card .lake-result-copy {
  gap: 1px;
}

body .lake-result-session-title {
  margin: 1px 0;
  line-height: 18px;
}

body .lake-result-session-detail {
  display: block;
  max-height: 30px;
  line-height: 15px;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* The shared metadata rule is single-line; this detail row is intentionally
   allowed to wrap so the three-part session summary stays readable on phones. */
body .lake-result-copy em.lake-result-session-detail {
  overflow: hidden;
  text-overflow: clip;
  white-space: normal;
}

body .lake-result-row > svg:last-child {
  position: absolute;
  right: 0;
  width: 17px;
  color: #98a49f;
}

/* Angler detail inside the same drawer */
body .lake-map-explorer .lake-detail-view {
  padding-bottom: 84px;
  scroll-padding-bottom: 84px;
}

body .lake-detail-media {
  position: relative;
  height: 184px;
  overflow: hidden;
  background: #dce4de;
}

body .lake-detail-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

body .lake-detail-media > .lake-ground-image-placeholder {
  width: 100%;
  height: 100%;
  color: #e8f4ef;
  background: #174c42;
}

body .lake-detail-media > .lake-ground-image-placeholder > i {
  display: none;
}

body .lake-detail-media > .lake-ground-image-placeholder > b {
  margin: 0;
  padding: 6px 10px;
  border: 1px solid rgba(232, 244, 239, 0.35);
  border-radius: 4px;
  background: rgba(8, 68, 57, 0.72);
  font-size: 12px;
}

body .lake-detail-media > span:not(.lake-ground-image-placeholder) {
  position: absolute;
  right: 12px;
  bottom: 10px;
  padding: 5px 8px;
  border-radius: 4px;
  color: #fff;
  background: rgba(19, 35, 29, 0.78);
  font-size: 11px;
}

body .lake-media-back {
  position: absolute;
  z-index: 2;
  top: 10px;
  left: 10px;
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: rgba(20, 34, 29, 0.72);
}

body .lake-detail-heading {
  padding: 15px 16px 13px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-detail-heading small {
  color: var(--lake-green);
  font-size: 11px;
}

body .lake-detail-heading h1 {
  margin: 3px 0 5px;
  font-size: 21px;
  line-height: 28px;
}

body .lake-detail-heading p {
  margin: 0;
  color: var(--lake-muted);
  font-size: 12px;
}

body .lake-news-video {
  padding: 14px 16px 16px;
  border-bottom: 1px solid var(--lake-line);
  background: #fff;
}

body .lake-news-video > header {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 10px;
  color: var(--lake-green);
}

body .lake-news-video > header svg {
  width: 17px;
  height: 17px;
}

body .lake-news-video > header b {
  color: var(--lake-ink);
  font-size: 14px;
}

body .lake-news-video-player {
  display: block;
  width: 100%;
  max-height: 420px;
  aspect-ratio: 16 / 9;
  border-radius: 4px;
  background: #101713;
  object-fit: contain;
}

body .lake-rule-ledger,
body .lake-review-ledger {
  margin: 0;
  padding: 0 16px;
}

body .lake-rule-ledger > div,
body .lake-review-ledger > div {
  display: grid;
  min-height: 46px;
  grid-template-columns: 88px minmax(0, 1fr);
  align-items: center;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-rule-ledger dt,
body .lake-review-ledger dt {
  color: var(--lake-muted);
  font-size: 11px;
}

body .lake-rule-ledger dd,
body .lake-review-ledger dd {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  text-align: right;
}

body .lake-session-tracks,
body .lake-pond-pick {
  padding: 14px 16px 0;
}

body .lake-session-tracks h3,
body .lake-pond-pick h3 {
  margin: 0 0 8px;
  font-size: 14px;
}

body .lake-ticket-choice {
  position: relative;
  display: grid;
  width: 100%;
  min-height: 60px;
  padding: 7px 0;
  grid-template-columns: 26px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
  text-align: left;
  background: transparent;
  cursor: pointer;
}

body .lake-ticket-choice-input {
  position: absolute;
  left: 0;
  top: 50%;
  width: 22px;
  height: 22px;
  margin: 0;
  transform: translateY(-50%);
  opacity: 0;
  pointer-events: none;
}

body .lake-ticket-choice:focus-within .lake-choice-mark {
  box-shadow: 0 0 0 3px rgba(20, 124, 120, 0.18);
}

body .lake-choice-mark {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 1px solid #9eaaa5;
  border-radius: 50%;
}

body .lake-ticket-choice.is-active .lake-choice-mark {
  border-color: var(--lake-green);
  color: #fff;
  background: var(--lake-green);
}

body .lake-choice-mark svg {
  width: 14px;
  height: 14px;
}

body .lake-ticket-choice > span:nth-child(2) {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-ticket-choice b {
  font-size: 13px;
}

body .lake-ticket-choice small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ticket-choice strong {
  color: var(--lake-red);
  font-size: 14px;
}

body .lake-pond-pick-group {
  margin-bottom: 12px;
  padding-left: 14px;
  border-left: 2px solid #a9c3ba;
}

body .lake-pond-pick-group > div:first-child {
  display: flex;
  padding: 4px 0 3px;
  flex-direction: column;
}

body .lake-pond-pick-group > div:first-child span {
  font-size: 13px;
  font-weight: 800;
}

body .lake-pond-pick-group > div:first-child small {
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-detail-note {
  display: flex;
  margin: 14px 16px 6px;
  padding: 9px 0;
  align-items: flex-start;
  gap: 8px;
  color: var(--lake-muted);
  border-top: 1px dashed #c8d3ce;
  font-size: 10px;
  line-height: 16px;
}

body .lake-detail-note svg {
  width: 17px;
  height: 17px;
  color: var(--lake-green);
}

body .lake-ground-prohibition-notice {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 16px 17px 17px;
  border: 0;
  border-bottom: 8px solid #edf1ee;
  border-radius: 0;
  color: #4c312f;
  background: #fff9f8;
}

body .lake-ground-prohibition-notice h2 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 8px;
  color: var(--lake-red);
  font-size: 18px;
  line-height: 24px;
}

body .lake-ground-prohibition-notice h2 svg,
body .lake-news-information h2 svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

body .lake-ground-prohibition-notice p {
  margin: 0;
  overflow-wrap: anywhere;
  color: #4c312f;
  font-size: 12px;
  font-weight: 650;
  line-height: 21px;
  white-space: pre-wrap;
}

body .lake-news-information {
  padding: 15px 16px 16px;
  border-bottom: 8px solid #edf1ee;
  background: #fff;
}

body .lake-news-information h2 {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 7px;
  color: var(--lake-green-dark);
  font-size: 18px;
  line-height: 24px;
}

body .lake-news-information p {
  margin: 0;
  overflow-wrap: anywhere;
  color: #44534d;
  font-size: 12px;
  line-height: 21px;
  white-space: pre-wrap;
}

body .lake-news-detail-heading {
  position: relative;
  padding-right: 108px;
}

body .lake-news-detail-actions {
  position: absolute;
  top: 14px;
  right: 12px;
  display: flex;
  gap: 7px;
}

body .lake-news-detail-actions .lake-icon-button {
  border: 1px solid var(--lake-line);
  border-radius: 50%;
  color: var(--lake-green);
  background: #fff;
}

body .lake-share-dialog {
  width: min(calc(100% - 24px), 430px);
  max-height: min(760px, calc(100vh - 24px));
  padding: 0;
  overflow: auto;
  border: 0;
  border-radius: 8px;
  color: var(--lake-ink);
  background: #fff;
  box-shadow: 0 22px 60px rgba(16, 31, 25, .3);
  font-family: "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  letter-spacing: 0;
}

body .lake-share-dialog::backdrop {
  background: rgba(16, 27, 22, .56);
  backdrop-filter: blur(2px);
}

body .lake-wechat-share-status {
  margin: 12px 0 0;
  padding: 10px 12px;
  border-left: 3px solid #167a58;
  color: #285345;
  background: #edf8f3;
  font-size: 13px;
  line-height: 20px;
}

body .lake-wechat-share-status.is-loading {
  border-left-color: #b7791f;
  color: #6f4e16;
  background: #fff8e8;
}

body .lake-wechat-share-status.is-error {
  border-left-color: #c84638;
  color: #7c3028;
  background: #fff1ef;
}

body .oss-upload-progress {
  margin: 10px 0 4px;
  padding: 10px 12px;
  border: 1px solid #cde7dc;
  border-radius: 6px;
  color: #174f3c;
  background: #f2faf7;
}

body .oss-upload-progress-copy {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

body .oss-upload-progress-copy b {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 13px;
}

body .oss-upload-progress-copy small {
  flex: 0 0 auto;
  color: #667870;
  font-size: 10px;
}

body .oss-upload-bar {
  height: 6px;
  margin-top: 8px;
  overflow: hidden;
  background: #dcece5;
}

body .oss-upload-bar span {
  display: block;
  width: 0;
  height: 100%;
  background: #14825c;
  transition: width .18s ease;
}

body .oss-upload-progress.is-ready {
  border-color: #9fd6bf;
}

body .oss-upload-progress.is-error {
  border-color: #efb8b1;
  color: #8e3026;
  background: #fff3f1;
}

body .oss-upload-progress.is-error .oss-upload-bar span {
  background: #c84638;
}

body .lake-share-dialog-inner {
  padding: 18px;
}

body .lake-share-dialog header {
  display: grid;
  grid-template-columns: 38px 1fr 34px;
  gap: 9px;
  align-items: center;
}

body .lake-share-dialog header > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border-radius: 6px;
  color: #fff;
  background: var(--lake-green);
}

body .lake-share-dialog header small,
body .lake-share-dialog header h2 {
  display: block;
  margin: 0;
}

body .lake-share-dialog header small {
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-share-dialog header h2 {
  margin-top: 2px;
  font-size: 17px;
}

body .lake-share-close {
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  place-items: center;
  border: 0;
  border-radius: 6px;
  color: var(--lake-muted);
  background: var(--lake-paper-soft);
}

body .lake-share-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  margin: 17px 0 12px;
  padding: 3px;
  border-radius: 6px;
  background: var(--lake-paper-soft);
}

body .lake-share-tabs button {
  min-height: 36px;
  border: 0;
  border-radius: 4px;
  color: var(--lake-muted);
  background: transparent;
  font-size: 12px;
}

body .lake-share-tabs button.is-active {
  color: var(--lake-green-dark);
  background: #fff;
  box-shadow: 0 1px 4px rgba(27, 49, 40, .1);
  font-weight: 800;
}

body .lake-share-panel pre {
  min-height: 360px;
  max-height: 480px;
  margin: 0;
  padding: 14px;
  overflow: auto;
  border: 1px solid var(--lake-line);
  border-radius: 6px;
  color: #26332e;
  background: #fafbf9;
  font: 12px/1.7 "PingFang SC", "Microsoft YaHei", Arial, sans-serif;
  letter-spacing: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

body .lake-share-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  min-height: 46px;
  margin-top: 12px;
  border: 0;
  border-radius: 6px;
  color: #fff;
  background: var(--lake-green);
  font-weight: 800;
  text-decoration: none;
}

body .lake-wechat-card-entry-note {
  margin: 8px 2px 0;
  color: #5b6d66;
  font-size: 12px;
  line-height: 18px;
}

body .lake-wechat-card-preview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 82px;
  gap: 12px;
  min-height: 116px;
  padding: 14px;
  border: 1px solid var(--lake-line);
  border-radius: 6px;
  background: #fff;
}

body .lake-wechat-card-preview img {
  grid-column: 2;
  grid-row: 1;
  width: 82px;
  height: 82px;
  object-fit: cover;
  border-radius: 5px;
}

body .lake-wechat-card-preview div {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}

body .lake-wechat-card-preview h3 {
  margin: 0;
  font-size: 14px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

body .lake-wechat-card-preview p {
  margin: 7px 0;
  color: var(--lake-muted);
  font-size: 11px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

body .lake-wechat-card-preview small {
  color: #9aa39f;
  font-size: 10px;
}

@media (max-width: 540px) {
  body .lake-share-dialog {
    width: calc(100% - 18px);
    max-height: calc(100vh - 18px);
  }

  body .lake-share-dialog-inner {
    padding: 15px;
  }

  body .lake-share-panel pre {
    min-height: 330px;
    max-height: calc(100vh - 214px);
  }
}

body .search-autocomplete-host {
  position: relative;
  overflow: visible !important;
}

body .search-autocomplete-results {
  position: absolute;
  z-index: 40;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: min(320px, 48vh);
  padding: 4px;
  overflow-y: auto;
  border: 1px solid #cbd7d2;
  border-radius: 5px;
  background: #eef3f1;
  box-shadow: 0 12px 28px rgba(19, 45, 36, 0.16);
  scrollbar-color: #93a49d transparent;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

body .search-autocomplete-results[hidden] {
  display: none;
}

body .lake-ground-picker {
  z-index: 12;
}

body .lake-ground-picker:focus-within {
  z-index: 45;
}

body .lake-ground-picker > input[type="search"] {
  min-height: 44px;
  padding-right: 38px;
  background: #fff;
}

body .lake-ground-picker::after {
  position: absolute;
  right: 10px;
  bottom: 22px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #718079;
  border-bottom: 2px solid #718079;
  content: "";
  pointer-events: none;
  transform: rotate(45deg);
}

body .lake-ground-picker .lake-ground-picker-results {
  top: calc(100% - 5px);
}

body .lake-ground-picker-option {
  min-height: 58px;
}

body .search-autocomplete-empty {
  margin: 0;
  padding: 15px 12px;
  color: var(--lake-muted);
  text-align: center;
  font-size: 12px;
}

body .search-autocomplete-option {
  display: block;
  width: 100%;
  min-height: 64px;
  padding: 9px 10px 8px;
  border: 1px solid #d7e1dd;
  border-left: 4px solid #a9b8b2;
  border-radius: 4px;
  color: var(--lake-ink);
  text-align: left;
  background: #fff;
  box-shadow: none;
}

body .search-autocomplete-option + .search-autocomplete-option {
  margin-top: 4px;
}

body .search-autocomplete-option[data-status="selling"] {
  border-left-color: #0c806d;
}

body .search-autocomplete-option[data-status="ended"] {
  border-left-color: #87938e;
}

body .search-autocomplete-option[data-status="offline"] {
  border-left-color: #c9862a;
}

body .search-autocomplete-option:is(:hover, :focus, .is-active) {
  color: var(--lake-green-dark);
  background: #edf6f2;
  border-color: #8db7a8;
  outline: none;
}

body .search-autocomplete-option-heading,
body .search-autocomplete-option-summary {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

body .search-autocomplete-option-heading b {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--lake-ink);
  font-size: 14px;
  line-height: 20px;
}

body .search-autocomplete-option-date {
  padding: 2px 6px;
  border-radius: 3px;
  color: #116d5e;
  background: #e5f2ed;
  font-size: 10px;
  font-weight: 800;
  line-height: 16px;
  white-space: nowrap;
}

body .search-autocomplete-option-date.is-updated {
  color: #66716d;
  background: #eef1f0;
}

body .search-autocomplete-option-summary {
  margin-top: 3px;
}

body .search-autocomplete-option-summary small {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--lake-muted);
  font-size: 11px;
  line-height: 16px;
}

body .search-autocomplete-option-status {
  color: #5e6a65;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
  line-height: 16px;
  white-space: nowrap;
}

body .search-autocomplete-option[data-status="selling"] .search-autocomplete-option-status {
  color: #08725f;
}

body .search-autocomplete-option[data-status="offline"] .search-autocomplete-option-status {
  color: #a36313;
}

body .lake-admin-news-actions {
  display: grid;
  padding: 12px 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
  background: #f6f8f6;
}

body .lake-admin-news-actions > :is(a, button) {
  min-width: 0;
  min-height: 44px;
  justify-content: center;
  text-align: center;
  white-space: normal;
}

body .lake-admin-news-actions > small {
  min-height: 16px;
  grid-column: 1 / -1;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 16px;
}

body .lake-leisure-pond {
  margin: 0 0 8px;
  padding: 0;
  border-left: 0;
}

body .lake-leisure-pond-head {
  display: grid;
  min-height: 48px;
  padding: 9px 0 7px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 17px;
}

body .lake-leisure-pond-head > span {
  display: flex;
  min-width: 0;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 2px 10px;
  overflow-wrap: anywhere;
}

body .lake-leisure-pond-head b {
  margin-right: 2px;
  color: #147c78;
  font-size: 15px;
}

body .lake-leisure-pond-head > small {
  color: #147c78;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

body .lake-leisure-stock {
  color: var(--lake-red);
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  line-height: 18px;
}

body .lake-leisure-pond .lake-ticket-choice {
  min-height: 82px;
  align-items: flex-start;
  padding: 10px 0;
}

body .lake-leisure-play-copy {
  gap: 2px;
}

body .lake-leisure-play-copy .lake-leisure-play-line {
  display: block;
  margin: 0;
  overflow: visible;
  overflow-wrap: anywhere;
  color: #52615b;
  font-size: 11px;
  font-style: normal;
  line-height: 18px;
  text-overflow: clip;
  white-space: normal;
}

body .lake-leisure-play-copy .lake-leisure-play-line.is-description {
  color: var(--lake-ink);
  white-space: pre-wrap;
}

@media (max-width: 719px) {
  body [data-search-autocomplete] {
    font-size: 16px !important;
  }

  body .search-autocomplete-results {
    max-height: min(420px, 58vh);
  }

  body .search-autocomplete-option {
    min-height: 70px;
    padding: 10px 9px 9px;
  }
}

body .lake-buy-bar {
  position: sticky;
  z-index: 4;
  bottom: 0;
  display: grid;
  min-height: 68px;
  padding: 8px 12px;
  grid-template-columns: minmax(0, 1fr) 156px;
  align-items: center;
  gap: 10px;
  border-top: 1px solid var(--lake-line);
  background: rgba(251, 252, 250, 0.98);
}

body .lake-buy-bar > span {
  display: flex;
  flex-direction: column;
}

body .lake-buy-bar small {
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-buy-bar b {
  color: var(--lake-red);
  font-size: 18px;
}

body .lake-buy-bar > button,
body .lake-save-permissions {
  display: flex;
  min-height: 48px;
  padding: 0 16px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border-radius: 5px;
  color: #fff;
  background: var(--lake-green);
  font-size: 14px;
  font-weight: 800;
}

/* Ruled pages shared by owner/admin/secondary angler screens */
body .lake-scroll-screen {
  position: absolute;
  inset: 0 0 var(--lake-dock-height);
  width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--lake-paper);
}

body .lake-ledger-header,
body .lake-detail-ledger-head,
body .lake-publish-header {
  position: sticky;
  z-index: 12;
  top: 0;
  display: flex;
  min-height: 60px;
  padding: 8px 12px 8px 16px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--lake-line);
  background: rgba(251, 252, 250, 0.97);
}

body .lake-ledger-header > span,
body .lake-detail-ledger-head > span,
body .lake-publish-header > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-ledger-header small,
body .lake-detail-ledger-head small,
body .lake-publish-header small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ledger-header b,
body .lake-detail-ledger-head b,
body .lake-publish-header b {
  overflow: hidden;
  font-size: 16px;
  line-height: 22px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-publish-button {
  display: flex;
  min-height: 40px;
  padding: 0 12px;
  align-items: center;
  gap: 5px;
  border-radius: 4px;
  color: #fff;
  background: var(--lake-green);
  font-size: 12px;
  font-weight: 800;
}

body .lake-publish-button svg {
  width: 17px;
  height: 17px;
}

body .lake-page-tabs,
body .lake-admin-tabs {
  display: flex;
  min-height: 46px;
  padding: 0 12px;
  align-items: stretch;
  gap: 18px;
  border-bottom: 1px solid var(--lake-line);
  background: var(--lake-paper);
  overflow-x: auto;
}

body .lake-page-tabs button,
body .lake-admin-tabs button {
  position: relative;
  min-width: max-content;
  min-height: 44px;
  padding: 0 2px;
  color: var(--lake-muted);
  background: transparent;
  font-size: 12px;
}

body .lake-page-tabs button.is-active,
body .lake-admin-tabs button.is-active {
  color: var(--lake-green-dark);
  font-weight: 800;
}

body .lake-page-tabs button.is-active::after,
body .lake-admin-tabs button.is-active::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  background: var(--lake-green);
  content: "";
}

body .lake-admin-tabs em {
  display: inline-grid;
  min-width: 17px;
  height: 17px;
  margin-left: 2px;
  padding: 0 4px;
  place-items: center;
  border-radius: 9px;
  color: #fff;
  background: var(--lake-red);
  font-size: 9px;
  font-style: normal;
}

body .lake-ledger-footnote {
  margin: 14px 16px 92px;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 17px;
}

/* Angler tickets and account */
body .lake-ticket-stub {
  display: grid;
  margin: 16px;
  grid-template-columns: 55px minmax(0, 1fr);
  border: 1px solid #aabbb3;
  border-radius: 6px;
  overflow: hidden;
  background: var(--lake-paper);
}

body .lake-ticket-stub[hidden] {
  display: none;
}

body .lake-ticket-accordion {
  display: block;
}

body .lake-ticket-accordion .lake-ticket-summary {
  display: grid;
  min-height: 78px;
  grid-template-columns: 55px minmax(0, 1fr) 28px;
  align-items: stretch;
  list-style: none;
  cursor: pointer;
}

body .lake-ticket-accordion .lake-ticket-summary::-webkit-details-marker {
  display: none;
}

body .lake-ticket-accordion .lake-ticket-summary:focus-visible {
  outline: 3px solid rgba(28, 112, 95, .35);
  outline-offset: -3px;
}

body .lake-ticket-accordion .lake-ticket-summary-main {
  display: flex;
  min-width: 0;
  padding: 12px 8px 10px 14px;
  justify-content: center;
  flex-direction: column;
  gap: 2px;
}

body .lake-ticket-accordion .lake-ticket-summary-main small {
  overflow: hidden;
  color: var(--lake-red);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ticket-accordion .lake-ticket-summary-main b {
  overflow: hidden;
  font-size: 15px;
  line-height: 21px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ticket-accordion .lake-ticket-summary-main em {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 10px;
  font-style: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ticket-accordion .lake-ticket-summary-toggle {
  display: grid;
  place-items: center;
  color: var(--lake-muted);
}

body .lake-ticket-accordion .lake-ticket-summary-toggle svg {
  width: 17px;
  height: 17px;
  transition: transform 160ms ease, color 160ms ease;
}

body .lake-ticket-accordion[open] .lake-ticket-summary {
  border-bottom: 1px dashed #bfcac5;
}

body .lake-ticket-accordion[open] .lake-ticket-summary-toggle {
  color: var(--lake-green);
}

body .lake-ticket-accordion[open] .lake-ticket-summary-toggle svg {
  transform: rotate(180deg);
}

body .lake-ticket-spine {
  display: flex;
  padding: 13px 8px;
  align-items: center;
  justify-content: space-between;
  flex-direction: column;
  color: #fff;
  background: var(--lake-green-dark);
}

body .lake-ticket-spine span {
  font-size: 13px;
  font-weight: 800;
  writing-mode: vertical-rl;
}

body .lake-ticket-spine b {
  font-size: 11px;
  writing-mode: vertical-rl;
}

body .lake-ticket-main {
  min-width: 0;
  padding: 14px;
}

body .lake-ticket-main > small {
  color: var(--lake-red);
  font-size: 11px;
}

body .lake-ticket-main h2 {
  margin: 3px 0;
  font-size: 17px;
  line-height: 24px;
}

body .lake-ticket-main p {
  margin: 0 0 12px;
  color: var(--lake-muted);
  font-size: 11px;
}

body .lake-ticket-main dl {
  margin: 0;
  border-top: 1px dashed #bfcac5;
}

body .lake-ticket-main dl > div {
  display: flex;
  min-height: 36px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-ticket-main dt {
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-ticket-main dd {
  overflow: hidden;
  margin: 0;
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
}

body .lake-ticket-main > button {
  display: flex;
  width: 100%;
  min-height: 44px;
  margin-top: 12px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: 4px;
  color: #fff;
  background: var(--lake-green);
  font-weight: 800;
}

body .lake-ticket-main > button.lake-ticket-draw-button.button-quiet {
  color: var(--lake-muted);
  border: 1px solid var(--lake-line);
  background: var(--lake-paper-soft);
}

body .lake-account-identity {
  display: grid;
  min-height: 98px;
  padding: 18px 16px;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  color: #fff;
  border-bottom: 4px solid var(--lake-yellow);
  background: #173f37;
}

body .lake-account-avatar {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 2px solid rgba(255, 255, 255, 0.8);
  border-radius: 50%;
  color: #173f37;
  background: #f4c75a;
  font-size: 20px;
  font-weight: 900;
}

body .lake-account-identity-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-account-identity-copy small {
  color: #cfe2dc;
  font-size: 10px;
  line-height: 15px;
}

body .lake-account-identity-copy b {
  overflow: hidden;
  font-size: 20px;
  line-height: 28px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-account-identity-copy em {
  width: fit-content;
  margin-top: 3px;
  padding: 2px 7px;
  border: 1px solid rgba(255, 255, 255, 0.34);
  border-radius: 3px;
  color: #e9f3ef;
  font-size: 10px;
  font-style: normal;
  line-height: 16px;
}

body .lake-account-after-sale {
  display: grid;
  min-height: 64px;
  padding: 10px 16px;
  grid-template-columns: 28px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 10px;
  color: #8c2f29;
  border-bottom: 1px solid #e9c3bf;
  background: #fff1ef;
}

body .lake-account-after-sale > svg:first-child {
  color: var(--lake-red);
}

body .lake-account-after-sale > svg:last-child {
  width: 17px;
  color: #a66560;
}

body .lake-account-after-sale span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-account-after-sale b {
  font-size: 12px;
  line-height: 19px;
}

body .lake-account-after-sale small {
  color: #9a5a55;
  font-size: 10px;
  line-height: 16px;
}

body .lake-balance-band {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid var(--lake-line);
  background: #edf3ef;
}

body .lake-balance-band > span {
  display: flex;
  min-width: 0;
  min-height: 82px;
  padding: 14px 16px;
  justify-content: center;
  flex-direction: column;
  border-right: 1px solid var(--lake-line);
}

body .lake-balance-band > span:last-child {
  border-right: 0;
}

body .lake-balance-band small {
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 15px;
}

body .lake-balance-band b {
  margin-top: 2px;
  font-size: 22px;
}

body .lake-ruled-menu {
  display: block;
  margin-top: 12px;
  padding: 0 16px 90px;
  background: var(--lake-paper);
}

body .lake-ruled-menu > button {
  display: grid;
  width: 100%;
  min-height: 66px;
  padding: 8px 0;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid var(--lake-line);
  text-align: left;
  background: transparent;
}

body .lake-ruled-menu > button > svg:first-child {
  color: var(--lake-green);
}

body .lake-ruled-menu > button > svg:last-child {
  width: 17px;
  color: #9aa59f;
}

body .lake-ruled-menu > button > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-ruled-menu b {
  font-size: 13px;
}

body .lake-ruled-menu small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ruled-menu em {
  padding: 5px 8px;
  border-radius: 4px;
  color: #fff;
  background: var(--lake-green);
  font-size: 10px;
  font-style: normal;
}

/* Owner causal chain and operation tree */
body .lake-causal-strip {
  display: grid;
  min-height: 78px;
  padding: 7px 8px;
  grid-template-columns: 1fr 18px 1.15fr 18px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--lake-line);
  background: #edf3ef;
}

body .lake-causal-strip > svg {
  width: 16px;
  color: #94a19b;
}

body .lake-causal-strip > div {
  display: flex;
  min-width: 0;
  min-height: 52px;
  padding: 4px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}

body .lake-causal-strip > div > small {
  margin-bottom: 3px;
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-causal-strip > div > b {
  font-size: 11px;
}

body .is-good {
  color: var(--lake-green);
}

body .is-stop {
  color: var(--lake-red);
}

body .lake-sale-switch {
  display: grid;
  min-width: 66px;
  min-height: 44px;
  padding: 3px 6px;
  grid-template-columns: 25px minmax(0, 1fr);
  align-items: center;
  gap: 4px;
  border: 1px solid #c6cfca;
  border-radius: 5px;
  color: #6f7a75;
  background: #f1f3f1;
}

body .lake-sale-switch > span {
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #89958f;
  font-size: 10px;
  font-weight: 800;
}

body .lake-sale-switch > small {
  color: inherit;
  font-size: 9px;
  line-height: 12px;
  white-space: nowrap;
}

body .lake-sale-switch.is-active {
  border-color: #9cc4b8;
  color: var(--lake-green-dark);
  background: #e5f2ed;
}

body .lake-sale-switch.is-active > span {
  background: var(--lake-green);
}

body .lake-causal-strip .lake-sale-switch {
  min-width: 72px;
}

body .lake-owner-flow,
body .lake-admin-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--lake-line);
  background: var(--lake-paper);
}

body .lake-owner-flow > span,
body .lake-admin-summary > span {
  display: flex;
  min-width: 0;
  min-height: 59px;
  padding: 7px 4px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border-right: 1px solid var(--lake-line);
}

body .lake-owner-flow > span:last-child,
body .lake-admin-summary > span:last-child {
  border-right: 0;
}

body .lake-owner-flow small,
body .lake-admin-summary small {
  color: var(--lake-muted);
  font-size: 9px;
  white-space: nowrap;
}

body .lake-owner-flow b,
body .lake-admin-summary b {
  margin-top: 2px;
  font-size: 15px;
}

body .lake-user-stats-heading {
  margin-top: 0;
  border-top: 0;
}

body .lake-user-stats {
  border-top: 1px solid var(--lake-line);
}

body .lake-tree-heading {
  display: flex;
  min-height: 67px;
  padding: 10px 12px 8px 16px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--lake-line);
  background: var(--lake-paper);
}

body .lake-tree-heading > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-tree-heading small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-tree-heading h1 {
  margin: 2px 0 0;
  font-size: 17px;
  line-height: 23px;
}

body .lake-tree-heading > button {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  background: transparent;
}

body .lake-tree-heading > a {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
}

body .lake-operation-tree,
body .lake-tree-children,
body .lake-edit-tree,
body .lake-edit-tree ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

body .lake-operation-tree {
  padding: 0 12px;
  background: var(--lake-paper);
}

body .lake-tree-branch {
  border-bottom: 1px solid var(--lake-line);
}

body .lake-branch-line {
  display: grid;
  min-height: 70px;
  padding: 7px 0;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 6px;
}

body .lake-disclosure {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  color: var(--lake-green-dark);
  background: transparent;
}

body .lake-disclosure svg {
  width: 18px;
}

body .lake-branch-title {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-branch-title b {
  overflow: hidden;
  font-size: 14px;
  line-height: 20px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-branch-title small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-tree-children {
  position: relative;
  margin-left: 22px;
  padding-left: 24px;
  border-left: 1px solid #aebfb7;
}

body .lake-tree-children > li {
  position: relative;
}

body .lake-tree-joint {
  position: absolute;
  top: 29px;
  left: -24px;
  width: 19px;
  border-top: 1px solid #aebfb7;
}

body .lake-play-row {
  display: grid;
  width: 100%;
  min-height: 59px;
  padding: 7px 0;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 7px;
  border-bottom: 1px dashed #d2dcd7;
  text-align: left;
  background: transparent;
}

body .lake-play-row > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-play-row b {
  overflow: hidden;
  font-size: 12px;
  line-height: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-play-row small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-play-row strong {
  color: var(--lake-red);
  font-size: 11px;
  white-space: nowrap;
}

body .lake-play-row > svg {
  width: 16px;
  color: #9aa59f;
}

/* Owner publishing */
body .lake-publish-header > button,
body .lake-detail-ledger-head > button {
  display: grid;
  width: 44px;
  height: 44px;
  margin-left: -8px;
  padding: 0;
  place-items: center;
  background: transparent;
}

body .lake-publish-header > span,
body .lake-detail-ledger-head > span {
  flex: 1 1 auto;
}

body .lake-publish-header > em,
body .lake-detail-ledger-head > em {
  padding: 5px 7px;
  border-radius: 4px;
  color: var(--lake-green-dark);
  background: #e4f0eb;
  font-size: 10px;
  font-style: normal;
  white-space: nowrap;
}

body .lake-detail-ledger-head > em.is-pending {
  color: #7a560c;
  background: #f7ebc8;
}

body .lake-step-rail {
  display: grid;
  margin: 0;
  padding: 11px 12px;
  grid-template-columns: repeat(4, 1fr);
  border-bottom: 1px solid var(--lake-line);
  background: var(--lake-paper);
  list-style: none;
}

body .lake-step-rail li {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
  flex-direction: column;
  gap: 3px;
  color: #8a9690;
}

body .lake-step-rail li::before {
  position: absolute;
  z-index: 0;
  top: 12px;
  right: 50%;
  left: -50%;
  height: 1px;
  background: #cbd5d0;
  content: "";
}

body .lake-step-rail li:first-child::before {
  display: none;
}

body .lake-step-rail span {
  position: relative;
  z-index: 1;
  display: grid;
  width: 25px;
  height: 25px;
  place-items: center;
  border: 1px solid #aeb9b4;
  border-radius: 50%;
  background: var(--lake-paper);
  font-size: 10px;
}

body .lake-step-rail small {
  font-size: 9px;
}

body .lake-step-rail li.is-active {
  color: var(--lake-green-dark);
}

body .lake-step-rail li.is-active::before,
body .lake-step-rail li.is-active span {
  border-color: var(--lake-green);
  color: #fff;
  background: var(--lake-green);
}

body .lake-publish-panel {
  padding: 18px 16px 96px;
  background: var(--lake-paper);
}

body .lake-publish-panel h2 {
  margin: 0;
  font-size: 17px;
  line-height: 24px;
}

body .lake-publish-panel > p {
  margin: 4px 0 14px;
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-publish-types {
  border-top: 1px solid var(--lake-line);
}

body .lake-publish-types button {
  display: grid;
  width: 100%;
  min-height: 66px;
  padding: 8px 4px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
  text-align: left;
  background: transparent;
}

body .lake-publish-types button > span {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  color: var(--lake-green);
  background: #e7f0eb;
}

body .lake-publish-types button > span svg {
  width: 17px;
}

body .lake-publish-types button b {
  font-size: 13px;
}

body .lake-publish-types button small {
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-publish-types button.is-active {
  color: var(--lake-green-dark);
  background: #edf5f1;
  box-shadow: inset 3px 0 var(--lake-green);
}

body .lake-session-ledger > div,
body .lake-session-ledger > label,
body .lake-form-ledger label,
body .lake-upload-row {
  display: grid;
  width: 100%;
  min-height: 58px;
  padding: 7px 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
  background: transparent;
}

body .lake-session-ledger > div > span,
body .lake-upload-row > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-session-ledger b,
body .lake-upload-row b {
  font-size: 13px;
}

body .lake-session-ledger small,
body .lake-upload-row small {
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-session-ledger > label,
body .lake-form-ledger label {
  position: relative;
  grid-template-columns: 92px minmax(0, 1fr) auto;
}

body .lake-session-ledger label > span,
body .lake-form-ledger label > span {
  color: var(--lake-muted);
  font-size: 11px;
}

body .lake-session-ledger input,
body .lake-form-ledger input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 8px;
  border: 1px solid #c9d3ce;
  border-radius: 4px;
  outline: none;
  background: #fff;
  text-align: left;
}

body .lake-session-ledger label > em,
body .lake-form-ledger label > em {
  color: var(--lake-muted);
  font-size: 10px;
  font-style: normal;
}

body .lake-edit-tree {
  margin-top: 12px;
  border-top: 1px solid var(--lake-line);
}

body .lake-edit-tree > li {
  min-height: 52px;
  padding: 10px 0;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-edit-tree > li > b,
body .lake-edit-tree > li > small {
  display: block;
}

body .lake-edit-tree > li > b {
  font-size: 13px;
}

body .lake-edit-tree > li > small {
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-edit-tree ul {
  margin: 8px 0 0 10px;
  padding-left: 18px;
  border-left: 1px solid #acbdb5;
}

body .lake-edit-tree ul li {
  min-height: 44px;
  padding: 11px 0;
  border-bottom: 1px dashed var(--lake-line);
  font-size: 11px;
}

body .lake-edit-tree em {
  float: right;
  color: var(--lake-red);
  font-style: normal;
}

body .lake-edit-tree button {
  display: flex;
  min-height: 44px;
  padding: 0;
  align-items: center;
  gap: 5px;
  color: var(--lake-green);
  background: transparent;
  font-size: 11px;
  font-weight: 700;
}

body .lake-upload-row {
  margin-top: 12px;
  grid-template-columns: 28px minmax(0, 1fr) 18px;
  text-align: left;
}

body .lake-upload-row > svg:first-child {
  color: var(--lake-green);
}

body .lake-upload-row > svg:last-child {
  width: 16px;
  color: #97a29d;
}

body .lake-publish-actions {
  position: absolute;
  z-index: 13;
  right: 0;
  bottom: var(--lake-dock-height);
  left: 0;
  display: grid;
  min-height: 64px;
  padding: 8px 12px;
  grid-template-columns: 1fr 1.7fr;
  gap: 8px;
  border-top: 1px solid var(--lake-line);
  background: rgba(251, 252, 250, 0.98);
}

body .lake-publish-actions button {
  display: flex;
  min-height: 46px;
  padding: 0 12px;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid #bdcac4;
  border-radius: 4px;
  background: #fff;
  font-weight: 700;
}

body .lake-publish-actions button:last-child {
  border-color: var(--lake-green);
  color: #fff;
  background: var(--lake-green);
}

/* Verification and ledger lists */
body .lake-order-ledger,
body .lake-ground-ledger,
body .lake-news-ledger {
  padding: 0 16px 90px;
  background: var(--lake-paper);
}

body .lake-order-ledger > div {
  display: grid;
  min-height: 67px;
  padding: 8px 0;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-order-ledger time {
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-order-ledger > div > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-order-ledger b {
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-order-ledger small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-order-ledger strong {
  color: var(--lake-green-dark);
  font-size: 11px;
  white-space: nowrap;
}

body .lake-order-ledger .is-warning strong {
  color: var(--lake-red);
}

body .lake-order-refund-form {
  display: flex;
  margin-top: 5px;
  justify-content: flex-start;
}

body .lake-order-refund-form button {
  min-height: 30px;
  padding: 5px 9px;
  gap: 5px;
  font-size: 11px;
}

body .lake-scan-stage {
  position: relative;
  display: flex;
  height: 300px;
  margin: 18px 26px 12px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 7px;
  color: #dbe7e1;
  background: #1b2924;
}

body .lake-scan-stage > svg {
  width: 88px;
  height: 88px;
  color: #75c8af;
}

body .lake-scan-stage b {
  font-size: 13px;
}

body .lake-scan-stage small {
  color: #a9bab3;
  font-size: 9px;
}

body .lake-scan-corner {
  position: absolute;
  width: 34px;
  height: 34px;
  border-color: #6fd2b4;
}

body .lake-scan-corner.c1 {
  top: 18px;
  left: 18px;
  border-top: 3px solid;
  border-left: 3px solid;
}

body .lake-scan-corner.c2 {
  top: 18px;
  right: 18px;
  border-top: 3px solid;
  border-right: 3px solid;
}

body .lake-scan-corner.c3 {
  bottom: 18px;
  left: 18px;
  border-bottom: 3px solid;
  border-left: 3px solid;
}

body .lake-scan-corner.c4 {
  right: 18px;
  bottom: 18px;
  border-right: 3px solid;
  border-bottom: 3px solid;
}

body .lake-code-entry {
  display: grid;
  margin: 0 16px;
  grid-template-columns: minmax(0, 1fr) 76px;
  border: 1px solid #bdcac4;
  border-radius: 4px;
  overflow: hidden;
  background: #fff;
}

body .lake-code-entry input {
  min-width: 0;
  height: 46px;
  padding: 0 10px;
  outline: none;
}

body .lake-code-entry > button {
  color: #fff;
  background: var(--lake-green);
  font-weight: 800;
}

/* Platform permission matrix */
body .lake-master-switch {
  display: grid;
  min-height: 67px;
  padding: 8px 12px 8px 16px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
  background: #edf3ef;
}

body .lake-master-switch > span {
  display: grid;
  min-width: 0;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
}

body .lake-master-switch > span > svg {
  grid-row: 1 / 3;
  color: var(--lake-green);
}

body .lake-master-switch b {
  font-size: 12px;
}

body .lake-master-switch small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-matrix-heading {
  display: flex;
  min-height: 57px;
  padding: 8px 10px 8px 16px;
  align-items: center;
  justify-content: space-between;
  background: var(--lake-paper);
}

body .lake-matrix-heading > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-matrix-heading b {
  font-size: 14px;
}

body .lake-matrix-heading small {
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-matrix-heading button {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  background: transparent;
}

body .lake-permission-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-inline: contain;
  background: var(--lake-paper);
  scrollbar-width: thin;
}

body .lake-permission-mobile {
  display: none;
}

body .lake-permission-matrix {
  width: 522px;
  min-width: 522px;
  border-spacing: 0;
  border-collapse: separate;
  table-layout: fixed;
  background: var(--lake-paper);
}

body .lake-permission-matrix th,
body .lake-permission-matrix td {
  height: 59px;
  padding: 0;
  border-right: 1px solid var(--lake-line);
  border-bottom: 1px solid var(--lake-line);
  text-align: center;
}

body .lake-permission-matrix thead th {
  position: sticky;
  z-index: 3;
  top: 0;
  height: 47px;
  color: var(--lake-muted);
  background: #eef2ef;
  font-size: 9px;
  font-weight: 700;
}

body .lake-permission-matrix th:first-child {
  position: sticky;
  z-index: 4;
  left: 0;
  width: 142px;
  padding: 0 8px;
  background: var(--lake-paper);
  box-shadow: 5px 0 8px rgba(29, 51, 44, 0.06);
  text-align: left;
}

body .lake-permission-matrix thead th:first-child {
  z-index: 6;
  background: #eef2ef;
}

body .lake-permission-matrix th:not(:first-child),
body .lake-permission-matrix td {
  width: 76px;
}

body .lake-permission-matrix tbody th > button {
  display: flex;
  width: 100%;
  min-height: 58px;
  padding: 6px 0;
  justify-content: center;
  flex-direction: column;
  text-align: left;
  background: transparent;
}

body .lake-permission-matrix tbody th b {
  overflow: hidden;
  max-width: 100%;
  font-size: 11px;
  line-height: 16px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-permission-matrix tbody th small {
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-matrix-toggle {
  display: grid;
  width: 44px;
  height: 44px;
  margin: 0 auto;
  padding: 0;
  place-items: center;
  border: 1px solid #c3cdc8;
  border-radius: 4px;
  color: #78837e;
  background: #f1f3f1;
}

body .lake-matrix-toggle > span {
  font-size: 13px;
  font-weight: 900;
}

body .lake-matrix-toggle.is-active {
  border-color: #78aa9a;
  color: #fff;
  background: var(--lake-green);
}

body .lake-matrix-toggle.is-locked {
  border-color: #d9aaa5;
  color: var(--lake-red);
  background: #faecea;
  opacity: 1;
}

body .lake-matrix-toggle.is-read {
  border-color: #a9c5d3;
  color: var(--lake-blue);
  background: #e7f0f4;
}

body .lake-matrix-result {
  display: inline-grid;
  min-width: 44px;
  min-height: 44px;
  padding: 0 5px;
  place-items: center;
  color: #68746f;
  font-size: 10px;
  font-weight: 800;
}

body .lake-matrix-result.is-open {
  color: var(--lake-green);
}

body .lake-matrix-result.is-pending {
  color: var(--lake-yellow);
}

body .lake-matrix-legend {
  display: flex;
  min-height: 45px;
  padding: 7px 12px 90px;
  align-items: flex-start;
  gap: 11px;
  background: var(--lake-paper);
}

body .lake-matrix-legend > span {
  display: flex;
  align-items: center;
  gap: 3px;
  color: var(--lake-muted);
  font-size: 9px;
  white-space: nowrap;
}

body .lake-matrix-legend i {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 1px solid #c6cfca;
  border-radius: 3px;
  font-size: 9px;
  font-style: normal;
}

body .lake-matrix-legend i.is-on {
  color: #fff;
  background: var(--lake-green);
}

body .lake-matrix-legend i.is-lock {
  color: var(--lake-red);
  background: #faecea;
}

body .lake-matrix-legend i.is-read {
  color: var(--lake-blue);
  background: #e7f0f4;
}

/* Platform grounds and detail */
body .lake-ground-queue {
  margin: 14px 12px;
  border-top: 2px solid var(--lake-yellow);
  background: var(--lake-paper);
}

body .lake-ground-queue > header,
body .lake-ground-queue > article {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 58px;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-ground-queue > header {
  min-height: 34px;
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-ground-queue > article {
  min-height: 80px;
}

body .lake-ground-queue time {
  color: var(--lake-muted);
  font-size: 9px;
  line-height: 15px;
}

body .lake-ground-queue article > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-ground-queue b {
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ground-queue small,
body .lake-ground-queue em {
  color: var(--lake-muted);
  font-size: 9px;
  font-style: normal;
  line-height: 15px;
}

body .lake-ground-queue em {
  display: flex;
  align-items: center;
  gap: 3px;
  color: var(--lake-green);
}

body .lake-ground-queue em svg {
  width: 13px;
  height: 13px;
}

body .lake-ground-queue article > button {
  min-height: 44px;
  border-radius: 4px;
  color: #fff;
  background: var(--lake-green);
  font-size: 11px;
  font-weight: 700;
}

body .lake-ground-ledger {
  padding-bottom: 90px;
}

body .lake-ground-ledger > button {
  display: grid;
  width: 100%;
  min-height: 66px;
  padding: 8px 0;
  grid-template-columns: minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
  text-align: left;
  background: transparent;
}

body .lake-ground-ledger > button > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-ground-ledger b {
  font-size: 12px;
}

body .lake-ground-ledger small {
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-ground-ledger em {
  color: var(--lake-red);
  font-size: 10px;
  font-style: normal;
}

body .lake-ground-ledger em.is-open {
  color: var(--lake-green);
}

body .lake-ground-ledger svg {
  width: 16px;
  color: #96a19c;
}

body .lake-permission-result {
  display: grid;
  min-height: 116px;
  padding: 17px 16px;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--lake-line);
  background: #f4f1e8;
}

body .lake-permission-result > span {
  display: grid;
  width: 50px;
  height: 50px;
  place-items: center;
  border-radius: 50%;
  color: var(--lake-yellow);
  background: #fff;
}

body .lake-permission-result > span.is-open {
  color: var(--lake-green);
}

body .lake-permission-result > div {
  min-width: 0;
}

body .lake-permission-result small {
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-permission-result h1 {
  margin: 2px 0;
  font-size: 18px;
}

body .lake-permission-result p {
  margin: 0;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 16px;
}

body .lake-causal-title {
  min-height: 43px;
  padding: 14px 16px 8px;
  border-bottom: 1px solid var(--lake-line);
  background: var(--lake-paper);
  font-size: 12px;
  font-weight: 800;
}

body .lake-permission-list {
  padding: 0 16px;
  background: var(--lake-paper);
}

body .lake-permission-row,
body .lake-manager-row {
  display: grid;
  min-height: 67px;
  padding: 8px 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-permission-row > span,
body .lake-manager-row > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-permission-row b,
body .lake-manager-row b {
  font-size: 12px;
}

body .lake-permission-row small,
body .lake-manager-row small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-permission-button {
  display: grid;
  min-width: 58px;
  min-height: 44px;
  padding: 0 8px;
  place-items: center;
  border: 1px solid #c3cdc8;
  border-radius: 4px;
  color: #69756f;
  background: #f0f2f0;
  font-size: 10px;
  font-weight: 800;
}

body .lake-permission-button.is-active {
  border-color: #74aa99;
  color: #fff;
  background: var(--lake-green);
}

body .lake-manager-row > div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border: 1px solid #bcc8c2;
  border-radius: 4px;
  overflow: hidden;
}

body .lake-manager-row button {
  min-width: 50px;
  min-height: 44px;
  padding: 0 7px;
  color: var(--lake-muted);
  background: #fff;
  font-size: 10px;
}

body .lake-manager-row button + button {
  border-left: 1px solid #bcc8c2;
}

body .lake-manager-row button.is-active {
  color: #fff;
  background: var(--lake-green);
}

body .lake-note-field {
  display: flex;
  margin: 14px 16px;
  flex-direction: column;
  gap: 5px;
}

body .lake-note-field > span {
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-note-field textarea {
  width: 100%;
  min-height: 72px;
  padding: 9px;
  resize: vertical;
  border: 1px solid #c5d0ca;
  border-radius: 4px;
  outline: none;
  background: #fff;
  font-size: 11px;
  line-height: 17px;
}

body .lake-permission-submit {
  width: calc(100% - 32px);
  margin: 0 16px 90px;
}

/* Platform news */
body .lake-news-ledger {
  padding-top: 12px;
}

body .lake-news-ledger > header {
  display: grid;
  min-height: 32px;
  grid-template-columns: minmax(0, 1fr) 52px;
  align-items: center;
  color: var(--lake-muted);
  border-top: 1px solid var(--lake-line);
  border-bottom: 1px solid var(--lake-line);
  font-size: 9px;
}

body .lake-news-ledger > article {
  display: grid;
  min-height: 84px;
  padding: 9px 0;
  grid-template-columns: 55px minmax(0, 1fr) 50px;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-news-ledger > article[hidden],
body .lake-register-list > details[hidden],
body .managed-news-filter-empty[hidden] {
  display: none;
}

body [data-managed-news-id] {
  transition: opacity 160ms ease, transform 160ms ease;
}

body [data-managed-news-id].is-removing {
  opacity: 0;
  pointer-events: none;
  transform: translateX(14px);
}

body .managed-news-filter-empty {
  margin: 12px 0 0;
}

body .lake-news-ledger img {
  width: 55px;
  height: 55px;
  border-radius: 3px;
  object-fit: cover;
}

body .lake-news-ledger article > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-news-ledger small,
body .lake-news-ledger em {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  font-style: normal;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-news-ledger b {
  overflow: hidden;
  font-size: 11px;
  line-height: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-news-ledger article > button {
  min-height: 44px;
  border: 1px solid #98bbae;
  border-radius: 4px;
  color: var(--lake-green);
  background: #fff;
  font-size: 10px;
  font-weight: 700;
}

@media (max-width: 370px) {
  body .lake-weather {
    padding-left: 5px;
    grid-template-columns: minmax(62px, 1.1fr) repeat(3, minmax(43px, 0.8fr)) 42px;
  }

  body .lake-weather > span {
    padding: 0 2px;
  }

  body .lake-weather > span b {
    font-size: 10px;
  }

  body .lake-result-row {
    grid-template-columns: 54px minmax(0, 1fr) auto;
    gap: 7px;
  }

  body .lake-result-row > img,
  body .lake-result-row > .lake-ground-image-placeholder {
    width: 54px;
    height: 54px;
  }

  body .lake-branch-line {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 3px;
  }

  body .lake-sale-switch {
    min-width: 60px;
    padding-right: 4px;
    padding-left: 4px;
  }

  body .lake-owner-flow small,
  body .lake-admin-summary small {
    font-size: 8px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body .lake-ground-sheet {
    transition: none;
  }
}

/* Real application shell -------------------------------------------------- */

body.front-app,
body.owner-app,
body.admin-app,
body.lake-theme {
  --bg: #eef2ef;
  --surface: var(--lake-paper);
  --surface-soft: var(--lake-paper-soft);
  --text: var(--lake-ink);
  --muted: var(--lake-muted);
  --line: var(--lake-line);
  --line-strong: #bdcac4;
  --green: var(--lake-green);
  --green-dark: var(--lake-green-dark);
  --green-soft: #e5f2ed;
  --blue: var(--lake-blue);
  --blue-soft: #e7f0f4;
  --amber: #986910;
  --amber-soft: #fbf2dc;
  --red: var(--lake-red);
  --red-soft: #faecea;
  --nav: #26312d;
  --shadow: 0 3px 12px rgba(25, 47, 39, 0.06);
  background: #e8ece8;
  color: var(--lake-ink);
}

body :is(.app-header, .backend-header) {
  border-color: var(--lake-line);
  background: rgba(251, 252, 250, 0.98);
  box-shadow: none;
}

body .brand-mark {
  border: 1px solid #b7d1c8;
  border-radius: 5px;
  color: var(--lake-green-dark);
  background: #e5f2ed;
}

body :is(.button, .button-secondary, .button-danger, .button-quiet, .btn) {
  border-radius: 4px;
  box-shadow: none;
}

body :is(.panel, .list-card, .metric, .task-row, .weather-strip, .notice) {
  border-color: var(--lake-line);
  border-radius: 5px;
  box-shadow: none;
}

body :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  border-color: #bdcac4;
  border-radius: 4px;
  background-color: #fff;
}

body :is(input, select, textarea):focus {
  border-color: #629888;
  outline: 3px solid rgba(8, 112, 95, 0.11);
}

body .mobile-nav {
  border-color: var(--lake-line);
  background: rgba(251, 252, 250, 0.98);
  box-shadow: 0 -3px 12px rgba(22, 52, 43, 0.07);
}

body .mobile-nav a.active {
  color: var(--lake-green);
}

body .environment-bar {
  background: #42514b;
  color: #f5f8f6;
}

/* The angler product is operated in WeChat, so it keeps the same phone
   geometry on every viewport instead of switching to a desktop shell. */
body.front-app .environment-bar,
body.front-app .app-frame {
  width: min(100%, 430px);
  margin-right: auto;
  margin-left: auto;
}

body.front-app .app-frame {
  position: relative;
  background: var(--lake-paper);
}

body.front-app .page-content {
  max-width: 430px;
}

body.front-app .mobile-nav {
  right: auto;
  left: 50%;
  width: min(100%, 430px);
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: 3px 4px env(safe-area-inset-bottom);
  transform: translateX(-50%);
}

body.front-app .mobile-nav a {
  min-height: 54px;
  padding: 5px 2px 3px;
  gap: 2px;
  color: #77837e;
  font-size: 10px;
  font-weight: 400;
  line-height: 14px;
}

body.front-app .mobile-nav a.active {
  color: var(--lake-green);
  font-weight: 600;
}

/* One location authority: app.js owns geolocation; this file only presents it. */
body [data-global-location-button] {
  display: inline-grid;
  min-width: 44px;
  max-width: min(42vw, 156px);
  min-height: 40px;
  padding: 4px 9px;
  grid-template-columns: 18px minmax(0, auto);
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px solid #b8c8c1;
  border-radius: 5px;
  color: var(--lake-green-dark);
  background: rgba(251, 252, 250, 0.98);
  font-size: 11px;
  font-weight: 700;
  line-height: 15px;
  white-space: nowrap;
}

body [data-global-location-button] svg {
  width: 17px;
  height: 17px;
}

body [data-global-location-button] :is([data-location-label], [data-global-location-label]) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body [data-global-location-button][data-location-state="loading"],
body [data-global-location-button].is-loading {
  color: #5e6d67;
  background: #f0f3f1;
}

body [data-global-location-button][data-location-state="loading"][disabled] {
  opacity: 1;
}

body [data-global-location-button][data-location-state="loading"] svg,
body [data-global-location-button].is-loading svg {
  animation: lake-location-spin 900ms linear infinite;
}

body [data-global-location-button][data-location-state="located"],
body [data-global-location-button].is-located {
  border-color: #8fb8ab;
  color: var(--lake-green-dark);
  background: #e5f2ed;
}

body [data-global-location-button][data-location-state="denied"],
body [data-global-location-button][data-location-state="error"],
body [data-global-location-button][data-location-state="unavailable"],
body [data-global-location-button][data-location-state="unsupported"],
body [data-global-location-button].is-error {
  border-color: #d9aaa5;
  color: #9d3f36;
  background: #faecea;
}

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

/* Full-screen angler map. Its shell mirrors the 430 x 844 preview: weather
   and search float over the map, the ledger snaps from the bottom, and the
   embedded dock owns the final 62px. */
body.lake-map-page {
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
}

body.lake-map-page > .environment-bar,
body.lake-map-page .app-frame > .app-header,
body.lake-map-page .app-frame > .mobile-nav {
  display: none !important;
}

body.lake-map-page .app-frame {
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
}

body.lake-map-page .page-content {
  position: absolute;
  inset: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

body.lake-map-page .lake-front-map {
  width: 100%;
  height: 100%;
  min-height: 0;
}

body.lake-map-page .lake-map-explorer {
  --lake-dock-height: 62px;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
}

body.lake-map-page .lake-map-canvas {
  inset: 0 0 calc(var(--lake-dock-height) + env(safe-area-inset-bottom));
}

body.lake-map-page .lake-ground-sheet {
  right: 0;
  bottom: calc(var(--lake-dock-height) + env(safe-area-inset-bottom));
  left: 0;
  width: auto;
  height: calc(100% - var(--lake-dock-height) - env(safe-area-inset-bottom) - 10px);
  border-right: 1px solid var(--lake-line);
  border-radius: 15px 15px 0 0;
}

body.lake-map-page .lake-sheet-grip {
  display: grid;
}

body.lake-map-page .lake-sheet-index,
body.lake-map-page .lake-detail-view {
  height: calc(100% - 28px);
}

body.lake-map-page .lake-map-command {
  top: 10px;
  right: 10px;
  left: 10px;
  width: auto;
}

body.lake-map-page .lake-dock {
  display: grid;
}

body .lake-map-command {
  pointer-events: none;
}

body .lake-map-command > *,
body .lake-map-command button,
body .lake-map-command input {
  pointer-events: auto;
}

body .lake-weather {
  grid-template-columns: minmax(68px, 1.2fr) repeat(3, minmax(48px, 0.8fr));
}

body.lake-map-page .lake-weather {
  min-height: 45px;
  margin: 0;
  padding: 0 3px 0 10px;
  grid-template-columns: minmax(68px, 1.2fr) repeat(3, minmax(48px, 0.8fr)) 44px;
  border-radius: 6px;
}

body.lake-map-page .lake-weather-location {
  width: 44px;
  max-width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  grid-template-columns: 1fr;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body.lake-map-page .lake-weather-location [data-global-location-label] {
  display: none;
}

body .lake-map-search > input {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  font-size: 13px;
}

body .lake-map-search > input:focus {
  border: 0;
  outline: 0;
}

body .lake-map-search > b {
  height: 42px;
  padding: 0 13px;
  display: flex;
  align-items: center;
  color: var(--lake-green);
  font-size: 12px;
  white-space: nowrap;
}

body .lake-sheet-index > header > span:last-child b {
  display: inline;
  margin-right: 2px;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}

body :is(.lake-map-recenter, .lake-weather [data-location-request-button]) {
  display: none !important;
}

body .lake-user-dot[hidden] {
  display: none !important;
}

body .lake-user-dot.is-located {
  animation: lake-user-pulse 1.8s ease-out infinite;
}

@keyframes lake-user-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(53, 107, 134, 0.22); }
  55% { box-shadow: 0 0 0 9px rgba(53, 107, 134, 0); }
}

body .lake-map-marker[hidden],
body .lake-result-row[hidden] {
  display: none !important;
}

body .lake-map-marker.is-selected {
  z-index: 5;
  color: var(--lake-ink);
  background: #f0bd49;
}

body .lake-map-marker.is-selected > i {
  background: #f0bd49;
}

body .lake-result-row.is-selected {
  background: #edf5f1;
}

body .lake-result-row.is-selected::before {
  position: absolute;
  top: 12px;
  bottom: 12px;
  left: -14px;
  width: 3px;
  background: var(--lake-green);
  content: "";
}

body .lake-result-list[data-lake-empty="1"]::after {
  display: block;
  padding: 28px 12px;
  color: var(--lake-muted);
  font-size: 12px;
  text-align: center;
  content: "没有符合条件的钓场";
}

body .lake-sheet-grip {
  touch-action: none;
  user-select: none;
}

body .lake-ground-sheet.is-dragging {
  transition: none;
}

/* Operation tree: disclosure and ticket switch have deliberately unrelated
   hit areas and state selectors. Collapsing can never change a form control. */
body .lake-tree-branch:not(.is-expanded) > .lake-tree-children,
body [data-lake-pond]:not(.is-expanded) > [data-lake-children] {
  display: none;
}

body .lake-tree-branch.is-expanded > .lake-branch-line .lake-disclosure,
body [data-lake-pond].is-expanded > * [data-lake-disclosure] {
  color: var(--lake-green);
}

body .lake-sale-switch :is(input, select),
body [data-lake-sales-control] :is(input, select) {
  pointer-events: auto;
}

body .lake-sale-switch[aria-checked="true"] {
  border-color: #9cc4b8;
  color: var(--lake-green-dark);
  background: #e5f2ed;
}

body .lake-sale-switch[aria-checked="true"] > span {
  background: var(--lake-green);
}

/* Permission tables keep the ground name visible while the independent
   controls scroll horizontally on narrow phones. */
body .lake-permission-scroll {
  scroll-snap-type: x proximity;
}

body .lake-permission-matrix td,
body .lake-permission-matrix th:not(:first-child) {
  scroll-snap-align: start;
}

body .lake-permission-matrix :is(button, a) {
  min-height: 44px;
}

/* Dashboard views live inside the real layout and therefore use normal page
   scrolling instead of the fixed-height preview viewport. */
body:is(.owner-app, .admin-app) .page-content > .lake-ledger-shell {
  height: auto;
  min-height: calc(100vh - 168px);
  overflow: visible;
}

body:is(.owner-app, .admin-app) .page-content > .lake-ledger-shell > .lake-scroll-screen {
  position: relative;
  inset: auto;
  height: auto;
  overflow: visible;
}

body:is(.owner-app, .admin-app) .page-content > .lake-ledger-shell .lake-ledger-header {
  position: relative;
  top: auto;
}

body .lake-owner-flow > a,
body .lake-admin-summary > a {
  display: flex;
  min-width: 0;
  min-height: 59px;
  padding: 7px 4px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border-right: 1px solid var(--lake-line);
  text-align: center;
}

body .lake-owner-flow > a:last-child,
body .lake-admin-summary > a:last-child {
  border-right: 0;
}

body .lake-review-ledger {
  margin: 14px 12px 0;
  padding: 0;
  border-top: 2px solid var(--lake-green);
}

body .lake-review-ledger > header {
  display: flex;
  min-height: 40px;
  padding: 7px 4px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-review-ledger > header b {
  font-size: 13px;
}

body .lake-review-ledger > header span {
  color: var(--lake-muted);
  font-size: 10px;
}

body .lake-review-ledger > .task-row {
  border: 0;
  border-bottom: 1px solid var(--lake-line);
  border-radius: 0;
}

body .lake-order-ledger {
  margin: 14px 12px 0;
  padding: 0;
  border-top: 2px solid var(--lake-blue);
  background: var(--lake-paper);
}

body .lake-order-ledger > header {
  display: flex;
  min-height: 42px;
  padding: 7px 4px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-order-ledger > header > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-order-ledger > header b {
  font-size: 13px;
}

body .lake-order-ledger > header small,
body .lake-order-ledger > header a {
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-order-ledger > .task-row {
  border: 0;
  border-bottom: 1px solid var(--lake-line);
  border-radius: 0;
}

body .lake-order-ledger > .task-row > span:last-child {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
}

body .lake-ground-sale-form {
  min-width: 66px;
  margin: 0;
}

body .lake-ground-sale-form .lake-sale-switch {
  width: 100%;
}

body .lake-map-notice {
  min-height: 38px;
  margin: 0;
  padding: 7px 14px;
  border-width: 1px 0;
  border-radius: 0;
  box-shadow: none;
}

body .lake-map-notice + .lake-map-filters {
  border-top: 0;
}

body .lake-disclosure svg {
  transition: transform 160ms ease;
}

body .lake-scroll-screen > .lake-weather {
  margin-bottom: 0;
  border-width: 0 0 1px;
  border-radius: 0;
  box-shadow: none;
}

body .lake-admin-screen .lake-matrix-legend {
  padding-bottom: 7px;
}

body .lake-tree-branch.is-expanded .lake-disclosure .lucide-chevron-right {
  transform: rotate(90deg);
}

body .lake-tree-branch:not(.is-expanded) .lake-disclosure .lucide-chevron-down {
  transform: rotate(-90deg);
}

body .lake-ground-queue-link {
  display: grid;
  min-height: 68px;
  margin: 12px;
  padding: 9px 10px;
  grid-template-columns: 24px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 8px;
  border-top: 2px solid var(--lake-yellow);
  border-bottom: 1px solid var(--lake-line);
  background: #fbf7eb;
}

body .lake-ground-queue-link > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-ground-queue-link b {
  font-size: 12px;
}

body .lake-ground-queue-link small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ground-queue-link > svg:first-child {
  color: var(--lake-yellow);
}

body .lake-ground-queue-link > svg:last-child {
  width: 16px;
  color: #8d9893;
}

body .lake-matrix-heading > a {
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
}

body .lake-permission-matrix tbody th > a {
  display: flex;
  width: 100%;
  min-height: 58px;
  padding: 6px 0;
  justify-content: center;
  flex-direction: column;
  text-align: left;
}

/* Secondary pages use ruled sections rather than stacked decorative cards. */
@media (max-width: 719px) {
  body:is(.front-app, .owner-app, .admin-app) .page-content {
    padding-right: 12px;
    padding-left: 12px;
  }

  body:is(.owner-app, .admin-app) .page-heading {
    min-height: 48px;
    margin: 0 -12px 10px;
    padding: 8px 12px 10px;
    align-items: center;
    border-bottom: 1px solid var(--lake-line);
    background: var(--lake-paper);
  }

  body:is(.owner-app, .admin-app) .page-heading h1 {
    font-size: 19px;
  }

  body:is(.owner-app, .admin-app) .panel {
    border-radius: 0;
  }

  body:is(.owner-app, .admin-app) .panel + .panel {
    margin-top: 8px;
  }

  body:is(.owner-app, .admin-app) .list-card {
    border-radius: 4px;
  }

  body .backend-header .header-actions {
    margin-left: auto;
  }

  body [data-global-location-button] {
    max-width: 126px;
    min-height: 40px;
  }

  body.lake-map-page .page-content {
    padding: 0;
  }

  body.lake-map-page .mobile-nav {
    z-index: 80;
  }

  body .lake-permission-scroll {
    display: none;
    margin-right: -12px;
    margin-left: -12px;
    width: calc(100% + 24px);
    max-width: none;
  }

  body .lake-permission-mobile {
    display: grid;
    padding: 0 12px 12px;
    gap: 10px;
    background: var(--lake-paper);
  }

  body .lake-permission-card {
    overflow: hidden;
    border: 1px solid var(--lake-line);
    border-top: 2px solid var(--lake-green);
    border-radius: 4px;
    background: var(--lake-paper);
  }

  body .lake-permission-card-head {
    display: grid;
    min-height: 58px;
    padding: 8px 10px 8px 12px;
    grid-template-columns: minmax(0, 1fr) auto 18px;
    align-items: center;
    gap: 7px;
    background: #f2f7f4;
  }

  body .lake-permission-card-head > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
  }

  body .lake-permission-card-head b {
    overflow: hidden;
    font-size: 14px;
    line-height: 20px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body .lake-permission-card-head small {
    overflow: hidden;
    color: var(--lake-muted);
    font-size: 10px;
    line-height: 16px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body .lake-permission-card-head em {
    color: var(--lake-green-dark);
    font-size: 10px;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
  }

  body .lake-permission-card-head > svg {
    width: 16px;
    color: var(--lake-muted);
  }

  body .lake-permission-mobile-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    border-top: 1px solid var(--lake-line);
    background: var(--lake-line);
  }

  body .lake-permission-mobile-item {
    display: grid;
    min-width: 0;
    min-height: 68px;
    padding: 8px 9px 8px 11px;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: center;
    gap: 6px;
    background: var(--lake-paper);
  }

  body .lake-permission-mobile-item.is-wide {
    grid-column: 1 / -1;
  }

  body .lake-permission-mobile-item > span {
    display: flex;
    min-width: 0;
    flex-direction: column;
  }

  body .lake-permission-mobile-item b {
    font-size: 12px;
    line-height: 18px;
  }

  body .lake-permission-mobile-item small {
    overflow: hidden;
    color: var(--lake-muted);
    font-size: 9px;
    line-height: 15px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body .lake-permission-mobile-item .lake-matrix-toggle {
    margin: 0;
  }

  body .lake-permission-mobile-item .lake-matrix-result {
    width: 44px;
    min-width: 44px;
    padding: 0;
    border: 1px solid #d0d8d4;
    border-radius: 4px;
    background: #f1f3f1;
  }

  body .lake-permission-mobile-item .lake-matrix-result.is-open {
    border-color: #78aa9a;
    color: #fff;
    background: var(--lake-green);
  }

  body:is(.owner-app, .admin-app) .page-content > .lake-ledger-shell {
    width: calc(100% + 24px);
    max-width: none;
    margin-right: -12px;
    margin-left: -12px;
  }
}

@media (max-width: 370px) {
  body [data-global-location-button] {
    max-width: 105px;
    padding-right: 6px;
    padding-left: 6px;
  }

  body :is(.app-header, .backend-header) {
    gap: 6px;
    padding-right: 8px;
    padding-left: 8px;
  }

  body :is(.app-header, .backend-header) .brand small {
    display: none;
  }
}

/* Full lake-ledger treatment for real business pages --------------------- */

body .lake-ledger-shell {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  background: var(--lake-paper);
}

body .lake-publish-header > a,
body .lake-detail-ledger-head > a,
body .lake-header-back {
  display: grid;
  width: 44px;
  height: 44px;
  margin-left: -8px;
  padding: 0;
  place-items: center;
  flex: 0 0 44px;
  color: var(--lake-ink);
  background: transparent;
}

body.front-app .page-content > .lake-ledger-shell {
  height: auto;
  min-height: calc(100vh - 168px);
  overflow: visible;
}

body.front-app .page-content > .lake-front-detail .lake-detail-view {
  height: auto;
  min-height: calc(100vh - 168px);
  overflow: visible;
}

/* Links and buttons are interchangeable commands in ruled navigation. */
body .lake-page-tabs > :is(a, button),
body .lake-admin-tabs > :is(a, button) {
  position: relative;
  display: inline-flex;
  min-width: max-content;
  min-height: 44px;
  padding: 0 2px;
  align-items: center;
  justify-content: center;
  border: 0;
  color: var(--lake-muted);
  background: transparent;
  font-size: 12px;
  white-space: nowrap;
}

body .lake-page-tabs > :is(a, button).is-active,
body .lake-admin-tabs > :is(a, button).is-active {
  color: var(--lake-green-dark);
  font-weight: 800;
}

body .lake-page-tabs > :is(a, button).is-active::after,
body .lake-admin-tabs > :is(a, button).is-active::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 3px;
  background: var(--lake-green);
  content: "";
}

body .lake-ruled-menu {
  width: 100%;
  min-width: 0;
}

body .lake-ruled-menu > :is(a, button) {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 66px;
  padding: 8px 0;
  grid-template-columns: 30px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  border: 0;
  border-bottom: 1px solid var(--lake-line);
  color: var(--lake-ink);
  text-align: left;
  background: transparent;
}

body .lake-ruled-menu > :is(a, button) > svg:first-child {
  color: var(--lake-green);
}

body .lake-ruled-menu > :is(a, button) > svg:last-child {
  width: 17px;
  color: #9aa59f;
}

body .lake-ruled-menu > :is(a, button) > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-ruled-menu > :is(a, button):active {
  background: #edf5f1;
}

body .lake-menu-section + .lake-menu-section {
  border-top: 8px solid var(--lake-paper-soft);
}

body .lake-menu-section .lake-ruled-menu {
  margin-top: 0;
  padding-bottom: 0;
}

body .lake-menu-section:last-child .lake-ruled-menu {
  padding-bottom: 90px;
}

/* Register rows: owner news, grounds, bills and draw sessions. */
body .lake-register-list {
  margin: 0;
  padding: 0 16px 90px;
  background: var(--lake-paper);
}

body .lake-register-entry {
  margin: 0;
  border: 0;
  border-bottom: 1px solid var(--lake-line);
  background: transparent;
}

body .lake-register-entry > summary {
  display: grid;
  min-width: 0;
  min-height: 78px;
  padding: 8px 0;
  grid-template-columns: 38px minmax(0, 1fr) minmax(64px, auto);
  align-items: center;
  gap: 9px;
  cursor: pointer;
  list-style: none;
}

body .lake-register-entry > summary::-webkit-details-marker {
  display: none;
}

body .lake-register-entry[open] > summary {
  background: #f1f6f3;
  box-shadow: 16px 0 #f1f6f3, -16px 0 #f1f6f3;
}

body .lake-method-stamp {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid #a9c4bb;
  border-radius: 3px;
  color: var(--lake-green-dark);
  background: #e7f1ed;
  font-size: 12px;
  font-weight: 900;
}

body .lake-method-stamp svg {
  width: 17px;
  height: 17px;
}

body .lake-register-main {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-register-main small,
body .lake-register-main em {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  font-style: normal;
  line-height: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-register-main b {
  overflow: hidden;
  margin: 1px 0;
  font-size: 13px;
  line-height: 19px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-register-total {
  display: flex;
  min-width: 0;
  align-items: flex-end;
  flex-direction: column;
  gap: 4px;
  text-align: right;
}

body .lake-register-total {
  max-width: 96px;
}

body .lake-register-total > small {
  color: var(--lake-muted);
  font-size: 8px;
  white-space: nowrap;
}

body .lake-register-total strong {
  color: var(--lake-red);
  font-size: 13px;
  line-height: 18px;
  white-space: nowrap;
}

body .lake-ledger-status {
  display: inline-flex;
  min-height: 22px;
  padding: 2px 6px;
  align-items: center;
  border: 1px solid #c2cdc8;
  border-radius: 3px;
  color: var(--lake-muted);
  background: #fff;
  font-size: 9px;
  line-height: 14px;
  white-space: nowrap;
}

body .lake-ledger-status.is-open {
  border-color: #9ac3b7;
  color: var(--lake-green-dark);
  background: #e5f2ed;
}

body .lake-ledger-status.is-pending {
  border-color: #d8c183;
  color: #7b590f;
  background: #fbf2dc;
}

body .lake-ledger-status.is-closed {
  border-color: #d8aaa5;
  color: #9b4037;
  background: #faecea;
}

body .lake-register-detail {
  padding: 0 0 12px 47px;
  border-top: 1px dashed #c4d0ca;
}

body .lake-register-detail .lake-rule-ledger {
  margin: 0;
  padding: 0;
}

body .lake-register-detail .lake-rule-ledger > div {
  grid-template-columns: 76px minmax(0, 1fr);
}

body .lake-rule-ledger dd,
body .lake-review-ledger dd {
  min-width: 0;
  overflow-wrap: anywhere;
}

body .lake-news-register-entry .lake-method-stamp {
  border-color: #d8c183;
  color: #7b590f;
  background: #fbf2dc;
}

body .lake-ground-register-entry .lake-method-stamp {
  border-color: #9ac3b7;
  color: var(--lake-green-dark);
  background: #e5f2ed;
}

body .lake-bill-entry .lake-method-stamp {
  border-color: #a9c5d3;
  color: var(--lake-blue);
  background: #e7f0f4;
}

body .lake-draw-entry .lake-method-stamp {
  border-color: #c4b6d0;
  color: #69517d;
  background: #f0ebf3;
}

body .lake-record-actions {
  display: flex;
  padding-top: 11px;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}

body .lake-record-actions form {
  display: flex;
  min-width: 0;
  margin: 0;
  flex-wrap: wrap;
  gap: 7px;
}

body .lake-record-actions :is(a, button) {
  min-height: 40px;
}

body .lake-ledger-empty {
  display: grid;
  min-height: 210px;
  padding: 28px 16px;
  place-items: center;
  align-content: center;
  gap: 5px;
  color: var(--lake-muted);
  text-align: center;
}

body .lake-ledger-empty > svg {
  width: 34px;
  height: 34px;
  margin-bottom: 4px;
  color: #8aaaa0;
}

body .lake-ledger-empty b {
  color: var(--lake-ink);
  font-size: 14px;
}

body .lake-ledger-empty small {
  font-size: 10px;
}

body .lake-ledger-empty > :is(a, button) {
  margin-top: 10px;
}

/* Forms and publishing workflow. */
body .lake-ledger-section {
  margin: 0;
  border-top: 2px solid var(--lake-green);
  border-bottom: 1px solid var(--lake-line);
  background: var(--lake-paper);
}

body .lake-ledger-section + .lake-ledger-section {
  margin-top: 10px;
}

body .lake-section-title {
  display: flex;
  min-height: 58px;
  padding: 9px 16px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--lake-line);
  background: #eef3ef;
}

body .lake-section-title > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-section-title small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  line-height: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-section-title b {
  font-size: 14px;
  line-height: 20px;
}

body .lake-section-title > svg {
  color: var(--lake-green);
}

body .lake-form-sheet {
  display: grid;
  padding: 4px 16px 12px;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

body .lake-form-sheet > .field {
  min-width: 0;
  padding: 10px 0;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-form-sheet > .field:last-child {
  border-bottom: 0;
}

body .lake-form-sheet .field > label,
body .lake-ground-form .field > label {
  margin-bottom: 5px;
  color: var(--lake-muted);
  font-size: 10px;
  font-weight: 700;
}

body .lake-form-sheet :is(input, select, textarea),
body .lake-ground-form .field > :is(input, select, textarea) {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

body .lake-input-wrap {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
}

body .lake-input-wrap > input {
  min-width: 0;
  padding-right: 34px;
}

body .lake-input-wrap > em {
  position: absolute;
  right: 10px;
  color: var(--lake-muted);
  font-size: 10px;
  font-style: normal;
  pointer-events: none;
}

body .lake-file-entry {
  display: grid !important;
  min-height: 60px;
  margin: 0 !important;
  padding: 8px 9px;
  grid-template-columns: 28px minmax(0, 1fr) 1px;
  align-items: center;
  gap: 8px;
  border: 1px dashed #a9bbb3;
  border-radius: 4px;
  color: var(--lake-green-dark) !important;
  background: #f5f8f6;
  cursor: pointer;
}

body .lake-file-entry > svg {
  color: var(--lake-green);
}

body .lake-file-entry > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-file-entry b {
  font-size: 12px;
}

body .lake-file-entry small {
  overflow: hidden;
  color: var(--lake-muted);
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-file-entry > input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

body .lake-form-actions,
body .lake-publish-submit {
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
}

body .lake-form-actions > :only-child,
body .lake-publish-submit > :only-child,
body .lake-publish-submit > [hidden] + :last-child {
  grid-column: 1 / -1;
}

body .lake-editor-type-rail {
  display: grid;
  width: 100%;
  min-width: 0;
  grid-auto-flow: column;
  grid-auto-columns: minmax(82px, 1fr);
  overflow-x: auto;
  border-bottom: 1px solid var(--lake-line);
  background: var(--lake-paper);
}

body .lake-editor-type-rail > a {
  position: relative;
  display: grid;
  min-width: 0;
  min-height: 72px;
  padding: 8px 5px 7px;
  place-items: center;
  align-content: center;
  gap: 2px;
  border-right: 1px solid var(--lake-line);
  color: var(--lake-muted);
  text-align: center;
}

body .lake-editor-type-rail > a > span {
  display: grid;
  height: 22px;
  place-items: center;
}

body .lake-editor-type-rail > a svg {
  width: 17px;
  height: 17px;
}

body .lake-editor-type-rail b {
  font-size: 11px;
  white-space: nowrap;
}

body .lake-editor-type-rail small {
  overflow: hidden;
  width: 100%;
  color: inherit;
  font-size: 8px;
  line-height: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-editor-type-rail > a.is-active {
  color: var(--lake-green-dark);
  background: #edf5f1;
  font-weight: 800;
}

body .lake-editor-type-rail > a.is-active::after {
  position: absolute;
  right: 8px;
  bottom: 0;
  left: 8px;
  height: 3px;
  background: var(--lake-green);
  content: "";
}

body .lake-wizard-rail {
  display: grid;
  margin: 0;
  padding: 10px 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-bottom: 1px solid var(--lake-line);
  background: #f4f6f4;
}

body .lake-wizard-rail .wizard-step {
  position: relative;
  min-width: 0;
  min-height: 38px;
  padding: 2px 3px 2px 29px;
  place-items: start;
  align-content: center;
  border-radius: 0;
  color: var(--lake-muted);
  background: transparent;
  font-size: 9px;
  line-height: 13px;
  text-align: left;
}

body .lake-wizard-rail .wizard-step::before {
  position: absolute;
  top: 19px;
  right: calc(100% - 20px);
  left: -12px;
  height: 1px;
  background: #bbc7c1;
  content: "";
}

body .lake-wizard-rail .wizard-step:first-child::before {
  display: none;
}

body .lake-wizard-rail .wizard-step b {
  position: absolute;
  top: 7px;
  left: 4px;
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border: 1px solid #aebbb5;
  border-radius: 50%;
  background: var(--lake-paper);
  font-size: 9px;
}

body .lake-wizard-rail .wizard-step.active {
  color: var(--lake-green-dark);
  background: transparent;
}

body .lake-wizard-rail .wizard-step.active b {
  border-color: var(--lake-green);
  color: #fff;
  background: var(--lake-green);
}

body .lake-publish-form {
  min-width: 0;
}

body .lake-publish-form .lake-publish-panel {
  padding: 0 0 96px;
}

body .lake-publish-form.is-single-page .lake-publish-panel {
  padding: 0 0 14px;
  border-bottom: 8px solid #edf1ee;
}

body .lake-publish-form.is-single-page .lake-publish-panel:last-of-type {
  padding-bottom: 88px;
  border-bottom: 0;
}

body .lake-publish-form .lake-publish-panel > .lake-section-title {
  margin: 0;
}

body .lake-publish-form .lake-ledger-footnote,
body .lake-register-detail .lake-ledger-footnote {
  margin: 12px 16px 0;
}

body .lake-publish-review {
  margin-top: 0;
  padding: 0 16px;
}

body .lake-publish-final {
  padding-top: 8px;
}

body .lake-replace-bulletin {
  min-height: 44px;
  margin-top: 8px;
  justify-content: center;
  white-space: normal;
}

body .lake-replace-bulletin-status {
  display: block;
  min-height: 17px;
  margin-top: 5px;
  color: var(--lake-green-dark);
  font-size: 10px;
  line-height: 17px;
}

body .lake-replace-bulletin-status.is-error {
  color: var(--lake-red);
}

body .lake-confirmation {
  display: flex;
  min-height: 52px;
  padding: 8px 0;
  align-items: center;
  gap: 8px;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 16px;
}

body .lake-confirmation input {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

body .lake-commercial-heading {
  display: flex;
  min-height: 58px;
  padding: 9px 16px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--lake-line);
  background: #eef3ef;
}

body .lake-commercial-heading > span {
  display: flex;
  min-width: 0;
  flex-direction: column;
}

body .lake-commercial-heading small {
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-commercial-heading b {
  font-size: 14px;
}

body .lake-commercial-heading > svg {
  color: var(--lake-green);
}

body .lake-commercial-tree {
  padding: 12px 16px 0;
  gap: 10px;
}

body .lake-commercial-tree .builder-pond {
  border: 0;
  border-top: 2px solid var(--lake-green);
  border-bottom: 1px solid var(--lake-line);
  border-radius: 0;
  background: var(--lake-paper);
}

body .lake-commercial-tree :is(.builder-pond, .builder-block, .advanced-settings) > summary {
  display: flex;
  min-width: 0;
  min-height: 48px;
  padding: 4px 2px 4px 10px;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-radius: 0;
  color: var(--lake-ink);
  background: transparent;
  font-size: 11px;
  font-weight: 800;
  list-style: none;
}

body .lake-commercial-tree :is(.builder-pond, .builder-block, .advanced-settings) > summary::-webkit-details-marker {
  display: none;
}

body .lake-commercial-tree .builder-pond > summary {
  background: #edf4f0;
  font-size: 12px;
}

body .lake-commercial-tree .builder-block {
  border: 0;
  border-top: 1px solid var(--lake-line);
  border-left: 2px solid #a9bbb3;
  border-radius: 0;
}

body .lake-commercial-tree .play-block {
  border-left-color: var(--lake-green);
}

body .lake-commercial-tree .session-block {
  border-left-color: var(--lake-yellow);
}

body .lake-commercial-tree .ticket-block {
  border-left-color: var(--lake-blue);
}

body .lake-commercial-tree .advanced-settings {
  border: 1px dashed #b9c5c0;
  border-radius: 3px;
  background: #f7f9f7;
}

body .lake-commercial-tree .builder-fields {
  min-width: 0;
  padding: 9px 0 10px 10px;
  gap: 9px;
  border-top: 1px solid var(--lake-line);
}

body .lake-commercial-tree .builder-fields .field {
  min-width: 0;
}

body .lake-commercial-tree .builder-fields :is(input, select, textarea) {
  width: 100%;
  min-width: 0;
}

body .lake-leisure-builder .play-block textarea {
  min-height: 88px;
  resize: vertical;
}

body .lake-leisure-builder .input-unit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

body .lake-leisure-builder .input-unit > span {
  padding: 0 10px;
  color: var(--lake-muted);
  font-size: 11px;
}

body .lake-commercial-tree .builder-delete {
  width: 44px;
  height: 44px;
  border-radius: 0;
}

body .lake-add-tree-item {
  display: flex;
  width: calc(100% - 32px);
  min-height: 46px;
  margin: 12px 16px 0;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px dashed #8eafa4;
  border-radius: 4px;
  color: var(--lake-green-dark);
  background: #f1f6f3;
  font-size: 11px;
  font-weight: 800;
}

/* Side-session selling switches remain independent from disclosure. */
body .lake-side-session-tree {
  padding: 12px 16px 0;
}

body .lake-side-session {
  margin-bottom: 10px;
  border-top: 2px solid #aab8b2;
  border-bottom: 1px solid var(--lake-line);
  background: var(--lake-paper);
}

body .lake-side-session.is-enabled {
  border-top-color: var(--lake-green);
}

body .lake-side-session-head {
  display: grid;
  min-height: 70px;
  padding: 7px 0;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
}

body .lake-side-toggle {
  min-width: 91px;
  min-height: 52px;
  padding: 4px 0 4px 5px;
  gap: 6px;
}

body .lake-side-toggle .switch-copy b {
  font-size: 10px;
  white-space: nowrap;
}

body .lake-side-toggle .switch-copy small {
  font-size: 8px;
  white-space: nowrap;
}

body .lake-side-session-details {
  border-top: 1px solid var(--lake-line);
}

body .lake-side-session-details > summary {
  display: flex;
  min-height: 46px;
  padding: 0 4px 0 10px;
  align-items: center;
  justify-content: space-between;
  color: var(--lake-muted);
  font-size: 10px;
  font-weight: 700;
  list-style: none;
}

body .lake-side-session-details > summary::-webkit-details-marker {
  display: none;
}

body .lake-side-session-details > summary svg {
  width: 16px;
  transition: transform 160ms ease;
}

body .lake-side-session-details[open] > summary svg {
  transform: rotate(180deg);
}

body .lake-session-form {
  display: grid;
  padding: 0 10px 10px;
  grid-template-columns: minmax(0, 1fr);
  gap: 9px;
}

body .lake-side-session:not(.is-enabled) .lake-session-form {
  opacity: 0.52;
}

/* Grounds, navigation and permission cause/effect. */
body .lake-record-form,
body .lake-ground-form {
  width: 100%;
  min-width: 0;
}

body .lake-ground-step-rail {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body .lake-navigation-search {
  padding: 12px 16px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-navigation-search > label {
  display: block;
  margin-bottom: 6px;
  color: var(--lake-muted);
  font-size: 10px;
  font-weight: 700;
}

body .lake-navigation-search .lake-code-entry {
  margin: 0;
}

body .lake-navigation-search .amap-results {
  max-width: 100%;
}

body .lake-navigation-layout {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body .lake-navigation-block {
  min-width: 0;
  padding: 12px 16px;
  border: 1px solid var(--lake-line);
  border-radius: 5px;
  background: #f7faf8;
}

body .lake-navigation-layout .lake-navigation-search {
  padding: 12px;
}

body .lake-navigation-actions {
  padding: 10px 12px 12px;
}

body .lake-navigation-action-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

body .lake-navigation-action-grid .lake-location-fill {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  margin: 0;
  padding: 8px 6px;
  gap: 5px;
  white-space: normal;
}

body .lake-navigation-action-grid .lake-location-fill span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

body .lake-navigation-link {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--lake-line);
}

body .lake-navigation-link > label {
  display: block;
  margin-bottom: 6px;
  color: var(--lake-muted);
  font-size: 10px;
  font-weight: 700;
}

body .lake-navigation-link .lake-code-entry {
  margin: 0;
}

body .lake-navigation-link [data-amap-link-status] {
  display: block;
  min-height: 16px;
  margin-top: 5px;
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 16px;
}

body .lake-navigation-fields {
  width: 100%;
  margin-top: 0;
}

body .amap-results {
  max-height: 276px;
  margin-top: 0;
  overflow-x: hidden;
  overflow-y: auto;
  gap: 0;
  border: 1px solid #b9c8c1;
  border-top: 0;
  border-radius: 0 0 4px 4px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(22, 52, 43, 0.13);
}

body .amap-results[hidden] {
  display: none;
}

body .amap-result {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: 8px 10px;
  border: 0;
  border-bottom: 1px solid #e1e8e4;
  border-radius: 0;
  background: #fff;
  text-align: left;
}

body .amap-result:last-child {
  border-bottom: 0;
}

body .amap-result:active {
  background: #edf5f1;
}

body .amap-result b {
  margin-right: 8px;
  color: var(--lake-ink);
  font-size: 12px;
}

body .amap-result span {
  color: var(--lake-muted);
  font-size: 10px;
  line-height: 16px;
}

body .amap-result-status {
  margin: 0;
  padding: 12px 10px;
  color: var(--lake-muted);
  font-size: 11px;
}

body .lake-location-fill {
  display: flex;
  width: calc(100% - 32px);
  min-height: 46px;
  margin: 4px 16px 14px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #99b9ae;
  border-radius: 4px;
  color: var(--lake-green-dark);
  background: #edf5f1;
  font-size: 11px;
  font-weight: 800;
}

body .lake-location-fill[data-location-fill-state="complete"] {
  border-color: var(--lake-green);
  color: #fff;
  background: var(--lake-green);
}

body .lake-location-fill[data-location-fill-state="failed"] {
  border-color: #c8a75d;
  color: #725313;
  background: #fff7dd;
}

body .lake-permission-chain {
  display: grid;
  min-height: 72px;
  padding: 8px 4px;
  grid-template-columns: minmax(0, 1fr) 14px minmax(0, 1fr) 14px minmax(0, 1fr);
  align-items: center;
  gap: 2px;
  border-bottom: 1px solid var(--lake-line);
  background: #f1f5f2;
}

body .lake-permission-chain > span {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-direction: column;
  text-align: center;
}

body .lake-permission-chain small {
  color: var(--lake-muted);
  font-size: 8px;
  white-space: nowrap;
}

body .lake-permission-chain b {
  margin-top: 2px;
  font-size: 10px;
  white-space: nowrap;
}

body .lake-permission-chain > svg {
  width: 13px;
  color: #9ba7a1;
}

body .lake-ground-sales-control {
  display: grid;
  min-height: 76px;
  padding: 10px 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-ground-sales-copy {
  display: grid;
  min-width: 0;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

body .lake-ground-sales-copy > svg {
  width: 20px;
  height: 20px;
  padding: 7px;
  border-radius: 5px;
  color: var(--lake-green-dark);
  background: #e5f2ed;
  box-sizing: content-box;
}

body .lake-ground-sales-copy > span {
  display: grid;
  min-width: 0;
  gap: 3px;
}

body .lake-ground-sales-copy b {
  font-size: 13px;
}

body .lake-ground-sales-copy small {
  color: var(--lake-muted);
  font-size: 9px;
  line-height: 14px;
}

body .lake-ground-sales-control form {
  margin: 0;
}

body .lake-ground-sales-toggle {
  display: grid;
  min-width: 90px;
  min-height: 46px;
  padding: 4px 7px;
  grid-template-columns: 38px minmax(0, auto);
  align-items: center;
  gap: 6px;
  border: 1px solid #c7d0cc;
  border-radius: 5px;
  color: #5f6b65;
  background: #f2f4f3;
}

body .lake-ground-sales-toggle > span {
  display: block;
  width: 38px;
  height: 22px;
  padding: 2px;
  border-radius: 12px;
  background: #a9b2ae;
  box-sizing: border-box;
}

body .lake-ground-sales-toggle > span > i {
  display: block;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgb(0 0 0 / 20%);
  transition: transform 160ms ease;
}

body .lake-ground-sales-toggle > strong {
  font-size: 10px;
  white-space: nowrap;
}

body .lake-ground-sales-toggle.is-active {
  border-color: #8fbcaf;
  color: var(--lake-green-dark);
  background: #e5f2ed;
}

body .lake-ground-sales-toggle.is-active > span {
  background: var(--lake-green);
}

body .lake-ground-sales-toggle.is-active > span > i {
  transform: translateX(16px);
}

body .lake-ground-form .lake-publish-panel {
  margin: 0;
  padding: 16px;
  border-bottom: 8px solid var(--lake-paper-soft);
}

body .lake-admin-screen > .lake-publish-panel,
body .lake-admin-screen > form > .lake-publish-panel {
  margin: 0;
  padding: 16px;
  border-bottom: 8px solid var(--lake-paper-soft);
}

body .lake-ground-form .lake-publish-panel > p {
  margin-bottom: 12px;
}

body .lake-ground-form .lake-form-ledger select {
  width: 100%;
  min-width: 0;
}

body .lake-ground-form .button-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

body .lake-ground-form .button-row > :is(input, button) {
  min-width: 0;
}

/* Verification, settlement and draw ledgers. */
body .lake-live-scan {
  height: auto;
  min-height: 318px;
  margin: 14px 16px 12px;
  padding: 18px;
}

body .lake-live-scan .scan-frame {
  width: 100%;
  max-width: 320px;
  aspect-ratio: 4 / 3;
  border-radius: 0;
  background: #101814;
}

body .lake-live-scan .scan-frame video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body .lake-scan-trigger {
  display: flex;
  width: min(100%, 220px);
  min-height: 46px;
  margin-top: 12px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid #68aa95;
  border-radius: 4px;
  color: #fff;
  background: var(--lake-green);
  font-size: 11px;
  font-weight: 800;
}

body .lake-live-scan > p {
  min-height: 16px;
  margin: 5px 0 0;
  color: #a9bab3;
  font-size: 9px;
  text-align: center;
}

body .lake-manual-verify {
  padding-bottom: 14px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-inline-notice {
  margin: 0;
  border-width: 0 0 1px;
  border-radius: 0;
}

body .lake-manual-verify .lake-tree-heading {
  min-height: 57px;
}

body .lake-verify-ticket {
  margin-bottom: 90px;
}

body .lake-settlement-ledger {
  padding: 0 16px 90px;
}

body .lake-settlement-help {
  margin: -6px 16px 0;
  padding-bottom: 10px;
}

body .lake-settlement-swipe {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--lake-line);
  background: #fff2ef;
}

body .lake-settlement-surface {
  position: relative;
  z-index: 1;
  background: var(--lake-paper, #f8fbf9);
  transition: transform 180ms ease;
  touch-action: pan-y;
  outline: none;
}

body .lake-settlement-swipe.is-revealed .lake-settlement-surface {
  transform: translateX(112px);
}

body .lake-settlement-swipe-action {
  position: absolute;
  inset: 0 auto 0 0;
  z-index: 0;
  display: flex;
  width: 112px;
  align-items: stretch;
  visibility: hidden;
  opacity: 0;
  transition: opacity 180ms ease, visibility 180ms ease;
}

body .lake-settlement-swipe.is-revealed .lake-settlement-swipe-action {
  visibility: visible;
  opacity: 1;
}

body .lake-settlement-swipe-action form,
body .lake-settlement-remove {
  display: flex;
  width: 100%;
  min-height: 100%;
  align-items: center;
  justify-content: center;
}

body .lake-settlement-remove {
  flex-direction: column;
  gap: 4px;
  border: 0;
  background: #c64e45;
  color: #fff;
  font: inherit;
  font-size: 11px;
  cursor: pointer;
}

body .lake-settlement-remove svg,
body .lake-settlement-inline-remove svg {
  width: 16px;
  height: 16px;
}

body .lake-settlement-row {
  display: grid;
  min-width: 0;
  padding: 11px 0;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
}

body .lake-settlement-inline-remove {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 4px;
  padding: 5px 7px;
  border: 1px solid #e4b2ad;
  border-radius: 6px;
  background: #fff8f6;
  color: #a73d36;
  font: inherit;
  font-size: 10px;
  white-space: nowrap;
  cursor: pointer;
}

body .lake-settlement-inline-remove:focus-visible,
body .lake-settlement-remove:focus-visible,
body .lake-settlement-surface:focus-visible {
  outline: 3px solid rgba(28, 112, 95, .35);
  outline-offset: -2px;
}

body .lake-settlement-row > form {
  display: grid;
  min-width: 0;
  grid-column: 1 / -1;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
}

body .lake-settlement-row > form label {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 4px;
  color: var(--lake-muted);
  font-size: 9px;
}

body .lake-settlement-row > form input {
  width: 100%;
  min-width: 0;
  min-height: 44px;
}

body .lake-settlement-row > form button {
  min-height: 44px;
  white-space: nowrap;
}

body .lake-bill-summary {
  border-top: 2px solid var(--lake-blue);
}

body .lake-draw-form {
  padding-top: 10px;
}

body .lake-draw-form .lake-form-sheet {
  padding: 0 0 10px;
}

body .lake-draw-form > .switch-row {
  margin-bottom: 10px;
  padding: 8px 0;
  border-top: 1px solid var(--lake-line);
  border-bottom: 1px solid var(--lake-line);
}

body .lake-order-register {
  margin-top: 0;
  padding: 0 16px 90px;
  border-top: 0;
}

body .lake-order-register > div > time {
  display: flex;
  flex-direction: column;
}

body .lake-order-register > div > time small {
  font-size: 8px;
  line-height: 12px;
}

body .lake-order-register > div > strong {
  display: flex;
  max-width: 78px;
  align-items: flex-end;
  flex-direction: column;
  gap: 2px;
  text-align: right;
}

body .lake-order-register > div > strong em {
  color: var(--lake-muted);
  font-size: 8px;
  font-style: normal;
}

body .lake-order-register > div > strong a {
  display: inline-flex;
  min-height: 32px;
  padding: 0 8px;
  align-items: center;
  border: 1px solid #94b9ad;
  border-radius: 3px;
  color: var(--lake-green-dark);
  background: #edf5f1;
  font-size: 9px;
}

body .lake-ground-queue > header,
body .lake-ground-queue > article {
  grid-template-columns: 48px minmax(0, 1fr) 70px;
}

body .lake-ground-queue > article {
  min-height: 98px;
}

body .lake-ground-queue article > form {
  display: grid;
  gap: 4px;
}

body .lake-ground-queue article > form button {
  width: 100%;
  min-height: 36px;
  padding: 0 4px;
  font-size: 9px;
  white-space: normal;
}

/* Mobile data registers: horizontal movement stays inside the table. */
body .lake-admin-screen > .button-row {
  display: grid;
  min-width: 0;
  margin: 12px 16px;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
}

body .lake-admin-screen > .button-row > :is(input, button) {
  min-width: 0;
}

body .lake-admin-screen .table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: visible;
  overscroll-behavior-inline: contain;
  background: var(--lake-paper);
  scrollbar-width: thin;
}

body :is(.lake-data-table, .lake-ground-table, .lake-withdrawal-table) {
  width: max-content;
  min-width: 100%;
  border-spacing: 0;
  border-collapse: separate;
  table-layout: fixed;
  background: var(--lake-paper);
}

body .lake-data-table {
  min-width: 760px;
}

body .lake-ground-table {
  min-width: 820px;
}

body .lake-withdrawal-table {
  min-width: 620px;
}

body :is(.lake-data-table, .lake-ground-table, .lake-withdrawal-table) th,
body :is(.lake-data-table, .lake-ground-table, .lake-withdrawal-table) td {
  height: 58px;
  padding: 7px 9px;
  border-right: 1px solid var(--lake-line);
  border-bottom: 1px solid var(--lake-line);
  vertical-align: middle;
  font-size: 10px;
}

body :is(.lake-data-table, .lake-ground-table, .lake-withdrawal-table) thead th {
  position: sticky;
  z-index: 3;
  top: 0;
  height: 42px;
  color: var(--lake-muted);
  background: #edf2ef;
  font-size: 9px;
  white-space: nowrap;
}

body :is(.lake-data-table, .lake-ground-table, .lake-withdrawal-table) :is(th, td):first-child {
  position: sticky;
  z-index: 4;
  left: 0;
  width: 138px;
  background: var(--lake-paper);
  box-shadow: 5px 0 8px rgba(29, 51, 44, 0.06);
}

body :is(.lake-data-table, .lake-ground-table, .lake-withdrawal-table) thead th:first-child {
  z-index: 6;
  background: #edf2ef;
}

body :is(.lake-data-table, .lake-ground-table, .lake-withdrawal-table) td > small,
body :is(.lake-data-table, .lake-ground-table, .lake-withdrawal-table) th > small {
  display: block;
  overflow: hidden;
  max-width: 100%;
  color: var(--lake-muted);
  font-size: 8px;
  line-height: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ground-table tbody th > a {
  display: flex;
  width: 100%;
  min-height: 44px;
  justify-content: center;
  flex-direction: column;
}

body .lake-ground-table tbody th b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-ground-table .lake-ground-table-actions {
  flex-wrap: nowrap;
  gap: 4px;
  align-items: center;
}

body .lake-ground-table .lake-ground-table-actions form {
  margin: 0;
}

body .lake-data-table .user-inline-form {
  display: grid;
  min-width: 205px;
  grid-template-columns: 1fr 1fr auto;
  gap: 5px;
}

body .lake-data-table .user-inline-form :is(select, button) {
  min-width: 0;
  min-height: 40px;
  font-size: 9px;
}

body .lake-withdrawal-table .button-row {
  flex-wrap: wrap;
  gap: 5px;
}

body .lake-news-mark {
  display: grid;
  width: 55px;
  height: 55px;
  place-items: center;
  border: 1px solid #bfd0c8;
  border-radius: 3px;
  color: var(--lake-green);
  background: #eaf2ee;
}

body .lake-news-mark svg {
  width: 23px;
  height: 23px;
}

/* Angler account, wallet, payment and tickets. */
body :is(.lake-auth-page, .lake-account-page, .lake-finance-page, .lake-payment-page, .lake-tickets-page, .lake-seat-page) {
  height: auto;
  min-height: calc(100vh - 168px);
  overflow: visible;
  padding-bottom: 1px;
}

body :is(.lake-auth-page, .lake-finance-page, .lake-payment-page, .lake-seat-page) .lake-publish-panel {
  padding: 18px 16px 90px;
}

body .lake-auth-page .lake-publish-panel {
  max-width: 560px;
  margin: 0 auto;
  padding: 18px 16px 24px;
}

body .lake-account-page .lake-ruled-menu,
body .lake-payment-page .lake-ruled-menu {
  margin-top: 0;
  padding-bottom: 0;
}

body .lake-payment-page > .lake-ledger-footnote {
  margin: 12px 16px 18px;
}

body .lake-payment-page > .lake-publish-panel {
  padding-bottom: 24px;
}

body .lake-account-page > .lake-ruled-menu {
  padding-bottom: 0;
}

body .lake-account-page .lake-session-tracks {
  padding-bottom: 16px;
}

body .lake-security-page .lake-publish-panel {
  padding: 18px 16px;
  border-bottom: 1px solid var(--lake-line);
}

body .lake-account-page .lake-session-tracks details {
  border-top: 2px solid var(--lake-green);
  border-bottom: 1px solid var(--lake-line);
}

body .lake-account-page .lake-session-tracks details > summary {
  min-height: 50px;
  padding: 0 4px;
  color: var(--lake-green-dark);
  font-size: 12px;
  font-weight: 800;
}

body .lake-account-page .lake-session-tracks .lake-form-ledger {
  padding: 0 4px 12px;
}

body .lake-finance-page > .lake-order-ledger {
  margin-bottom: 0;
  padding-bottom: 0;
}

/* Payout method choices stay compact on the mobile withdrawal form. */
body .lake-choice-fieldset {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
  padding: 10px 0 0;
  border: 0;
  border-top: 1px solid var(--lake-line);
}

body .lake-choice-fieldset legend {
  grid-column: 1 / -1;
  padding: 0;
  color: var(--lake-muted);
  font-size: 11px;
}

body .lake-choice-option {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--lake-line);
  border-radius: 5px;
  background: var(--lake-paper);
  cursor: pointer;
}

body .lake-choice-option input {
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--lake-green);
}

body .lake-choice-option span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  color: var(--lake-ink);
  font-size: 12px;
  font-weight: 700;
}

body .lake-payment-page .lake-publish-panel .lake-ledger-footnote {
  margin-bottom: 0;
}

body .lake-tickets-page > [data-ticket-list] {
  display: flow-root;
  padding-bottom: 1px;
}

body .lake-seat-page .lake-publish-panel {
  padding-bottom: 90px;
}

body .lake-seat-page .seat-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}

body .lake-seat-page .seat-button {
  width: 100%;
  min-width: 0;
  aspect-ratio: 1;
  min-height: 44px;
}

body .lake-front-detail .lake-detail-heading {
  position: relative;
  padding-right: 62px;
}

body .lake-front-detail .lake-detail-heading > .button-row {
  position: absolute;
  top: 14px;
  right: 10px;
}

body .lake-front-detail .lake-ground-detail-heading {
  padding-right: 112px;
}

body .lake-ground-detail-actions {
  display: flex;
  gap: 6px;
}

body .lake-front-detail .lake-detail-heading .lake-icon-button {
  border: 1px solid var(--lake-line);
  border-radius: 50%;
  color: var(--lake-green);
  background: #fff;
}

body .lake-front-detail .offer-form {
  min-width: 0;
}

body.lake-map-page .lake-map-explorer > .lake-front-buy-bar {
  position: absolute;
  z-index: 15;
  right: 0;
  bottom: calc(var(--lake-dock-height) + env(safe-area-inset-bottom));
  left: 0;
}

body .lake-front-buy-bar > :is(a, button) {
  min-width: 0;
  width: 100%;
  margin: 0;
}

/* Detailed offer rules need room for multi-pond and segmented return-fish
   descriptions; keep the compact one-line treatment on browse rows. */
body .lake-front-detail .lake-ticket-choice small {
  max-height: 30px;
  overflow: hidden;
  white-space: normal;
  overflow-wrap: anywhere;
}

/* The legacy wizard adds negative margins on backend pages. The new rail is
   already inside the full-width ledger and must stay within the phone. */
body:is(.owner-app, .admin-app) .lake-wizard-rail {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

body .lake-admin-screen > .sticky-actions,
body .lake-admin-screen > form > .sticky-actions {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

@media (max-width: 719px) {
  body.front-app:not(.lake-map-page) .page-content > .lake-ledger-shell {
    width: calc(100% + 24px);
    max-width: none;
    margin-right: -12px;
    margin-left: -12px;
  }

  body .lake-ledger-header,
  body .lake-detail-ledger-head,
  body .lake-publish-header {
    position: relative;
    top: auto;
  }

  body .lake-form-screen .lake-ledger-section {
    margin-right: 0;
    margin-left: 0;
  }

  body .lake-form-actions,
  body .lake-publish-submit,
  body .lake-ground-form > .sticky-actions {
    bottom: calc(62px + env(safe-area-inset-bottom));
    margin-right: 0;
    margin-left: 0;
  }

  body .lake-publish-form .lake-publish-submit {
    margin-right: 0;
    margin-left: 0;
  }

  body .lake-admin-screen > .lake-ledger-footnote,
  body .lake-owner-screen > .lake-ledger-footnote {
    margin-bottom: 90px;
  }
}

@media (max-width: 370px) {
  body .lake-register-list,
  body .lake-settlement-ledger {
    padding-right: 12px;
    padding-left: 12px;
  }

  body .lake-register-entry[open] > summary {
    box-shadow: 12px 0 #f1f6f3, -12px 0 #f1f6f3;
  }

  body .lake-register-entry > summary {
    grid-template-columns: 34px minmax(0, 1fr) minmax(58px, auto);
    gap: 6px;
  }

  body .lake-method-stamp {
    width: 31px;
    height: 31px;
  }

  body .lake-register-detail {
    padding-left: 40px;
  }

  body .lake-side-session-head {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 5px;
  }

  body .lake-side-toggle {
    min-width: 84px;
    gap: 4px;
  }

  body .lake-permission-chain {
    padding-right: 0;
    padding-left: 0;
  }

  body .lake-settlement-row > form {
    grid-template-columns: minmax(0, 1fr);
  }

  body .lake-settlement-row > form button {
    width: 100%;
  }

  body .lake-settlement-inline-remove {
    min-width: 34px;
    justify-content: center;
    padding: 5px;
  }

  body .lake-settlement-inline-remove span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
}

@media (min-width: 720px) {
  body.front-app .page-content > .lake-ledger-shell:not(.lake-front-map) {
    width: min(100%, 760px);
    margin: 0 auto;
    border-right: 1px solid var(--lake-line);
    border-left: 1px solid var(--lake-line);
  }

  body .lake-form-sheet.two-column,
  body .lake-session-form.two-column {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 14px;
  }

  body .lake-form-sheet.two-column > .lake-field-wide,
  body .lake-session-form.two-column > .lake-field-wide {
    grid-column: 1 / -1;
  }

  body .lake-publish-form .lake-publish-submit,
  body .lake-form-actions {
    position: sticky;
    bottom: 0;
    margin: 0;
  }

}

/* Angler discovery pages --------------------------------------------------
   The discovery surface is deliberately a normal document flow.  It keeps
   the weather/search controls at the top, uses a real pond photo for visual
   context, and leaves the nearby ledger fully scrollable below it. */
body .lake-front-discovery {
  --lake-dock-height: 0px;
  height: auto;
  min-height: 0;
  overflow: visible;
  background: var(--lake-paper);
}

/* The front desk has five compact destinations, including the idle board. */
body.front-app .mobile-nav {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

body.front-app .mobile-nav a {
  font-size: 10px;
}

body .lake-discovery-command {
  display: grid;
  gap: 8px;
  margin-bottom: 10px;
}

body .lake-discovery-command .lake-weather,
body .lake-discovery-command .lake-map-search {
  width: 100%;
}

body .lake-discovery-visual {
  position: relative;
  display: grid;
  min-width: 0;
  height: 196px;
  min-height: 0;
  grid-template-columns: minmax(150px, 38%) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--lake-line);
  border-radius: 8px;
  background: var(--lake-green-dark);
  box-shadow: 0 5px 16px rgba(22, 52, 43, 0.12);
}

body .lake-discovery-image {
  position: relative;
  min-height: 0;
  overflow: hidden;
  background: var(--lake-paper-soft);
}

body .lake-discovery-image::after {
  position: absolute;
  inset: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.28);
  content: "";
  pointer-events: none;
}

body .lake-discovery-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  object-position: center;
}

body .lake-discovery-image > .lake-ground-image-placeholder {
  width: 100%;
  height: 100%;
}

body .lake-discovery-copy {
  display: flex;
  min-width: 0;
  padding: 17px 18px 14px;
  flex-direction: column;
  color: #f7fbf8;
}

body .lake-discovery-kicker {
  color: #b6d6ca;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 14px;
}

body .lake-discovery-copy h2 {
  overflow: hidden;
  margin: 3px 0 4px;
  color: #ffffff;
  font-size: 22px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-discovery-copy p {
  overflow: hidden;
  max-width: 32em;
  margin: 0;
  color: #d5e8e0;
  font-size: 11px;
  line-height: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-discovery-stats {
  display: grid;
  margin-top: auto;
  padding-top: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(213, 232, 224, 0.28);
}

body .lake-discovery-stats > span {
  display: flex;
  min-width: 0;
  padding: 0 8px;
  flex-direction: column;
  border-left: 1px solid rgba(213, 232, 224, 0.22);
}

body .lake-discovery-stats > span:first-child {
  padding-left: 0;
  border-left: 0;
}

body .lake-discovery-stats b {
  color: #f0bd49;
  font-size: 18px;
  line-height: 20px;
}

body .lake-discovery-stats small {
  overflow: hidden;
  color: #c4ddd4;
  font-size: 9px;
  line-height: 14px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body .lake-discovery-link {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  min-height: 30px;
  margin-top: 10px;
  padding: 0 9px;
  align-items: center;
  gap: 5px;
  border: 1px solid rgba(240, 189, 73, 0.72);
  border-radius: 4px;
  color: #fff7df;
  font-size: 11px;
  font-weight: 800;
}

body .lake-discovery-link svg {
  width: 15px;
  height: 15px;
}

body .lake-discovery-link:hover,
body .lake-discovery-link:focus-visible {
  color: var(--lake-ink);
  background: #f0bd49;
}

body .lake-discovery-index {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 3px 5px;
  border: 1px solid rgba(255, 255, 255, 0.62);
  border-radius: 3px;
  color: #ffffff;
  background: rgba(7, 85, 72, 0.76);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

body .lake-discovery-results {
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid var(--lake-line);
  border-radius: 8px;
  background: var(--lake-paper);
}

body .lake-discovery-results .lake-sheet-index {
  height: auto;
  overflow: visible;
}

body .lake-discovery-results .lake-result-list {
  padding-bottom: 18px;
}

body .lake-discovery-results .lake-map-filters {
  background: #f4f7f4;
}

@media (max-width: 719px) {
  body .lake-front-discovery {
    margin: 0;
  }

  body .lake-discovery-visual {
    height: 184px;
    min-height: 0;
    grid-template-columns: minmax(112px, 37%) minmax(0, 1fr);
  }

  body .lake-discovery-image,
  body .lake-discovery-image img {
    min-height: 0;
  }

  body .lake-discovery-copy {
    padding: 14px 13px 12px;
  }

  body .lake-discovery-copy h2 {
    font-size: 18px;
  }

  body .lake-discovery-stats b {
    overflow: hidden;
    font-size: 14px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body .lake-discovery-copy p {
    font-size: 10px;
    line-height: 16px;
  }

  body .lake-discovery-stats {
    padding-top: 9px;
  }

  body .lake-discovery-stats > span {
    padding-right: 5px;
    padding-left: 5px;
  }

  body .lake-discovery-stats b {
    font-size: 14px;
  }

  body .lake-discovery-link {
    min-height: 28px;
    margin-top: 7px;
    padding: 0 7px;
    font-size: 10px;
  }

  body .lake-discovery-results {
    margin-top: 10px;
    border-radius: 6px;
  }
}

@media (min-width: 720px) {
  body .lake-front-discovery {
    width: min(100%, 1080px);
    margin: 0 auto;
  }

  body .lake-discovery-command {
    width: min(100%, 720px);
    margin-right: auto;
    margin-left: auto;
  }

  body .lake-discovery-visual {
    height: 230px;
    min-height: 0;
    grid-template-columns: minmax(280px, 38%) minmax(0, 1fr);
  }

  body .lake-discovery-image,
  body .lake-discovery-image img {
    min-height: 0;
  }

  body .lake-discovery-copy {
    padding: 24px 28px 20px;
  }

  body .lake-discovery-results {
    margin-top: 16px;
  }
}

/* Home discovery details. The page is intentionally map-free, while keeping
   the same compact ledger language as the nearby and detail views. */
body .lake-discovery-search > span {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  color: var(--lake-muted);
}

body .lake-front-discovery .lake-weather-no-location {
  grid-template-columns: minmax(68px, 1.2fr) repeat(3, minmax(48px, 0.8fr));
}

body .lake-discovery-search > span svg {
  width: 17px;
  height: 17px;
}

body .lake-discovery-notice {
  margin: 0;
  border-radius: 0;
  box-shadow: none;
}

body .lake-discovery-notice > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

body .lake-discovery-notice > span svg {
  width: 14px;
  height: 14px;
}

body .lake-discovery-empty .lake-discovery-copy {
  grid-column: 1 / -1;
}

body .lake-front-discovery .lake-result-list {
  min-height: 84px;
}

/* Interactive map ledger -------------------------------------------------
   The world layer carries the projected real coordinates.  The viewport
   stays fixed while users pan or zoom the world and keep the ledger drawer
   available above it. */
body .lake-map-canvas[data-lake-map-viewport] {
  cursor: grab;
  touch-action: none;
  user-select: none;
}

body .lake-map-canvas[data-lake-map-viewport].is-map-dragging {
  cursor: grabbing;
}

body .lake-map-world {
  position: absolute;
  inset: 0;
  overflow: hidden;
  transform: translate3d(0, 0, 0) scale(1);
  transform-origin: center center;
  transition: transform 160ms ease-out;
  will-change: transform;
}

body .lake-map-canvas.is-map-dragging .lake-map-world {
  transition: none;
}

body .lake-map-tools {
  position: absolute;
  z-index: 5;
  top: 112px;
  right: 12px;
  display: none;
  overflow: hidden;
  border: 1px solid var(--lake-line);
  border-radius: 6px;
  background: rgba(251, 252, 250, 0.96);
  box-shadow: 0 4px 12px rgba(22, 52, 43, 0.1);
}

body .lake-map-tools button {
  display: grid;
  width: 38px;
  height: 38px;
  padding: 0;
  place-items: center;
  border-bottom: 1px solid var(--lake-line);
  color: var(--lake-green-dark);
  background: transparent;
}

body .lake-map-tools button:last-child {
  border-bottom: 0;
}

body .lake-map-tools button:hover,
body .lake-map-tools button:focus-visible {
  color: #ffffff;
  background: var(--lake-green);
}

body .lake-map-tools svg {
  width: 17px;
  height: 17px;
}

body .lake-map-canvas[data-map-scale]:not([data-map-scale="1.00"]) .lake-map-tools [data-lake-map-reset] {
  color: var(--lake-red);
}

/* Platform and fishing-ground funded coupons ---------------------------- */
body .lake-result-coupons {
  display: flex;
  min-width: 0;
  margin-top: 3px;
  flex-wrap: wrap;
  gap: 4px;
}

body .lake-result-coupon {
  display: inline-flex;
  width: fit-content;
  min-height: 20px;
  padding: 2px 6px;
  align-items: center;
  border: 1px solid #efb8ad;
  border-radius: 4px;
  color: #9f3127;
  background: #fff3f0;
  font-size: 10px;
  font-style: normal;
  font-weight: 800;
  line-height: 14px;
}

body .lake-result-coupon.is-owner {
  border-color: #9bcfc2;
  color: #176257;
  background: #edf9f5;
}

body .lake-platform-subsidy,
body .lake-owner-subsidy {
  display: grid;
  min-width: 0;
  padding: 14px 16px;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  border-top: 1px solid #efd2cb;
  border-bottom: 8px solid #edf1ee;
  color: #5f2e29;
  background: #fff7f5;
}

body .lake-owner-subsidy {
  border-top-color: #b9ddd4;
  color: #194b43;
  background: #f1faf7;
}

body .lake-platform-subsidy > span,
body .lake-owner-subsidy > span {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid #edb0a5;
  border-radius: 6px;
  color: #a52d23;
  background: #ffffff;
}

body .lake-owner-subsidy > span {
  border-color: #99cfc1;
  color: #176257;
}

body .lake-platform-subsidy svg,
body .lake-owner-subsidy svg {
  width: 20px;
  height: 20px;
}

body .lake-platform-subsidy small,
body .lake-platform-subsidy h2,
body .lake-platform-subsidy p,
body .lake-owner-subsidy small,
body .lake-owner-subsidy h2,
body .lake-owner-subsidy p {
  margin: 0;
}

body .lake-platform-subsidy small,
body .lake-owner-subsidy small {
  color: #a55a52;
  font-size: 10px;
  line-height: 15px;
}

body .lake-owner-subsidy small {
  color: #42776e;
}

body .lake-platform-subsidy h2,
body .lake-owner-subsidy h2 {
  font-size: 17px;
  line-height: 24px;
}

body .lake-platform-subsidy p,
body .lake-owner-subsidy p {
  color: #7f514c;
  font-size: 11px;
  line-height: 17px;
}

body .lake-owner-subsidy p {
  color: #426b64;
}

body .lake-front-buy-bar > span em {
  display: block;
  margin-top: 1px;
  color: #a52d23;
  font-size: 9px;
  font-style: normal;
  font-weight: 700;
  line-height: 13px;
  white-space: nowrap;
}

body .lake-front-buy-bar > span em.is-owner {
  color: #176257;
}

body .lake-platform-coupon-panel {
  margin: 0;
  padding: 14px 16px;
  border-bottom: 1px solid #e5c8c2;
  color: #54322e;
  background: #fff8f6;
}

body .lake-platform-coupon-panel > header {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
}

body .lake-platform-coupon-panel > header > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid #e8b2a8;
  border-radius: 6px;
  color: #9f3127;
  background: #ffffff;
}

body .lake-platform-coupon-panel > header div,
body .lake-platform-coupon-panel > header small,
body .lake-platform-coupon-panel > header b {
  display: block;
  min-width: 0;
}

body .lake-platform-coupon-panel > header small {
  color: #9a5a54;
  font-size: 10px;
  line-height: 15px;
}

body .lake-platform-coupon-panel > header b {
  font-size: 15px;
  line-height: 21px;
}

body .lake-platform-coupon-panel > .field {
  margin-top: 10px;
}

body .lake-platform-coupon-panel > p {
  margin: 9px 0 0;
  color: #7a5b56;
  font-size: 10px;
  line-height: 16px;
}

body .lake-platform-coupon-panel.is-readonly,
body .lake-platform-coupon-panel.is-disabled {
  background: #f8f9f8;
}

body .lake-platform-coupon-panel.is-disabled {
  color: var(--lake-muted);
}

body .lake-owner-coupon-panel {
  border-bottom-color: #b8dcd3;
  color: #194b43;
  background: #f1faf7;
}

body .lake-owner-coupon-panel > header > span {
  border-color: #99cfc1;
  color: #176257;
}

body .lake-owner-coupon-panel > header small,
body .lake-owner-coupon-panel > p {
  color: #42776e;
}

body .lake-owner-coupon-panel.is-readonly {
  background: #f3f8f6;
}

body .lake-owner-coupon-panel.is-disabled {
  color: var(--lake-muted);
  background: #f7f9f8;
}

body .lake-platform-coupon-switch {
  margin-top: 10px;
}

body .lake-coupon-ledger-row dt,
body .lake-coupon-ledger-row dd {
  color: #9f3127;
  font-weight: 800;
}

body .lake-coupon-ledger-row.is-owner dt,
body .lake-coupon-ledger-row.is-owner dd {
  color: #176257;
}

body .lake-news-coupon-tags {
  display: flex;
  min-width: 0;
  margin: 1px 0 2px;
  flex-wrap: wrap;
  gap: 3px;
}

body .lake-news-coupon-tags i {
  display: inline-flex;
  min-height: 18px;
  padding: 1px 5px;
  align-items: center;
  border: 1px solid #efb8ad;
  border-radius: 3px;
  color: #9f3127;
  background: #fff3f0;
  font-size: 8px;
  font-style: normal;
  font-weight: 800;
  line-height: 14px;
}

body .lake-news-coupon-tags i.is-owner {
  border-color: #9bcfc2;
  color: #176257;
  background: #edf9f5;
}

body .lake-order-ledger small.lake-order-funding-line {
  overflow: visible;
  line-height: 14px;
  text-overflow: clip;
  white-space: normal;
}

body .lake-order-refund-alert {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin-top: 7px;
  color: #a12820;
  font-weight: 800;
  line-height: 18px;
}

body .lake-order-refund-alert svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

body .lake-payment-breakdown {
  border-bottom: 8px solid #edf1ee;
}
