:root {
  --forest: #2f5233;
  --forest-dark: #1f3a24;
  --sage: #7a8f6a;
  --olive: #40513b;
  --gold: #d4a017;
  --bronze: #b8860b;
  --cream: #faf8f2;
  --paper: #fffdf7;
  --muted: #66715f;
  --line: rgba(64, 81, 59, .14);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--forest-dark);
  background:
    linear-gradient(180deg, rgba(250,248,242,.86), rgba(246,241,231,.97)),
    url("/public/assets/duriotourism/04_Prototype_Visual_Assets/background-approved-mountain-bokeh-soft.png") center top / cover fixed;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  padding-bottom: 0;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

.shell { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 0;
}

.brand { display: flex; align-items: center; gap: 12px; font-size: 18px; font-weight: 950; }
.brand img { width: 46px; height: 46px; }
.navlinks { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.navlinks a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 10px 14px;
  color: var(--forest);
  font-size: 14px;
  font-weight: 800;
}
.navlinks a:hover, .navlinks a.active { background: rgba(255,255,255,.68); border-color: var(--line); }
.navlinks img, .button img { width: 17px; height: 17px; object-fit: contain; }

.hero {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  gap: 26px;
  align-items: center;
  padding: 34px 0 28px;
}
.home-hero { grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); min-height: 560px; }
.hero-copy { align-self: center; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.hero-stack { display: grid; grid-template-columns: .92fr 1fr; gap: 14px; align-items: end; }

.eyebrow { color: var(--bronze); font-size: 13px; font-weight: 950; letter-spacing: 0; text-transform: uppercase; }
h1 { margin: 10px 0 0; font-size: clamp(40px, 6vw, 78px); line-height: .95; letter-spacing: 0; }
h2 { margin: 0 0 14px; font-size: 26px; letter-spacing: 0; }
h3 { margin: 12px 0 8px; font-size: 19px; letter-spacing: 0; }
p { color: var(--muted); line-height: 1.7; }

.hero p { max-width: 680px; font-size: 17px; }

.glass {
  border: 1px solid var(--line);
  background: rgba(255,255,255,.7);
  border-radius: 8px;
  box-shadow: 0 18px 64px rgba(47,82,51,.1);
  backdrop-filter: blur(14px);
}

.card { padding: 20px; }
.media { overflow: hidden; }
.media img { width: 100%; height: 190px; object-fit: contain; padding: 14px; background: rgba(255,255,255,.52); }
.price-card { min-height: 380px; padding: 22px; display: flex; flex-direction: column; justify-content: space-between; }
.price-card-head, .section-title { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.price-card-head img, .section-title img { width: 38px; height: 38px; object-fit: contain; }
.section-title h2 { margin: 4px 0 0; }
.page-head { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding: 28px 0 10px; }
.page-head h1 { font-size: clamp(34px, 5vw, 58px); }
.page-head-icon { width: 58px; height: 58px; object-fit: contain; }
.price-durian { width: 100%; height: 160px; object-fit: contain; margin: 10px 0; }
.price-card strong { color: var(--forest); font-size: 38px; line-height: 1; }
.passport-mini { display: grid; gap: 12px; padding: 16px; align-self: stretch; }
.passport-mini > img { width: 100%; height: 210px; object-fit: contain; }
.passport-mini strong { display: block; margin-top: 8px; color: var(--forest-dark); }

.grid { display: grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.section { padding: 24px 0; }

.stats { margin-top: 24px; }
.stat-card { min-height: 116px; display: flex; align-items: center; gap: 14px; padding: 18px; }
.stat-card img { width: 42px; height: 42px; object-fit: contain; }
.stat-card strong { display: block; color: var(--forest); font-size: 30px; line-height: 1; }
.stat-card span { display: block; margin-top: 8px; color: var(--muted); font-size: 13px; font-weight: 800; }
.stat strong { display: block; color: var(--forest); font-size: 30px; line-height: 1; }
.stat span { display: block; margin-top: 8px; color: var(--muted); font-size: 13px; font-weight: 800; }

.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 6px 10px;
  color: var(--bronze);
  background: rgba(184,134,11,.12);
  font-size: 12px;
  font-weight: 900;
}

.button {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 999px;
  padding: 0 18px;
  background: var(--forest);
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  cursor: pointer;
}

.button.secondary { background: rgba(255,255,255,.76); color: var(--forest); border: 1px solid rgba(184,134,11,.28); }

.feature-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  padding: 22px 0 6px;
}
.feature-pill { min-height: 86px; display: flex; align-items: center; gap: 12px; padding: 14px; }
.feature-pill img { width: 34px; height: 34px; object-fit: contain; flex: 0 0 auto; }
.feature-pill strong, .feature-pill small { display: block; }
.feature-pill small { margin-top: 4px; color: var(--muted); font-size: 12px; font-weight: 750; }

.dashboard-grid { grid-template-columns: .95fr 1.25fr .8fr; align-items: stretch; }
.dmi-value { color: var(--forest); font-size: 56px; font-weight: 950; line-height: 1; margin: 20px 0; }
.dmi-value span { color: var(--muted); font-size: 18px; }
.mini-bars { height: 110px; display: flex; align-items: end; gap: 8px; padding-top: 12px; }
.mini-bars.tall { height: 190px; }
.mini-bars i { flex: 1; min-width: 10px; border-radius: 8px 8px 0 0; background: linear-gradient(180deg, var(--gold), var(--forest)); }
.dmi-live-chart {
  align-items: end;
  gap: 10px;
}
.dmi-bar {
  display: grid;
  flex: 1;
  min-width: 18px;
  align-items: end;
  gap: 7px;
}
.dmi-bar i {
  width: 100%;
  min-width: 0;
}
.dmi-bar small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 850;
  text-align: center;
  white-space: nowrap;
  transform: rotate(-18deg);
}
.dmi-trend-details {
  display: grid;
  gap: 9px;
  margin-top: 18px;
}
.dmi-trend-details > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border-top: 1px solid var(--line);
  padding-top: 9px;
}
.dmi-trend-details b,
.dmi-trend-details small {
  display: block;
}
.dmi-trend-details b {
  color: var(--ink);
}
.dmi-trend-details small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
}
.dmi-trend-details strong {
  color: var(--forest);
  white-space: nowrap;
}

.dmi-index-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 18px;
  align-items: center;
  margin: 14px 0;
  padding: 22px;
}

.dmi-index-hero > div:first-child > strong {
  display: block;
  margin: 8px 0;
  color: var(--forest);
  font-size: clamp(54px, 9vw, 92px);
  line-height: .9;
}

.dmi-index-hero p {
  margin: 0;
  color: var(--muted);
  font-weight: 850;
}

.dmi-index-hero.trend-up p b,
.dmi-mover-list .trend-up strong {
  color: #167a32;
}

.dmi-index-hero.trend-down p b,
.dmi-mover-list .trend-down strong {
  color: #b3261e;
}

.dmi-index-hero.trend-flat p b,
.dmi-mover-list .trend-flat strong {
  color: #8a6a16;
}

.dmi-index-meta {
  display: grid;
  gap: 10px;
}

.dmi-index-meta div,
.dmi-kpi-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.56);
}

.dmi-index-meta span,
.dmi-kpi-card span,
.dmi-kpi-card small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.dmi-index-meta b,
.dmi-kpi-card strong {
  display: block;
  margin-top: 4px;
  color: var(--forest);
  font-size: 24px;
  line-height: 1.1;
}

.dmi-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.dmi-kpi-card {
  padding: 16px;
}

.dmi-dashboard-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(310px, .75fr);
}

.dmi-mover-list,
.dmi-method-list {
  display: grid;
  gap: 10px;
}

.dmi-mover-list > div {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.dmi-mover-list > div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.dmi-mover-list img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 14px;
  background: rgba(255,255,255,.62);
  padding: 5px;
}

.dmi-mover-list b,
.dmi-method-list b {
  color: var(--ink);
}

.dmi-mover-list small,
.dmi-method-list span {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
}

.dmi-method-list > div {
  border-left: 4px solid rgba(212,160,23,.65);
  border-radius: 14px;
  padding: 10px 12px;
  background: rgba(255,255,255,.48);
}

.season-year-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 14px 0;
  padding: 14px 16px;
}

.season-year-toolbar strong {
  display: block;
  color: var(--forest);
  font-size: 28px;
  line-height: 1;
}

.season-year-toolbar form {
  min-width: 180px;
}

.season-volume-card {
  margin: 14px 0;
  background:
    linear-gradient(135deg, rgba(255,255,255,.9), rgba(47,82,51,.09)),
    var(--glass);
}

.season-volume-summary {
  min-width: 170px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 10px 12px;
  background: rgba(255,255,255,.58);
  text-align: right;
}

.season-volume-summary span,
.season-volume-summary small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.season-volume-summary strong {
  display: block;
  color: var(--forest);
  font-size: 24px;
  line-height: 1.05;
}

.season-volume-chart {
  display: grid;
  grid-template-columns: repeat(12, minmax(64px, 1fr));
  gap: 10px;
  align-items: end;
  min-height: 240px;
  overflow-x: auto;
  padding: 18px 2px 4px;
}

.season-volume-bar {
  display: grid;
  grid-template-rows: auto minmax(120px, 1fr) auto auto;
  gap: 6px;
  min-width: 64px;
  text-align: center;
}

.season-volume-bar strong {
  color: var(--forest-dark);
  font-size: 13px;
}

.season-volume-bar span {
  align-self: end;
  justify-self: center;
  width: min(42px, 76%);
  height: var(--bar-height);
  border-radius: 999px 999px 10px 10px;
  background: linear-gradient(180deg, var(--gold), var(--forest));
  box-shadow: 0 12px 20px rgba(47,82,51,.16);
}

.season-volume-bar b {
  color: var(--forest-dark);
  font-size: 12px;
  font-weight: 950;
}

.season-volume-bar small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 800;
  line-height: 1.15;
}

.season-heatmap-card {
  margin-bottom: 14px;
}

.season-forecast-card {
  margin-bottom: 14px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.86), rgba(212,160,23,.16)),
    var(--glass);
}

.season-forecast-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.season-forecast-grid > div {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.56);
}

.season-forecast-grid span,
.season-forecast-grid small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.season-forecast-grid strong {
  display: block;
  margin: 5px 0;
  color: var(--forest);
  font-size: 26px;
  line-height: 1.05;
}

.season-forecast-note {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.season-forecast-note p {
  margin: 0;
  border-radius: 14px;
  padding: 10px 12px;
  background: rgba(47,82,51,.08);
  color: var(--muted);
  font-size: 13px;
  font-weight: 820;
}

.season-forecast-note b {
  color: var(--forest-dark);
}

.season-report-open {
  white-space: nowrap;
}

.season-report-dialog h2 {
  margin: 4px 42px 6px 0;
  color: var(--forest-dark);
}

.season-report-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.season-report-form label {
  display: grid;
  gap: 6px;
  color: var(--forest-dark);
  font-size: 13px;
  font-weight: 850;
}

.season-report-wide,
.season-report-actions {
  grid-column: 1 / -1;
}

.season-report-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}

.season-legend {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.season-legend i {
  width: 14px;
  height: 14px;
  border-radius: 4px;
}

.season-heatmap {
  display: grid;
  grid-template-columns: minmax(140px, 1.1fr) repeat(12, minmax(74px, 1fr));
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}

.season-heatmap-head,
.season-month-head,
.season-state-name,
.season-cell {
  min-width: 0;
}

.season-month-head,
.season-state-name {
  color: var(--forest-dark);
  font-size: 12px;
  font-weight: 950;
}

.season-month-head {
  text-align: center;
}

.season-state-name {
  position: sticky;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  border-radius: 12px;
  padding: 10px;
  background: rgba(255,255,255,.88);
}

.season-cell {
  display: grid;
  gap: 2px;
  min-height: 86px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 8px;
  background: rgba(255,255,255,.56);
  color: var(--ink);
  text-align: left;
}

.season-cell b {
  color: var(--forest);
  font-size: 18px;
  line-height: 1;
}

.season-cell span,
.season-cell small,
.season-cell em {
  display: block;
  overflow: hidden;
  font-size: 10px;
  font-style: normal;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.season-cell small,
.season-cell em {
  color: var(--muted);
}

.level-0 {
  background: rgba(255,255,255,.5);
}

.level-1 {
  background: rgba(212,160,23,.18);
}

.level-2 {
  background: rgba(212,160,23,.34);
}

.level-3 {
  background: linear-gradient(135deg, rgba(47,82,51,.9), rgba(212,160,23,.78));
  color: #fff;
}

.season-cell.level-3 b,
.season-cell.level-3 span,
.season-cell.level-3 small,
.season-cell.level-3 em {
  color: #fff;
}

.season-month-list {
  display: grid;
  gap: 10px;
}

.season-month-list > div {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 10px;
}

.season-month-list > div > b {
  color: var(--forest);
  font-size: 18px;
}

.season-month-list strong,
.season-month-list small {
  display: block;
}

.season-month-list small {
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
}

.season-month-list em {
  color: var(--forest);
  font-style: normal;
  font-weight: 950;
}

.season-month-list .level-3 > b,
.season-month-list .level-3 strong,
.season-month-list .level-3 small,
.season-month-list .level-3 em {
  color: #fff;
}
.map-board {
  position: relative;
  min-height: 250px;
  border-radius: 8px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(47,82,51,.14), rgba(184,134,11,.13)),
    url("/public/assets/duriotourism/05_Vector_And_UI_Assets/12_Backgrounds/misty-valley-wide.jpg") center / cover;
}
.map-pin {
  position: absolute;
  display: inline-flex;
  min-width: 52px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(255,255,255,.86);
  border-radius: 999px;
  background: var(--forest);
  color: #fff;
  font-size: 13px;
  font-weight: 950;
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
.pin-1 { left: 18%; top: 28%; }
.pin-2 { left: 55%; top: 18%; }
.pin-3 { left: 38%; top: 56%; }
.pin-4 { left: 70%; top: 64%; }
.pin-5 { left: 14%; top: 68%; }
.pin-6 { left: 78%; top: 34%; }
.forecast-list { display: grid; gap: 10px; margin-top: 18px; }
.forecast-list span { display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); padding-bottom: 10px; color: var(--muted); font-weight: 800; }
.forecast-list b { color: var(--forest); }
.route-card img { height: 210px; }
.passport-banner { display: grid; grid-template-columns: 1fr 320px; gap: 22px; align-items: center; padding: 26px; overflow: hidden; }
.passport-banner > img { height: 260px; width: 100%; object-fit: contain; }
.compact-card { display: grid; grid-template-columns: 92px 1fr; gap: 14px; align-items: center; padding: 12px; }

.home-season-report-button {
  width: 100%;
  margin-top: 12px;
}
.compact-card img { width: 92px; height: 92px; object-fit: contain; border-radius: 8px; background: rgba(255,255,255,.6); padding: 8px; }
.compact-card h3 { margin-top: 8px; }
.product-list { gap: 12px; }

.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
label { display: block; margin-top: 14px; color: var(--forest-dark); font-size: 14px; font-weight: 900; }
.input, select {
  width: 100%;
  min-height: 44px;
  margin-top: 8px;
  border: 1px solid rgba(64,81,59,.18);
  border-radius: 8px;
  background: rgba(255,255,255,.86);
  padding: 10px 12px;
  color: var(--forest-dark);
}

.alert { margin-bottom: 16px; border-radius: 8px; padding: 12px 14px; font-weight: 850; }
.alert.success { background: rgba(47,82,51,.12); color: var(--forest); }
.alert.error { background: #fff1f2; color: #be123c; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 720px; }
th, td { border-bottom: 1px solid var(--line); padding: 12px; text-align: left; }
th { color: var(--forest); font-size: 12px; text-transform: uppercase; }
td { color: var(--muted); }

.footer { padding: 32px 0 54px; color: var(--muted); font-size: 13px; }
.bottom-nav { display: none; }

.admin-shell {
  width: min(1320px, calc(100% - 32px));
  margin: 0 auto 40px;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 18px;
}
.admin-sidebar {
  position: sticky;
  top: 16px;
  height: calc(100vh - 32px);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 8px;
  background: linear-gradient(180deg, rgba(31,58,36,.94), rgba(47,82,51,.9));
  color: #fff;
  padding: 18px;
  box-shadow: 0 24px 70px rgba(31,58,36,.22);
}
.admin-brand { display: flex; align-items: center; gap: 10px; font-weight: 950; margin-bottom: 18px; }
.admin-brand img { width: 42px; height: 42px; }
.admin-sidebar nav { display: grid; gap: 8px; }
.admin-sidebar nav a { display: flex; align-items: center; gap: 10px; border-radius: 8px; padding: 11px 12px; color: rgba(255,255,255,.9); font-weight: 850; }
.admin-sidebar nav a:hover { background: rgba(255,255,255,.12); }
.admin-sidebar nav img { width: 22px; height: 22px; filter: brightness(0) invert(1); }
.admin-sidebar p { margin-top: 24px; color: rgba(255,255,255,.72); font-size: 13px; }
.admin-main { min-width: 0; display: grid; gap: 18px; }
.admin-topbar { display: flex; justify-content: space-between; align-items: center; padding: 18px; }
.admin-topbar h1 { font-size: 34px; margin-top: 4px; }
.admin-user { display: inline-flex; align-items: center; gap: 10px; color: var(--forest); font-weight: 900; }
.admin-user img { width: 42px; height: 42px; }
.admin-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-kpi { min-height: 136px; display: flex; justify-content: space-between; gap: 14px; padding: 18px; }
.admin-kpi span, .admin-kpi small { display: block; color: var(--muted); font-weight: 850; }
.admin-kpi strong { display: block; margin: 10px 0; color: var(--forest); font-size: 34px; line-height: 1; }
.admin-kpi img { width: 44px; height: 44px; object-fit: contain; }
.admin-content-grid { grid-template-columns: 1.3fr .85fr .85fr; }
.rank-list { display: grid; gap: 11px; }
.rank-list div { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.rank-list b { display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; border-radius: 999px; background: rgba(184,134,11,.13); color: var(--bronze); font-size: 12px; }
.rank-list span { color: var(--muted); font-weight: 800; }
.rank-list strong { color: var(--forest); }

@media (max-width: 900px) {
  body { padding-bottom: 76px; }
  .hero, .home-hero, .hero-stack, .grid-2, .grid-3, .grid-4, .form-grid, .dashboard-grid, .passport-banner, .admin-shell, .admin-kpi-grid, .admin-content-grid { grid-template-columns: 1fr; }
  .nav { align-items: flex-start; flex-direction: column; }
  .navlinks { display: none; }
  h1 { font-size: clamp(36px, 12vw, 56px); }
  .home-hero { min-height: auto; }
  .feature-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .passport-banner > img { height: 180px; }
  .admin-sidebar { position: relative; top: 0; height: auto; }
  .admin-topbar { align-items: flex-start; flex-direction: column; }
  .bottom-nav {
    position: fixed;
    z-index: 30;
    left: 12px;
    right: 12px;
    bottom: 12px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: rgba(255,255,255,.92);
    box-shadow: 0 18px 48px rgba(47,82,51,.18);
    backdrop-filter: blur(16px);
    padding: 8px;
  }
  .bottom-nav a { display: grid; place-items: center; gap: 4px; color: var(--forest); font-size: 11px; font-weight: 900; }
  .bottom-nav img { width: 22px; height: 22px; object-fit: contain; }
}

@media (max-width: 560px) {
  .feature-strip { grid-template-columns: 1fr; }
  .compact-card { grid-template-columns: 74px 1fr; }
  .compact-card img { width: 74px; height: 74px; }
}

/* Layout tidy pass */
.site-header {
  position: relative;
  z-index: 5;
}

.home-hero {
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, .82fr);
  min-height: auto;
  padding: 42px 0 22px;
}

.hero-stack {
  grid-template-columns: 1fr;
  align-items: stretch;
}

.price-card {
  min-height: 292px;
}

.price-durian {
  height: 116px;
  margin: 8px 0;
}

.price-card strong {
  font-size: 34px;
}

.passport-mini {
  grid-template-columns: 104px 1fr;
  align-items: center;
  padding: 14px;
}

.passport-mini > img {
  width: 104px;
  height: 116px;
}

.stats {
  margin-top: 10px;
}

.stat-card {
  min-height: 104px;
  padding: 16px;
}

.feature-strip {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
  padding: 18px 0 8px;
}

.feature-pill {
  min-height: 78px;
}

.dashboard-grid {
  grid-template-columns: minmax(280px, .88fr) minmax(360px, 1.12fr);
}

.forecast-card {
  grid-column: 1 / -1;
  display: block;
}

.map-board {
  min-height: 280px;
}

.passport-banner {
  grid-template-columns: minmax(0, 1fr) 260px;
  padding: 24px;
}

.passport-banner > img {
  height: 210px;
}

.compact-card {
  grid-template-columns: 82px minmax(0, 1fr);
}

.compact-card img {
  width: 82px;
  height: 82px;
}

.route-admin .site-header,
.route-admin .site-footer,
.route-admin .bottom-nav {
  display: none;
}

.admin-shell {
  margin-top: 16px;
}

.admin-content-grid {
  grid-template-columns: minmax(320px, 1.15fr) minmax(260px, .85fr);
}

.admin-content-grid .admin-chart {
  grid-row: span 2;
}

@media (max-width: 900px) {
  .home-hero,
  .hero-stack,
  .dashboard-grid,
  .forecast-card,
  .passport-banner,
  .admin-content-grid {
    grid-template-columns: 1fr;
  }

  .forecast-card,
  .admin-content-grid .admin-chart {
    grid-column: auto;
    grid-row: auto;
  }

  .passport-mini {
    grid-template-columns: 92px 1fr;
  }

  .passport-mini > img {
    width: 92px;
    height: 100px;
  }
}

/* Prototype-matched homepage */
.prototype-home {
  padding-bottom: 26px;
}

.proto-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) 300px 196px;
  min-height: 334px;
  gap: 18px;
  align-items: center;
  overflow: hidden;
  padding: 24px 24px 18px;
  background:
    linear-gradient(90deg, rgba(250,248,242,.92), rgba(250,248,242,.62), rgba(250,248,242,.88)),
    url("/public/assets/duriotourism/05_Vector_And_UI_Assets/12_Backgrounds/mountain-morning-wide.jpg") center / cover;
}

.proto-hero-copy {
  max-width: 560px;
}

.script-note {
  margin: 0 0 4px;
  color: var(--bronze);
  font-size: 18px;
  font-style: italic;
  line-height: 1.2;
}

.proto-hero h1 {
  margin: 0;
  font-size: clamp(30px, 4.4vw, 48px);
  line-height: 1.04;
}

.proto-hero h1 span {
  color: var(--bronze);
}

.proto-hero p {
  max-width: 480px;
  margin: 10px 0 0;
  font-size: 14px;
}

.proto-hero-visual {
  align-self: end;
}

.proto-hero-visual img {
  width: 100%;
  height: 260px;
  object-fit: contain;
}

.proto-price {
  min-height: 258px;
  padding: 18px;
  background: rgba(255,255,255,.72);
}

.proto-price-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.proto-price-variety {
  width: 72px;
  height: 72px;
  object-fit: contain;
  border-radius: 16px;
  padding: 6px;
  background: rgba(255,255,255,.64);
  filter: drop-shadow(0 10px 12px rgba(61,42,9,.15));
}

.proto-price h3 {
  margin: 10px 0 2px;
  color: var(--bronze);
  font-size: 16px;
  text-transform: uppercase;
}

.proto-price small,
.proto-price p {
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
}

.proto-price strong {
  display: flex;
  align-items: baseline;
  gap: 2px;
  margin: 18px 0 4px;
  color: var(--forest);
  font-size: 42px;
  font-weight: 950;
  line-height: 1;
  white-space: nowrap;
}

.proto-price .price-value {
  display: inline-block;
  min-width: 2.1ch;
  font-size: 1em;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
}

.proto-price .price-currency,
.proto-price .price-unit {
  font-size: 18px;
  font-weight: 950;
}

.proto-price.trend-card {
  transition: opacity .18s ease, transform .18s ease;
}

.proto-price.trend-card.is-switching {
  opacity: .45;
  transform: translateY(3px);
}

.proto-price .price-trend.trend-up {
  color: #167a32;
}

.proto-price .price-trend.trend-down {
  color: #b3261e;
}

.proto-price .price-trend.trend-flat {
  color: #8a6a16;
}

.proto-price-dots {
  display: flex;
  gap: 7px;
  margin-top: 12px;
}

.proto-price-dot {
  width: 9px;
  height: 9px;
  border: 0;
  border-radius: 999px;
  background: rgba(47,82,51,.25);
  cursor: pointer;
}

.proto-price-dot.active {
  width: 24px;
  background: var(--forest);
}

.proto-stats {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  min-height: 68px;
  margin: 14px 0 12px;
  padding: 10px 14px;
}

.proto-stats div {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  column-gap: 8px;
  align-items: center;
  border-right: 1px solid var(--line);
  padding: 0 10px;
}

.proto-stats div:last-child {
  border-right: 0;
}

.proto-stats img {
  grid-row: span 2;
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.proto-stats span {
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.proto-stats strong {
  color: var(--forest-dark);
  font-size: 17px;
  line-height: 1.1;
}

.proto-feature-strip {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}

.proto-feature-strip a {
  min-height: 104px;
  display: grid;
  place-items: center;
  gap: 8px;
  padding: 12px 8px;
  text-align: center;
  color: var(--forest);
  font-size: 12px;
  font-weight: 900;
}

.proto-feature-strip img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.proto-three {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 14px;
}

.proto-two {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  gap: 14px;
  margin-bottom: 14px;
}

.proto-two.proto-lower {
  grid-template-columns: 1.35fr .65fr;
}

.prototype-home .card {
  padding: 16px;
}

.prototype-home h2 {
  font-size: 18px;
}

.dmi-list,
.season-list,
.community-list {
  display: grid;
  gap: 10px;
}

.dmi-list div,
.community-list div {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.dmi-list img,
.community-list img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.dmi-list span,
.community-list span,
.season-list span {
  color: var(--forest-dark);
  font-size: 13px;
  font-weight: 900;
}

.dmi-list strong,
.community-list strong {
  color: var(--forest);
  font-size: 13px;
}

.mini-link {
  display: inline-flex;
  margin-top: 12px;
  color: var(--forest);
  font-size: 12px;
  font-weight: 900;
}

.proto-map {
  min-height: 218px;
}

.season-list div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.season-list b {
  border-radius: 999px;
  background: rgba(47,82,51,.12);
  color: var(--forest);
  padding: 5px 9px;
  font-size: 11px;
}

.season-list small {
  color: var(--muted);
  font-size: 11px;
}

.route-mini-grid,
.hot-price-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.route-mini-grid div,
.hot-price-grid div {
  min-height: 158px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.52);
  padding: 9px;
}

.route-mini-grid img,
.hot-price-grid img {
  width: 100%;
  height: 82px;
  object-fit: contain;
  margin-bottom: 8px;
}

.route-mini-grid strong,
.hot-price-grid strong {
  display: block;
  color: var(--forest-dark);
  font-size: 12px;
  line-height: 1.25;
}

.route-mini-grid span,
.hot-price-grid span {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.passport-panel {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 18px;
  align-items: center;
}

.passport-panel > img {
  width: 140px;
  height: 150px;
  object-fit: contain;
}

.badge-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.badge-row span {
  border-radius: 999px;
  background: rgba(184,134,11,.12);
  color: var(--bronze);
  padding: 6px 9px;
  font-size: 11px;
  font-weight: 900;
}

.community-list small {
  display: block;
  color: var(--muted);
  font-size: 11px;
}

.small-cards {
  grid-template-columns: .9fr 1fr .9fr;
}

.rank-list.compact div {
  grid-template-columns: 26px minmax(0, 1fr) auto;
}

.today-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.today-grid div {
  border-radius: 14px;
  background: rgba(255,255,255,.52);
  padding: 12px;
}

.today-grid b,
.today-grid span {
  display: block;
}

.today-grid b {
  color: var(--forest);
  font-size: 18px;
}

.today-grid span {
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.reward-card {
  background:
    linear-gradient(135deg, rgba(255,255,255,.8), rgba(212,180,131,.22)),
    url("/public/assets/duriotourism/05_Vector_And_UI_Assets/04_Marketplace_Icons/gift.svg") right 16px bottom 12px / 72px no-repeat;
}

/* Prototype-matched admin shell */
.route-admin {
  background:
    linear-gradient(90deg, rgba(248,245,239,.88), rgba(250,248,242,.72)),
    url("/public/assets/duriotourism/04_Prototype_Visual_Assets/background-approved-admin-mountain-bokeh-soft.png") center top / cover fixed;
}

.admin-sidebar {
  background: rgba(248,245,239,.74);
  color: var(--forest-dark);
  border-color: rgba(255,255,255,.76);
  box-shadow: 0 14px 35px rgba(48,61,45,.14);
}

.admin-brand {
  color: var(--forest-dark);
}

.admin-sidebar nav a {
  color: var(--forest-dark);
}

.admin-sidebar nav a.active,
.admin-sidebar nav a:hover {
  background: var(--forest);
  color: #fff;
}

.admin-sidebar nav img {
  filter: none;
}

.admin-sidebar nav a.active img,
.admin-sidebar nav a:hover img {
  filter: brightness(0) invert(1);
}

.admin-sidebar p {
  color: var(--muted);
}

@media (max-width: 980px) {
  .proto-hero {
    grid-template-columns: 1fr;
  }

  .proto-hero-visual,
  .proto-price {
    display: none;
  }

  .proto-stats,
  .proto-feature-strip,
  .proto-three,
  .proto-two,
  .proto-two.proto-lower,
  .small-cards {
    grid-template-columns: 1fr 1fr;
  }

  .route-mini-grid,
  .hot-price-grid {
    grid-template-columns: 1fr 1fr;
  }

  .passport-panel {
    grid-template-columns: 120px 1fr;
  }
}

@media (max-width: 620px) {
  .proto-stats,
  .proto-feature-strip,
  .proto-three,
  .proto-two,
  .proto-two.proto-lower,
  .small-cards,
  .route-mini-grid,
  .hot-price-grid,
  .today-grid {
    grid-template-columns: 1fr;
  }

  .passport-panel {
    grid-template-columns: 1fr;
  }
}

/* Prototype alignment final pass */
.site-header .nav {
  min-height: 64px;
  padding: 8px 0 6px;
}

.site-header .brand {
  gap: 9px;
  font-size: 15px;
  text-transform: uppercase;
}

.site-header .brand img {
  width: 42px;
  height: 42px;
}

.site-header .navlinks {
  gap: 6px;
}

.site-header .navlinks a {
  min-height: 34px;
  padding: 7px 10px;
  font-size: 12px;
}

.site-header .navlinks a.active {
  background: var(--forest);
  border-color: var(--forest);
  color: #fff;
}

.site-header .navlinks a.active img {
  filter: brightness(0) invert(1);
}

.prototype-home {
  width: min(1024px, calc(100% - 28px));
}

.prototype-home .glass,
.route-admin .glass {
  border-color: rgba(255,255,255,.74);
  border-radius: 14px;
  box-shadow: 0 14px 35px rgba(48,61,45,.14);
}

.proto-hero {
  grid-template-columns: minmax(0, 1fr) 260px 176px;
  gap: 16px;
  border-radius: 18px;
  padding: 22px 22px 16px;
}

.proto-hero .hero-actions {
  margin-top: 18px;
}

.proto-hero .button {
  min-height: 38px;
  padding: 0 14px;
  font-size: 12px;
}

.proto-hero-visual img {
  height: 246px;
}

.proto-price {
  min-height: 238px;
  border-radius: 13px;
}

.proto-price strong {
  font-size: 38px;
}

.proto-stats {
  align-items: stretch;
  border-radius: 14px;
}

.proto-stats div {
  min-width: 0;
}

.proto-feature-strip a {
  align-content: center;
  border-radius: 14px;
}

.proto-three,
.proto-two,
.proto-two.proto-lower {
  align-items: stretch;
}

.prototype-home .card {
  min-width: 0;
  border-radius: 14px;
}

.prototype-home .section-title {
  min-height: 42px;
  margin-bottom: 10px;
}

.prototype-home .section-title img {
  flex: 0 0 auto;
}

.route-mini-grid div,
.hot-price-grid div,
.today-grid div {
  min-width: 0;
  border-radius: 13px;
}

.route-mini-grid img,
.hot-price-grid img {
  border-radius: 11px;
  background: rgba(255,255,255,.58);
}

.route-mini-grid strong,
.hot-price-grid strong {
  display: -webkit-box;
  min-height: 30px;
  overflow: hidden;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.passport-panel .button,
.reward-card .button {
  min-height: 38px;
  padding: 0 14px;
  font-size: 12px;
}

.admin-shell {
  width: min(1120px, calc(100% - 28px));
  grid-template-columns: 218px minmax(0, 1fr);
  gap: 16px;
}

.admin-sidebar {
  border-radius: 18px;
  padding: 16px;
}

.admin-sidebar nav {
  gap: 6px;
}

.admin-sidebar nav a {
  min-height: 38px;
  border-radius: 12px;
  padding: 8px 10px;
  font-size: 13px;
}

.admin-main {
  gap: 14px;
}

.admin-topbar,
.admin-kpi,
.admin-main .card {
  border-radius: 14px;
}

.admin-kpi-grid {
  gap: 12px;
}

.admin-kpi {
  min-height: 116px;
  padding: 16px;
}

.admin-kpi strong {
  font-size: 30px;
}

.admin-content-grid {
  gap: 12px;
}

@media (max-width: 1100px) {
  .prototype-home {
    width: min(100% - 24px, 940px);
  }

  .proto-hero {
    grid-template-columns: minmax(0, 1fr) 220px;
  }

  .proto-price {
    display: none;
  }

  .proto-stats,
  .proto-feature-strip {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .proto-two,
  .proto-two.proto-lower {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  .proto-feature-strip,
  .proto-stats,
  .proto-three,
  .small-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .proto-hero-visual {
    display: none;
  }
}

/* Public menu pages */
.public-page {
  padding-bottom: 34px;
}

.public-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 150px;
  gap: 24px;
  align-items: center;
  min-height: 220px;
  margin-top: 12px;
  padding: 28px;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(250,248,242,.94), rgba(250,248,242,.72)),
    url("/public/assets/duriotourism/05_Vector_And_UI_Assets/12_Backgrounds/mountain-morning-wide.jpg") center / cover;
}

.public-hero h1 {
  max-width: 780px;
  font-size: clamp(34px, 5vw, 58px);
}

.public-hero p {
  max-width: 680px;
  margin-bottom: 0;
}

.public-hero > img {
  width: 130px;
  height: 130px;
  object-fit: contain;
  justify-self: end;
}

.public-hero.passport-hero {
  grid-template-columns: minmax(0, 1fr) 230px;
}

.public-hero.passport-hero > img {
  width: 220px;
  height: 200px;
}

.passport-dashboard {
  display: grid;
  grid-template-columns: minmax(280px, 1.4fr) repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.passport-card-preview {
  display: grid;
  align-content: center;
  min-height: 170px;
  background:
    radial-gradient(circle at 85% 18%, rgba(212,160,23,.22), transparent 28%),
    linear-gradient(135deg, rgba(47,82,51,.94), rgba(20,45,24,.9));
  color: #fff;
}

.passport-card-preview .eyebrow,
.passport-card-preview p,
.passport-card-preview small {
  color: rgba(255,255,255,.78);
}

.passport-card-preview h2 {
  margin: 6px 0;
  color: #fff;
  font-size: 34px;
}

.passport-progress {
  height: 10px;
  margin: 14px 0 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.22);
}

.passport-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--gold), #fff4bd);
}

.passport-stat-card {
  display: grid;
  align-content: center;
  min-height: 170px;
  padding: 18px;
  border-radius: 18px;
}

.passport-stat-card span,
.passport-stat-card small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.passport-stat-card strong {
  display: block;
  margin: 8px 0;
  color: var(--forest);
  font-size: 30px;
  line-height: 1.05;
}

.passport-main-grid {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 16px;
}

.passport-checkin-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.passport-checkin-form label {
  display: grid;
  gap: 6px;
  color: var(--forest-dark);
  font-size: 13px;
  font-weight: 900;
}

.passport-form-wide {
  grid-column: 1 / -1;
}

.passport-stamp-list {
  display: grid;
  gap: 10px;
}

.passport-stamp-list div,
.passport-location-list div {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.passport-stamp-list img,
.passport-location-list img {
  width: 52px;
  height: 52px;
  object-fit: cover;
  border-radius: 14px;
  background: rgba(255,255,255,.62);
}

.passport-stamp-list b,
.passport-location-list b {
  display: block;
  color: var(--forest-dark);
}

.passport-stamp-list small,
.passport-location-list small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 760;
}

.passport-stamp-list strong,
.passport-location-list strong {
  border-radius: 999px;
  padding: 6px 10px;
  background: rgba(212,160,23,.16);
  color: var(--gold-dark);
  font-size: 12px;
}

.passport-badge-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.passport-badge-track article {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 16px;
  background: rgba(255,255,255,.58);
  opacity: .64;
}

.passport-badge-track article.is-earned {
  border-color: rgba(212,160,23,.42);
  background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,247,226,.78));
  opacity: 1;
}

.passport-badge-track img {
  width: 74px;
  height: 74px;
  object-fit: contain;
}

.passport-badge-track span {
  display: inline-flex;
  margin-top: 10px;
  border-radius: 999px;
  padding: 5px 9px;
  background: rgba(47,82,51,.1);
  color: var(--forest);
  font-size: 11px;
  font-weight: 900;
}

.passport-badge-track h3 {
  margin: 10px 0 6px;
}

.passport-badge-track p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 760;
}

.orchard-hero > img {
  width: 150px;
  height: 150px;
  object-fit: contain;
  justify-self: end;
}

.orchard-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.orchard-stat-card {
  display: grid;
  align-content: center;
  min-height: 124px;
  padding: 18px;
  border-radius: 18px;
}

.orchard-stat-card span,
.orchard-stat-card small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.orchard-stat-card strong {
  display: block;
  margin: 8px 0;
  color: var(--forest);
  font-size: 34px;
  line-height: 1;
}

.orchard-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.mini-link.as-button {
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
}

.orchard-popup-dialog {
  width: min(920px, calc(100% - 28px));
  max-height: min(86vh, 860px);
  overflow: auto;
}

.orchard-form-dialog {
  width: min(1040px, calc(100% - 28px));
}

.orchard-popup .section-title {
  margin-right: 34px;
}

.orchard-promo-panel {
  overflow: hidden;
}

.orchard-promo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.orchard-promo-grid article {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: rgba(255,255,255,.62);
}

.orchard-promo-grid img {
  width: 130px;
  height: 100px;
  border-radius: 14px;
  object-fit: cover;
}

.orchard-promo-grid span,
.orchard-promo-grid small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.orchard-promo-grid h3 {
  margin: 4px 0;
  color: var(--forest-dark);
}

.orchard-promo-grid p {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 760;
}

.orchard-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(280px, 1fr));
  gap: 16px;
  align-items: stretch;
}

.orchard-card {
  overflow: hidden;
  border-radius: 22px;
}

.orchard-card-link,
.orchard-promo-link {
  display: block;
  height: 100%;
  color: inherit;
  text-decoration: none;
}

.orchard-card-link:hover h2,
.orchard-promo-grid h3 a:hover {
  color: var(--gold-dark);
}

.orchard-promo-grid h3 a {
  color: inherit;
  text-decoration: none;
}

.orchard-card-image {
  position: relative;
  height: 230px;
  overflow: hidden;
  background: rgba(47,82,51,.08);
}

.orchard-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.orchard-card-image span {
  position: absolute;
  top: 14px;
  left: 14px;
  border-radius: 999px;
  padding: 7px 11px;
  background: rgba(47,82,51,.9);
  color: #fff;
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}

.orchard-card-body {
  display: grid;
  gap: 10px;
  padding: 18px;
}

.orchard-card-body > small {
  color: var(--gold-dark);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.orchard-card-body h2 {
  color: var(--forest-dark);
  font-size: 24px;
  line-height: 1.1;
}

.orchard-card-body p {
  min-height: 64px;
  margin: 0;
  color: var(--muted);
  font-weight: 760;
  line-height: 1.45;
}

.orchard-variety-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.orchard-variety-tags b {
  border-radius: 999px;
  padding: 6px 9px;
  background: rgba(212,160,23,.14);
  color: var(--forest-dark);
  font-size: 11px;
  font-weight: 900;
}

.orchard-facility-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.orchard-facility-tags span {
  border-radius: 999px;
  padding: 5px 8px;
  background: rgba(47,82,51,.08);
  color: var(--forest);
  font-size: 11px;
  font-weight: 850;
}

.orchard-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.orchard-card-meta span {
  border-radius: 12px;
  padding: 7px 9px;
  background: rgba(47,82,51,.08);
  color: var(--forest);
  font-size: 12px;
  font-weight: 900;
}

.orchard-contact {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.orchard-contact a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border-radius: 999px;
  padding: 0 13px;
  background: var(--forest);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}

.orchard-contact span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border-radius: 999px;
  padding: 0 13px;
  background: var(--forest);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}

.orchard-detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
  gap: 26px;
  align-items: stretch;
  overflow: hidden;
  padding: 24px;
}

.orchard-detail-hero > img {
  width: 100%;
  height: 100%;
  min-height: 340px;
  object-fit: cover;
  border-radius: 22px;
}

.orchard-detail-hero h1 {
  max-width: 760px;
  color: var(--forest-dark);
  font-size: clamp(36px, 5vw, 64px);
}

.orchard-detail-promo {
  margin-top: 18px;
  border: 1px solid rgba(184,134,11,.24);
  background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,248,224,.82));
}

.orchard-detail-promo small {
  color: var(--gold-dark);
  font-weight: 900;
}

.orchard-detail-info .card {
  min-height: 230px;
}

.detail-contact {
  margin-top: 12px;
}

.public-hero .button {
  margin-top: 18px;
}

.public-popup-dialog {
  width: min(920px, calc(100% - 28px));
  max-height: min(86vh, 860px);
  overflow: auto;
}

.public-submit-form {
  margin-top: 14px;
}

.form-wide {
  grid-column: 1 / -1;
}

.public-long-textarea {
  min-height: 220px;
}

.orchard-owner-panel {
  scroll-margin-top: 20px;
}

.orchard-owner-panel > .muted {
  margin-top: -4px;
}

.orchard-owner-zone {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  gap: 16px;
  align-items: start;
  scroll-margin-top: 20px;
}

.orchard-login-form {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.owner-orchard-list {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}

.owner-orchard-list div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px 12px;
  background: rgba(255,255,255,.6);
}

.owner-orchard-list b {
  color: var(--forest-dark);
}

.owner-orchard-list span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.orchard-owner-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.orchard-owner-form label {
  display: grid;
  gap: 6px;
  color: var(--forest-dark);
  font-size: 13px;
  font-weight: 900;
}

.orchard-form-wide {
  grid-column: 1 / -1;
}

.orchard-check-group,
.orchard-promo-form {
  display: grid;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.54);
}

.orchard-check-group {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.orchard-check-group > span,
.orchard-promo-form > span {
  grid-column: 1 / -1;
  color: var(--forest-dark);
  font-size: 13px;
  font-weight: 950;
}

.orchard-check-group label {
  display: flex;
  flex-direction: row;
  gap: 8px;
  align-items: center;
  color: var(--muted);
  font-size: 12px;
}

.orchard-promo-form {
  grid-template-columns: 1fr;
}

.metric-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 14px 0;
  padding: 12px 16px;
}

.metric-strip div {
  border-right: 1px solid var(--line);
  padding: 8px 16px;
}

.metric-strip div:last-child {
  border-right: 0;
}

.metric-strip span,
.public-list small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.metric-strip strong {
  display: block;
  margin-top: 4px;
  color: var(--forest);
  font-size: 24px;
  line-height: 1.1;
}

.variety-metric-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 14px 0;
}

.variety-metric-card {
  padding: 16px;
}

.variety-metric-head {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  margin-bottom: 12px;
}

.variety-metric-head img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 14px;
  background: rgba(255,255,255,.62);
  padding: 5px;
}

.variety-metric-head small,
.variety-metric-grid span {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.variety-metric-head b {
  display: block;
  margin-top: 2px;
  color: var(--forest-dark);
  font-size: 15px;
}

.stock-variety-card {
  overflow: hidden;
  position: relative;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease;
}

.stock-variety-card::before {
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  content: "";
  background: var(--gold);
}

.stock-variety-card:hover,
.stock-variety-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 18px 46px rgba(47,82,51,.16);
  outline: 0;
}

.stock-variety-card.trend-up::before,
.stock-variety-card.trend-up .stock-trend-pill {
  background: #167a32;
}

.stock-variety-card.trend-down::before,
.stock-variety-card.trend-down .stock-trend-pill {
  background: #b3261e;
}

.stock-variety-card.trend-flat::before,
.stock-variety-card.trend-flat .stock-trend-pill {
  background: #8a6a16;
}

.stock-trend-pill {
  align-self: start;
  border-radius: 999px;
  padding: 6px 9px;
  color: #fff;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
  white-space: nowrap;
}

.stock-price-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 12px;
}

.stock-price-row span,
.stock-price-row small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.stock-price-row strong {
  display: block;
  margin-top: 3px;
  color: var(--forest);
  font-size: 34px;
  line-height: 1;
}

.stock-price-row strong small {
  display: inline;
  font-size: 14px;
}

.stock-latest-date {
  margin-top: 5px;
}

.stock-click-hint {
  display: block;
  margin-top: 10px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.stock-price-row p {
  margin: 0;
  text-align: right;
}

.stock-price-row p b {
  display: block;
  font-size: 18px;
  line-height: 1.1;
}

.trend-up .stock-price-row p b {
  color: #167a32;
}

.trend-down .stock-price-row p b {
  color: #b3261e;
}

.trend-flat .stock-price-row p b {
  color: #8a6a16;
}

.variety-report-popup {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: none;
  place-items: center;
  padding: 22px;
  background: rgba(21,32,24,.52);
  backdrop-filter: blur(8px);
}

.has-popup-open {
  overflow: hidden;
}

.variety-report-popup.is-open {
  display: grid;
}

.variety-report-dialog {
  position: relative;
  width: min(760px, 100%);
  max-height: min(78vh, 720px);
  overflow: auto;
  border-radius: 24px;
  padding: 22px;
}

.variety-popup-close {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: 12px;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  background: rgba(47,82,51,.1);
  color: var(--forest-dark);
  cursor: pointer;
  font-size: 24px;
  font-weight: 900;
}

.variety-report-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0;
}

.variety-report-summary div {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.55);
}

.variety-report-summary span,
.variety-report-list small,
.variety-report-list em {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
}

.variety-report-summary strong,
.variety-report-list > div > strong {
  color: var(--forest);
}

.variety-report-list {
  display: grid;
  gap: 10px;
}

.variety-report-list > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.variety-report-list b {
  color: var(--ink);
}

.variety-report-list em {
  margin-top: 3px;
  font-style: normal;
}

.variety-metric-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.variety-metric-grid div {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  background: rgba(255,255,255,.5);
}

.variety-metric-grid strong {
  display: block;
  margin-top: 4px;
  color: var(--forest);
  font-size: 20px;
  line-height: 1.1;
}

.public-grid {
  display: grid;
  gap: 14px;
  margin-bottom: 14px;
}

.public-grid.two-col {
  grid-template-columns: 1fr 1fr;
}

.public-list {
  display: grid;
  gap: 10px;
}

.public-list > div {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.public-list > div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.public-list img {
  width: 46px;
  height: 46px;
  object-fit: contain;
  border-radius: 12px;
  background: rgba(255,255,255,.56);
  padding: 5px;
}

.public-list b,
.public-list strong {
  color: var(--forest-dark);
}

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

.selected-variety-map-card {
  margin-bottom: 16px;
}

.selected-variety-map-card > p {
  color: var(--muted);
  font-weight: 760;
}

.selected-orchard-section {
  margin-top: 16px;
}

.selected-orchard-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(240px, 1fr));
  gap: 12px;
}

.selected-orchard-card {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: rgba(255,255,255,.62);
}

.selected-orchard-card > img {
  width: 74px;
  height: 74px;
  object-fit: cover;
  border-radius: 16px;
  background: rgba(255,255,255,.75);
}

.selected-orchard-card h3 {
  margin: 0 0 5px;
  color: var(--forest-dark);
  font-size: 17px;
}

.selected-orchard-card p,
.selected-orchard-card small,
.selected-orchard-card span {
  display: block;
  color: var(--muted);
  font-size: 13px;
  font-weight: 780;
  line-height: 1.4;
}

.selected-orchard-card span {
  margin-top: 7px;
  color: var(--forest);
  font-weight: 900;
}

.price-map-board {
  position: relative;
  min-height: 470px;
  overflow: hidden;
  border: 1px solid rgba(47,82,51,.12);
  border-radius: 24px;
  background:
    radial-gradient(circle at 24% 30%, rgba(212,160,23,.24), transparent 16%),
    radial-gradient(circle at 68% 34%, rgba(47,82,51,.2), transparent 18%),
    radial-gradient(circle at 42% 70%, rgba(212,160,23,.22), transparent 17%),
    linear-gradient(135deg, rgba(47,82,51,.12), rgba(184,134,11,.12)),
    url("/public/assets/duriotourism/05_Vector_And_UI_Assets/12_Backgrounds/misty-valley-wide.jpg") center / cover;
}

.real-price-map {
  min-height: 560px;
  padding: 0;
  background: #dfeadf;
}

.home-price-map {
  min-height: 280px;
  border-radius: 18px;
}

.no-leaflet-map {
  background:
    linear-gradient(135deg, rgba(47,82,51,.08), rgba(212,160,23,.08)),
    #dfeadf;
}

.no-leaflet-map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  pointer-events: none;
}

.server-map-pins {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
}

.server-price-pin {
  position: absolute;
  display: inline-grid;
  min-width: 122px;
  transform: translate(-50%, -100%);
  gap: 2px;
  border: 2px solid rgba(255,255,255,.95);
  border-radius: 16px;
  padding: 7px 9px;
  background: linear-gradient(135deg, #24562c, #34783c);
  color: #fff;
  text-align: center;
  box-shadow: 0 14px 30px rgba(0,0,0,.25);
}

.server-price-pin::after {
  position: absolute;
  left: 50%;
  bottom: -9px;
  width: 14px;
  height: 14px;
  content: "";
  transform: translateX(-50%) rotate(45deg);
  border-right: 2px solid rgba(255,255,255,.95);
  border-bottom: 2px solid rgba(255,255,255,.95);
  background: #34783c;
}

.server-price-pin b,
.server-price-pin em,
.server-price-pin small {
  position: relative;
  z-index: 1;
}

.server-price-pin b {
  color: #fff;
  font-size: 14px;
  line-height: 1;
}

.server-price-pin em {
  max-width: 118px;
  overflow: hidden;
  color: rgba(255,255,255,.95);
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.server-price-pin small {
  max-width: 118px;
  overflow: hidden;
  color: rgba(255,255,255,.88);
  font-size: 9px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-circle-price-pin {
  place-items: center;
  width: 58px;
  min-width: 58px;
  height: 58px;
  transform: translate(-50%, -50%);
  border-radius: 999px;
  padding: 0;
}

.home-circle-price-pin::after {
  content: none;
}

.home-circle-price-pin b {
  font-size: 15px;
}

.price-map-board.real-price-map::before {
  content: none;
}

.map-note {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 820;
}

.map-loading {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--forest);
  font-weight: 900;
}

.empty-state {
  margin: 0;
  border: 1px dashed rgba(47,82,51,.24);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,.58);
  color: var(--muted);
  font-weight: 800;
  text-align: center;
}

.leaflet-price-marker {
  display: inline-grid;
  gap: 2px;
  min-width: 122px;
  border: 2px solid rgba(255,255,255,.94);
  border-radius: 16px;
  padding: 7px 9px;
  background: linear-gradient(135deg, #24562c, #34783c);
  color: #fff;
  text-align: center;
  box-shadow: 0 14px 30px rgba(0,0,0,.25);
}

.leaflet-price-marker b {
  display: block;
  color: #fff;
  font-size: 14px;
  line-height: 1;
}

.leaflet-price-marker em {
  display: block;
  max-width: 118px;
  overflow: hidden;
  color: rgba(255,255,255,.95);
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.leaflet-price-marker small {
  display: block;
  max-width: 118px;
  overflow: hidden;
  color: rgba(255,255,255,.86);
  font-size: 9px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.leaflet-price-marker-compact {
  place-items: center;
  min-width: 54px;
  border-radius: 999px;
  padding: 0;
}

.leaflet-price-marker-compact b {
  font-size: 11px;
}

.leaflet-price-marker-compact em,
.leaflet-price-marker-compact small {
  display: none;
}

.leaflet-home-price-marker {
  place-items: center;
  width: 58px;
  min-width: 58px;
  height: 58px;
  border-radius: 999px;
  padding: 0;
}

.leaflet-home-price-marker b {
  font-size: 15px;
}

.leaflet-home-price-marker-compact b {
  font-size: 11px;
}

.leaflet-popup-content strong {
  color: var(--forest);
}

.price-map-board::before {
  position: absolute;
  inset: 28px;
  content: "";
  border: 1px dashed rgba(255,255,255,.52);
  border-radius: 45% 55% 42% 58%;
}

.price-map-pin {
  position: absolute;
  display: inline-grid;
  gap: 2px;
  min-width: 86px;
  border: 2px solid rgba(255,255,255,.88);
  border-radius: 18px;
  padding: 8px 10px;
  background: linear-gradient(135deg, var(--forest), #22532b);
  color: #fff;
  text-align: center;
  box-shadow: 0 14px 28px rgba(0,0,0,.22);
}

.price-map-pin b {
  font-size: 15px;
  line-height: 1;
}

.price-map-pin small {
  max-width: 104px;
  overflow: hidden;
  color: rgba(255,255,255,.86);
  font-size: 10px;
  font-weight: 850;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.price-map-pin.pin-7 { left: 28%; top: 78%; }
.price-map-pin.pin-8 { left: 83%; top: 52%; }
.price-map-pin.pin-9 { left: 48%; top: 36%; }
.price-map-pin.pin-10 { left: 62%; top: 80%; }

.hot-variety-list,
.state-price-list {
  display: grid;
  gap: 10px;
}

.hot-variety-list > div,
.state-price-list > div {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  border-bottom: 1px solid var(--line);
  padding-bottom: 10px;
}

.state-price-list > div {
  grid-template-columns: minmax(0, 1fr) auto;
}

.hot-variety-list > div:last-child,
.state-price-list > div:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.hot-variety-list img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  border-radius: 14px;
  background: rgba(255,255,255,.62);
  padding: 5px;
}

.hot-variety-list small,
.state-price-list small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
}

.hot-variety-list strong,
.state-price-list strong {
  color: var(--forest);
}

.hot-variety-section {
  margin-bottom: 14px;
}

.hot-variety-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hot-variety-grid > div {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.5);
}

.hot-variety-card {
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease;
}

.hot-variety-card:hover,
.hot-variety-card:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(47,82,51,.13);
  outline: 0;
}

.premium-variety-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 620px);
  gap: 14px;
  align-items: center;
  margin: 14px 0;
}

.premium-variety-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 14px 0;
}

.premium-variety-stat-card {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 116px;
  padding: 16px;
  border-radius: 18px;
}

.premium-variety-stat-card img {
  width: 48px;
  height: 48px;
  object-fit: contain;
}

.premium-variety-stat-card span,
.premium-variety-stat-card small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.premium-variety-stat-card strong {
  display: block;
  margin: 5px 0;
  color: var(--forest);
  font-size: 30px;
  line-height: 1.05;
}

.premium-variety-stat-card.popular-stat strong {
  color: var(--forest-dark);
  font-size: 17px;
  line-height: 1.22;
}

.premium-variety-toolbar strong {
  display: block;
  color: var(--forest);
  font-size: 28px;
  line-height: 1;
}

.premium-variety-toolbar form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 10px;
  align-items: stretch;
}

.premium-variety-toolbar form .button {
  margin-top: 0;
  white-space: nowrap;
}

.add-variety-button {
  border-color: transparent;
  background: #d62828;
  color: #fff;
}

.add-variety-button:hover,
.add-variety-button:focus-visible {
  background: #b91c1c;
  color: #fff;
}

.premium-variety-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(280px, 1fr));
  gap: 16px;
  align-items: stretch;
}

.premium-variety-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.premium-variety-image {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 218px;
  padding-bottom: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.78), rgba(212,160,23,.12));
}

.premium-variety-image img {
  width: 100%;
  height: 180px;
  object-fit: contain;
  padding: 14px;
}

.premium-variety-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  border-radius: 999px;
  padding: 6px 10px;
  background: var(--gold);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
}

.premium-variety-price-badge {
  position: absolute;
  right: 12px;
  bottom: 12px;
  z-index: 2;
  display: grid;
  gap: 2px;
  min-width: 118px;
  justify-items: start;
  text-align: left;
  border: 1px solid rgba(255,255,255,.74);
  border-radius: 16px;
  padding: 8px 11px;
  background: rgba(27,65,32,.9);
  color: #fff;
  box-shadow: 0 12px 28px rgba(27,65,32,.2);
}

.premium-variety-price-badge small {
  display: block;
  width: 100%;
  color: rgba(255,255,255,.82);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.premium-variety-price-badge b {
  display: block;
  width: 100%;
  color: #fff;
  font-size: 17px;
  font-weight: 1000;
  line-height: 1.05;
}

.find-variety-map-link {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  border: 1px solid rgba(255,255,255,.72);
  border-radius: 999px;
  padding: 8px 12px;
  background: linear-gradient(135deg, var(--forest), var(--forest-dark));
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  text-decoration: none;
  box-shadow: 0 10px 26px rgba(27,65,32,.22);
}

.find-variety-map-link:hover,
.find-variety-map-link:focus-visible {
  transform: translateY(-1px);
  color: #fff;
}

.premium-variety-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 16px;
}

.premium-variety-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 56px;
}

.premium-variety-code {
  display: inline-grid;
  min-width: 78px;
  min-height: 42px;
  place-items: center;
  padding: 8px 16px;
  border-radius: 16px;
  flex: 0 0 auto;
  font-size: 22px;
  font-weight: 1000;
  letter-spacing: .04em;
  line-height: 1;
  text-align: center;
}

.premium-variety-body h2 {
  margin: 0;
  color: var(--forest-dark);
  font-size: 22px;
  line-height: 1.12;
}

.premium-variety-body h2 span {
  color: var(--gold-dark);
}

.premium-variety-desc {
  flex: 1;
  min-height: 86px;
  color: var(--muted);
  font-weight: 760;
  line-height: 1.45;
}

.premium-read-more {
  display: inline;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--gold-dark);
  font: inherit;
  font-weight: 950;
  cursor: pointer;
}

.premium-read-more:hover,
.premium-read-more:focus-visible {
  color: var(--forest);
  text-decoration: underline;
}

.premium-description-full {
  margin: 12px 0 0;
  color: var(--forest-dark);
  font-size: 15px;
  font-weight: 720;
  line-height: 1.7;
}

.premium-variety-credit {
  min-height: 0;
  margin: 0 0 8px;
  border-radius: 12px;
  padding: 8px 10px;
  background: rgba(47,82,51,.08);
  color: var(--forest-dark);
  font-size: 12px;
  font-weight: 850;
}

.premium-variety-credit b {
  color: var(--forest);
}

.premium-variety-credit span {
  color: rgba(47,82,51,.38);
  margin: 0 4px;
}

.premium-update-history-link {
  display: inline;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--gold-dark);
  font: inherit;
  font-weight: 950;
  cursor: pointer;
}

.premium-update-history-link:hover,
.premium-update-history-link:focus-visible {
  color: var(--forest);
  text-decoration: underline;
}

.premium-update-history-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.premium-update-history-list article {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px;
  background: rgba(255,255,255,.64);
}

.premium-update-history-list article div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px;
  align-items: center;
}

.premium-update-history-list b {
  color: var(--forest-dark);
}

.premium-update-history-list time,
.premium-update-history-list small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 820;
}

.premium-update-history-list small {
  display: block;
  margin-top: 6px;
}

.premium-variety-body > small {
  display: block;
  margin: 8px 0;
  color: var(--muted);
  font-weight: 850;
}

.premium-rating-summary {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  gap: 8px;
  align-items: center;
  margin: 10px 0 12px;
  border: 1px solid rgba(166,118,16,.16);
  border-radius: 16px;
  padding: 10px 12px;
  background: rgba(255,247,226,.72);
}

.premium-rating-summary strong {
  color: var(--forest-dark);
  font-size: 16px;
}

.premium-rating-summary small {
  justify-self: end;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.premium-rating-trigger {
  min-height: 34px;
  padding: 7px 11px;
  white-space: nowrap;
}

.premium-rating-stars {
  display: inline-flex;
  gap: 1px;
  color: rgba(166,118,16,.24);
  font-size: 18px;
  line-height: 1;
}

.premium-rating-stars .is-filled {
  color: var(--gold);
}

.mini-stars {
  font-size: 13px;
}

.premium-review-list {
  display: grid;
  gap: 8px;
  max-height: 180px;
  margin-bottom: 12px;
  overflow: auto;
}

.premium-review-item {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  background: rgba(255,255,255,.62);
}

.premium-review-item div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 5px;
}

.premium-review-item b {
  color: var(--forest-dark);
  font-size: 13px;
}

.premium-review-item p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  font-weight: 760;
  line-height: 1.4;
}

.mini-empty {
  min-height: 0;
  margin: 0 0 8px;
  padding: 10px;
  font-size: 13px;
}

.premium-rating-form {
  display: grid;
  gap: 10px;
  margin: 14px 0 0;
  border: 1px solid rgba(47,82,51,.1);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.58);
}

.premium-rating-dialog {
  max-width: 620px;
}

.premium-rating-form .textarea-input {
  min-height: 76px;
}

.premium-rating-security {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px;
  gap: 10px;
  align-items: end;
}

.premium-rating-security label {
  margin: 0;
}

.hidden-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.premium-variety-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.premium-variety-body > .button {
  justify-content: center;
  margin-top: auto;
}

.premium-variety-gallery div {
  display: grid;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 0;
  background: rgba(255,255,255,.55);
  overflow: hidden;
}

.premium-variety-gallery span {
  position: relative;
  z-index: 2;
  margin: 8px 8px -30px;
  border-radius: 999px;
  padding: 4px 8px;
  background: rgba(255,255,255,.86);
  color: var(--forest-dark);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
  justify-self: start;
}

.admin-update-images div {
  display: grid;
  gap: 6px;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 8px;
  background: rgba(255,255,255,.55);
}

.admin-update-images span {
  color: var(--forest-dark);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}

.premium-gallery-item {
  position: relative;
  display: block;
  width: 100%;
  height: 138px;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  padding: 0;
  background: rgba(47,82,51,.06);
  cursor: pointer;
}

.premium-gallery-item::after {
  content: "Lihat besar";
  position: absolute;
  right: 8px;
  bottom: 8px;
  border-radius: 999px;
  padding: 4px 7px;
  background: rgba(27,65,32,.78);
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  opacity: 0;
  transition: opacity .18s ease;
}

.premium-gallery-item:hover::after,
.premium-gallery-item:focus-visible::after {
  opacity: 1;
}

.premium-gallery-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px dashed rgba(47,82,51,.22);
  color: var(--forest);
  background:
    radial-gradient(circle at 50% 28%, rgba(212,160,23,.18), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,.78), rgba(47,82,51,.08));
}

.premium-gallery-empty::before {
  content: "+";
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  padding: 0;
  border-radius: 999px;
  background: rgba(47,82,51,.88);
  color: #fff;
  font-size: 24px;
  font-weight: 950;
  line-height: 1;
}

.premium-gallery-empty::after {
  content: none;
  display: none;
  opacity: 0;
}

.premium-gallery-empty:hover::after,
.premium-gallery-empty:focus-visible::after {
  opacity: 1;
}

.premium-gallery-empty b {
  position: relative;
  z-index: 2;
  display: block;
  margin: 0;
  color: var(--forest-dark);
  font-size: 13px;
  font-weight: 950;
  line-height: 1.1;
  text-align: center;
}

.premium-gallery-empty small {
  display: none;
}

.premium-variety-gallery .premium-gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  padding: 0;
}

.admin-update-images img {
  width: 100%;
  height: 74px;
  object-fit: contain;
}

.premium-variety-gallery em {
  display: grid;
  place-items: center;
  min-height: 138px;
  border-radius: 0;
  background: rgba(47,82,51,.06);
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 850;
}

.admin-update-images em {
  display: grid;
  place-items: center;
  min-height: 74px;
  border-radius: 10px;
  background: rgba(47,82,51,.06);
  color: var(--muted);
  font-size: 12px;
  font-style: normal;
  font-weight: 850;
}

.premium-variety-form {
  margin-top: 14px;
}

.premium-image-dialog {
  max-width: min(980px, 94vw);
}

.premium-image-dialog > img {
  display: block;
  width: 100%;
  max-height: 72vh;
  object-fit: contain;
  margin-top: 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.72);
}

.premium-image-download {
  display: inline-flex;
  margin-top: 8px;
  color: var(--forest);
  font-weight: 900;
  text-decoration: none;
}

.premium-variety-form-section {
  margin: 14px 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.48);
}

.premium-variety-form-section > .eyebrow {
  display: block;
  margin-bottom: 8px;
}

.admin-filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-update-list {
  display: grid;
  gap: 12px;
}

.admin-variety-update-card {
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 16px;
  background: linear-gradient(145deg, rgba(255,255,255,.86), rgba(255,250,238,.64));
  box-shadow: 0 16px 44px rgba(28,56,31,.08);
}

.admin-variety-update-card.status-approved {
  border-color: rgba(35,118,61,.22);
}

.admin-variety-update-card.status-rejected {
  border-color: rgba(166,58,44,.24);
}

.new-variety-suggestion-card {
  border-color: rgba(212,160,23,.32);
  background: linear-gradient(145deg, rgba(255,255,255,.9), rgba(255,247,226,.74));
}

.new-variety-suggestion-card .admin-variety-update-head h3::after {
  content: "Baharu";
  display: inline-flex;
  margin-left: 8px;
  border-radius: 999px;
  padding: 3px 8px;
  background: rgba(212,160,23,.16);
  color: var(--gold-dark);
  font-size: 11px;
  vertical-align: middle;
}

.admin-rating-filter {
  min-width: min(100%, 620px);
}

.admin-rating-filter select.input {
  max-width: 150px;
}

.admin-rating-list {
  display: grid;
  gap: 12px;
}

.admin-rating-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.62);
}

.admin-rating-head {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.admin-rating-head > img {
  width: 58px;
  height: 58px;
  object-fit: contain;
  border-radius: 14px;
  background: rgba(255,255,255,.76);
  padding: 7px;
}

.admin-rating-head h3 {
  margin: 0 0 4px;
  color: var(--forest-dark);
  font-size: 17px;
}

.admin-rating-head small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 840;
}

.admin-rating-card p {
  margin: 12px 0 0;
  color: var(--muted);
  font-weight: 760;
  line-height: 1.45;
}

.admin-variety-update-head {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.admin-variety-update-head img {
  width: 78px;
  height: 78px;
  object-fit: contain;
  border: 1px solid rgba(166,118,16,.14);
  border-radius: 18px;
  background: rgba(255,255,255,.7);
  padding: 8px;
}

.admin-variety-update-head h3,
.admin-variety-update-head small,
.admin-variety-update-head em {
  display: block;
  margin: 0;
}

.admin-variety-update-head h3 {
  color: var(--forest-dark);
  font-size: 18px;
  line-height: 1.2;
}

.admin-variety-update-head small,
.admin-variety-update-head em,
.admin-update-notes p {
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
  font-weight: 820;
}

.admin-update-status-pill {
  justify-self: end;
  border-radius: 999px;
  padding: 7px 12px;
  background: rgba(166,118,16,.12);
  color: #8a5f05;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.status-approved .admin-update-status-pill {
  background: rgba(35,118,61,.13);
  color: var(--forest);
}

.status-rejected .admin-update-status-pill {
  background: rgba(166,58,44,.12);
  color: #9d372b;
}

.admin-contributor-panel {
  display: grid;
  grid-template-columns: 1fr 1fr minmax(150px, .8fr);
  gap: 10px;
  margin: 14px 0 12px;
}

.admin-contributor-panel div {
  border: 1px solid rgba(47,82,51,.1);
  border-radius: 16px;
  padding: 10px 12px;
  background: rgba(255,255,255,.64);
}

.admin-contributor-panel span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.admin-contributor-panel b {
  display: block;
  margin-top: 4px;
  color: var(--forest-dark);
  overflow-wrap: anywhere;
}

.admin-proposed-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.admin-proposed-fields div {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  background: rgba(255,255,255,.58);
}

.admin-proposed-fields span,
.admin-proposed-fields small {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}

.admin-proposed-fields b {
  display: block;
  margin: 3px 0;
  color: var(--forest-dark);
}

.admin-update-images {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.admin-update-images div {
  display: grid;
  min-height: 132px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 10px;
  background: rgba(255,255,255,.58);
}

.admin-update-images span {
  justify-self: start;
  align-self: start;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.admin-update-images img {
  width: 100%;
  max-width: 150px;
  height: 92px;
  object-fit: contain;
}

.admin-update-images em {
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
  font-weight: 850;
}

.season-board,
.ranking-board {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

.season-card {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) 72px;
  gap: 16px;
  align-items: center;
}

.season-card > img {
  width: 60px;
  height: 60px;
  object-fit: contain;
}

.season-card h2,
.season-card p {
  margin-bottom: 8px;
}

.season-card > strong {
  justify-self: end;
  color: var(--forest);
  font-size: 24px;
}

.progress {
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(47,82,51,.1);
}

.progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--forest), var(--gold));
}

.public-card img {
  height: 180px;
}

.badge-gallery .card {
  text-align: center;
}

.badge-gallery img {
  width: 84px;
  height: 84px;
  object-fit: contain;
  margin: 0 auto 12px;
}

.ranking-row {
  display: grid;
  grid-template-columns: 44px 104px minmax(0, 1fr) 90px;
  gap: 16px;
  align-items: center;
}

.ranking-row > b {
  display: inline-flex;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--forest);
  color: #fff;
}

.ranking-row > img {
  width: 104px;
  height: 82px;
  object-fit: contain;
  border-radius: 14px;
  background: rgba(255,255,255,.58);
  padding: 8px;
}

.ranking-row h3,
.ranking-row p {
  margin-bottom: 4px;
}

.ranking-row > strong {
  justify-self: end;
  color: var(--forest);
  font-size: 22px;
}

.public-page form .button {
  margin-top: 16px;
}

@media (max-width: 900px) {
  .bottom-nav {
    grid-template-columns: repeat(5, 1fr);
  }

  .public-hero,
  .public-hero.passport-hero,
  .orchard-detail-hero,
  .public-grid.two-col,
  .dmi-index-hero,
  .dmi-dashboard-grid,
  .map-layout,
  .passport-dashboard,
  .passport-main-grid,
  .orchard-stats,
  .orchard-owner-zone,
  .variety-metric-strip,
  .selected-orchard-grid,
  .premium-variety-toolbar,
  .premium-variety-stats,
  .metric-strip {
    grid-template-columns: 1fr;
  }

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

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

  .orchard-promo-grid,
  .orchard-check-group {
    grid-template-columns: 1fr;
  }

  .premium-variety-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

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

  .passport-badge-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .season-forecast-grid,
  .season-forecast-note {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .season-year-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .public-hero > img,
  .public-hero.passport-hero > img {
    justify-self: start;
    width: 100px;
    height: 100px;
  }

  .metric-strip div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .metric-strip div:last-child {
    border-bottom: 0;
  }

  .ranking-row {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .ranking-row > img,
  .ranking-row > strong {
    grid-column: 2;
    justify-self: start;
  }

  .season-card {
    grid-template-columns: 54px minmax(0, 1fr);
  }

  .season-card > strong {
    grid-column: 2;
    justify-self: start;
  }
}

@media (max-width: 760px) {
  .hot-variety-grid {
    grid-template-columns: 1fr;
  }

  .premium-variety-grid,
  .premium-variety-stats,
  .passport-checkin-form,
  .passport-badge-track,
  .orchard-grid,
  .orchard-owner-form,
  .orchard-promo-grid,
  .orchard-promo-grid article,
  .orchard-check-group,
  .premium-variety-toolbar form,
  .premium-rating-summary,
  .premium-rating-security,
  .admin-contributor-panel,
  .admin-proposed-fields,
  .admin-update-images {
    grid-template-columns: 1fr;
  }

  .premium-rating-summary small {
    justify-self: start;
  }

  .premium-rating-trigger {
    justify-self: start;
  }

  .admin-variety-update-head {
    grid-template-columns: 62px minmax(0, 1fr);
  }

  .admin-rating-filter {
    min-width: 100%;
  }

  .admin-rating-filter select.input {
    max-width: none;
  }

  .admin-rating-head {
    grid-template-columns: 52px minmax(0, 1fr);
  }

  .admin-rating-head form {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .admin-variety-update-head img {
    width: 62px;
    height: 62px;
  }

  .admin-update-status-pill {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .dmi-kpi-grid {
    grid-template-columns: 1fr;
  }

  .season-forecast-grid,
  .season-forecast-note,
  .season-report-form {
    grid-template-columns: 1fr;
  }

  .variety-metric-head {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .stock-price-row {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .stock-trend-pill,
  .stock-price-row p {
    grid-column: 1 / -1;
    justify-self: start;
    text-align: left;
  }

  .variety-report-summary,
  .variety-report-list > div {
    grid-template-columns: 1fr;
  }

  .variety-report-list > div > strong {
    justify-self: start;
  }

  .season-month-list > div {
    grid-template-columns: 46px minmax(0, 1fr);
  }

  .season-month-list em {
    grid-column: 2;
  }
}

@media (max-width: 620px) {
  .season-volume-card .section-title {
    align-items: stretch;
    flex-direction: column;
  }

  .season-volume-summary {
    text-align: left;
  }

  .public-list > div {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .public-list strong {
    grid-column: 2;
  }
}

/* Admin forms and login */
.auth-card {
  width: min(460px, 100%);
  margin: 16px auto 0;
}

.auth-card .button {
  width: 100%;
  margin-top: 16px;
}

.login-help {
  margin: 14px 0 0;
  font-size: 13px;
}

.reset-card {
  margin-top: 14px;
}

.reset-card summary {
  cursor: pointer;
  color: var(--forest);
  font-weight: 900;
}

.reset-card form {
  margin-top: 12px;
}

.table-input {
  min-width: 96px;
  min-height: 36px;
  margin-top: 0;
  padding: 7px 9px;
  border-radius: 10px;
}

.table-input.wide {
  min-width: 180px;
}

.table-actions {
  display: flex;
  gap: 6px;
  align-items: center;
}

.table-actions form {
  margin: 0;
}

.approve-button {
  background: linear-gradient(135deg, #2f7d32, #6fbf73);
}

.mini-button {
  min-height: 34px;
  padding: 0 12px;
  font-size: 12px;
}

.inline-check {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  margin: 0;
  font-size: 13px;
}

.settings-check {
  margin-top: 16px;
}

.admin-settings-grid {
  grid-template-columns: 1.1fr .9fr;
}

.admin-settings-grid .button {
  margin-top: 16px;
}

.textarea-input {
  min-height: 90px;
  resize: vertical;
  font-family: inherit;
}

.file-input {
  padding: 9px;
  background: rgba(255,255,255,.7);
}

.asset-preview {
  display: inline-grid;
  place-items: center;
  width: 78px;
  height: 78px;
  margin-top: 10px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(255,255,255,.62);
}

.asset-preview img {
  max-width: 64px;
  max-height: 64px;
  object-fit: contain;
}

.asset-preview-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 2px 0 16px;
}

.compact-title {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.compact-title h3 {
  margin: 4px 0 0;
  font-size: 1.05rem;
}

.wide-preview {
  width: 100%;
  height: 118px;
}

.wide-preview img {
  width: 100%;
  max-width: none;
  max-height: none;
  height: 100%;
  object-fit: cover;
}

.asset-upload-row {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  border-top: 1px solid var(--line);
  padding-top: 14px;
  margin-top: 14px;
}

.asset-upload-row label {
  margin-top: 0;
}

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

.reset-variety-form {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.admin-search {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: min(100%, 380px);
}

.admin-search .input {
  margin-top: 0;
}

.variety-thumb {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: rgba(255,255,255,.76);
}

.variety-thumb img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}

.searchable-select-box {
  display: grid;
  gap: 8px;
  position: relative;
}

.searchable-select-box small {
  color: var(--muted);
  font-weight: 800;
}

.admin-sidebar nav a.active {
  box-shadow: 0 10px 22px rgba(47,82,51,.16);
}

.admin-menu-badge {
  display: inline-grid;
  place-items: center;
  min-width: 24px;
  height: 24px;
  margin-left: auto;
  border-radius: 50%;
  padding: 0 6px;
  background: #e11d48;
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  line-height: 1.2;
  text-align: center;
  box-shadow: 0 8px 18px rgba(225,29,72,.34);
}

@media (max-width: 900px) {
  .admin-settings-grid {
    grid-template-columns: 1fr;
  }
}

/* Draft-matched header and hero */
.site-header {
  width: min(1200px, calc(100% - 32px));
  padding-top: 14px;
  display: grid;
  grid-template-columns: 230px minmax(260px, 1fr) auto;
  grid-template-areas:
    "brand search utilities"
    "brand menu menu";
  column-gap: 26px;
  row-gap: 12px;
  align-items: center;
}

.nav-top {
  display: contents;
}

.site-header .brand {
  grid-area: brand;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 174px;
  text-transform: none;
}

.site-header .brand img {
  width: 178px;
  height: 178px;
  object-fit: contain;
}

.site-header .brand span {
  display: grid;
  gap: 1px;
  padding-top: 0;
  text-align: center;
}

.site-header .brand b {
  color: var(--forest-dark);
  font-size: 22px;
  font-family: Georgia, "Times New Roman", serif;
  line-height: .9;
  text-transform: uppercase;
}

.site-header .brand small {
  color: var(--muted);
  font-size: 11px;
  font-weight: 650;
  text-transform: none;
}

.site-search {
  grid-area: search;
  align-self: end;
  justify-self: stretch;
  position: relative;
}

.site-search input {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(184,134,11,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7);
  padding: 0 48px 0 22px;
  color: var(--forest-dark);
}

.site-search button {
  position: absolute;
  top: 50%;
  right: 13px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.site-search img {
  width: 21px;
  height: 21px;
}

.nav-utilities {
  grid-area: utilities;
  align-self: end;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  color: #111;
  font-size: 13px;
  font-weight: 800;
}

.nav-utilities span,
.utility-menu summary {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.utility-menu {
  position: relative;
}

.utility-menu summary {
  position: relative;
  min-height: 42px;
  border-radius: 999px;
  padding: 0 10px;
  cursor: pointer;
  list-style: none;
  background: rgba(255,255,255,.58);
}

.utility-menu summary::-webkit-details-marker {
  display: none;
}

.utility-menu summary b {
  position: absolute;
  top: 0;
  right: 0;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  border-radius: 999px;
  padding: 0 5px;
  background: #e11d48;
  color: #fff;
  font-size: 10px;
  font-weight: 950;
}

.utility-dropdown {
  position: absolute;
  z-index: 1200;
  top: calc(100% + 10px);
  right: 0;
  display: grid;
  gap: 8px;
  width: min(320px, 84vw);
  border: 1px solid rgba(47,82,51,.12);
  border-radius: 18px;
  padding: 12px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 18px 45px rgba(47,82,51,.18);
}

.utility-dropdown.compact {
  width: 190px;
}

.utility-dropdown a {
  display: grid;
  gap: 3px;
  border-radius: 13px;
  padding: 10px 11px;
  color: var(--forest-dark);
  text-decoration: none;
  background: rgba(47,82,51,.05);
}

.utility-dropdown a.active,
.utility-dropdown a:hover {
  background: rgba(212,160,23,.16);
}

.utility-dropdown strong {
  color: var(--forest-dark);
}

.utility-dropdown span {
  color: var(--gold-dark);
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.utility-dropdown em {
  color: var(--muted);
  font-style: normal;
}

.nav-utilities img {
  width: 26px;
  height: 26px;
  object-fit: contain;
}

.nav-user {
  display: grid !important;
  grid-template-columns: 42px auto;
  gap: 0 8px !important;
  align-items: center;
  color: inherit;
  text-decoration: none;
}

.nav-user img {
  grid-row: span 2;
  width: 42px;
  height: 42px;
}

.nav-user b {
  color: #111;
  font-size: 13px;
  line-height: 1.1;
}

.nav-user small {
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.site-header .navlinks {
  grid-area: menu;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0;
  margin-top: 0;
  border-top: 1px solid rgba(64,81,59,.08);
  border-bottom: 1px solid rgba(64,81,59,.12);
}

.site-header .navlinks a {
  position: relative;
  justify-content: center;
  min-height: 58px;
  border: 0;
  border-radius: 0;
  padding: 0 10px;
  color: #111;
  font-size: 13px;
  font-weight: 850;
}

.site-header .navlinks a.active,
.site-header .navlinks a:hover {
  background: rgba(248,245,239,.56);
  color: var(--forest);
}

.site-header .navlinks a.active::after {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 0;
  height: 4px;
  border-radius: 999px 999px 0 0;
  background: var(--forest);
}

.site-header .navlinks img {
  width: 23px;
  height: 23px;
  filter: none !important;
}

.prototype-home {
  width: min(1200px, calc(100% - 32px));
}

.draft-hero {
  grid-template-columns: minmax(390px, .95fr) minmax(300px, .74fr) minmax(280px, .5fr);
  min-height: 365px;
  gap: 10px;
  border: 0;
  border-radius: 0;
  margin: 0 calc((100% - 100vw) / 2);
  padding: 34px max(28px, calc((100vw - 1200px) / 2 + 18px)) 16px;
  box-shadow: none;
  background:
    linear-gradient(90deg, rgba(250,248,242,.98) 0%, rgba(250,248,242,.80) 33%, rgba(250,248,242,.18) 63%, rgba(250,248,242,.78) 100%),
    var(--hero-bg) center / cover;
}

.draft-hero .proto-hero-copy {
  align-self: center;
  max-width: 520px;
}

.draft-hero .script-note {
  color: var(--forest);
  font-family: "Segoe Script", "Brush Script MT", cursive;
  font-size: 24px;
  font-weight: 500;
  text-transform: none;
}

.draft-hero h1 {
  color: #172017;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(36px, 4.6vw, 52px);
  line-height: 1.06;
}

.draft-hero h1 span {
  color: #9B6A08;
}

.draft-hero p {
  color: #1d261e;
  font-size: 15px;
  line-height: 1.55;
}

.draft-hero .hero-actions {
  gap: 18px;
}

.draft-hero .button {
  min-height: 48px;
  padding: 0 23px;
  box-shadow: 0 13px 26px rgba(47,82,51,.22);
}

.draft-hero .button.secondary {
  background: rgba(255,255,255,.78);
  color: #9B6A08;
  box-shadow: none;
}

.draft-hero .button img {
  width: 24px;
  height: 24px;
}

.draft-hero .proto-hero-visual {
  align-self: end;
  justify-self: center;
  margin-bottom: -10px;
}

.draft-hero .proto-hero-visual img {
  width: min(100%, 470px);
  height: 330px;
  object-fit: contain;
  filter: drop-shadow(0 22px 18px rgba(61,42,9,.25));
}

.draft-hero .proto-price {
  align-self: center;
  width: min(100%, 320px);
  min-height: 270px;
  border-radius: 14px;
  padding: 22px;
  background: rgba(255,255,255,.84);
}

.draft-hero .proto-price .eyebrow {
  color: #111;
  font-size: 12px;
}

.draft-hero .proto-price-variety {
  width: 82px;
  height: 82px;
}

.draft-hero .proto-price h3 {
  color: #9B6A08;
  font-size: 17px;
  line-height: 1.18;
}

.draft-hero .proto-price strong {
  margin: 12px 0 2px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 45px;
  font-weight: 950;
}

.draft-hero .proto-price .price-value {
  min-width: 2.2ch;
  font-size: 1em;
  font-weight: 950;
}

.draft-hero .proto-price .price-currency,
.draft-hero .proto-price .price-unit {
  font-size: 18px;
  font-weight: 950;
}

.draft-hero .price-trend {
  color: #176B2C;
  font-size: 16px;
  font-weight: 900;
}

.draft-hero .price-update {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 11px 0;
}

.proto-stats,
.proto-feature-strip a {
  border-radius: 12px;
  background: rgba(255,255,255,.84);
}

.proto-stats {
  min-height: 84px;
  margin-top: -2px;
}

.proto-stats img {
  width: 38px;
  height: 38px;
}

.proto-feature-strip {
  gap: 0;
  overflow: hidden;
  border-radius: 12px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 14px 35px rgba(48,61,45,.12);
}

.proto-feature-strip a {
  border: 0;
  border-right: 1px solid var(--line);
  box-shadow: none;
}

.proto-feature-strip a:last-child {
  border-right: 0;
}

.proto-feature-strip img {
  width: 48px;
  height: 48px;
}

@media (max-width: 1040px) {
  .site-header {
    display: block;
  }

  .nav-top {
    display: grid;
    gap: 14px;
  }

  .nav-top,
  .draft-hero {
    grid-template-columns: 1fr;
  }

  .site-header .brand img {
    width: 150px;
    height: 150px;
  }

  .site-header .brand {
    min-height: auto;
  }

  .nav-utilities {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .utility-dropdown {
    right: auto;
    left: 0;
  }

  .site-header .navlinks {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .draft-hero .proto-price {
    display: block;
    width: min(100%, 420px);
  }
}

@media (max-width: 720px) {
  .site-header .brand img {
    width: 130px;
    height: 130px;
  }

  .site-header .brand b {
    font-size: 20px;
  }

  .site-header .navlinks {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .draft-hero {
    margin: 0;
    padding: 24px 18px;
    border-radius: 18px;
  }

  .draft-hero .proto-hero-visual {
    display: block;
  }

  .draft-hero .proto-hero-visual img {
    height: 220px;
  }
}
