:root {
  --green-950:#063d16;
  --green-900:#075b21;
  --green-800:#0b7029;
  --green-700:#168739;
  --green-100:#eaf5e8;
  --green-050:#f5faf4;
  --ink:#18211a;
  --muted:#677268;
  --line:#dfe8df;
  --bg:#f3f6f2;
  --white:#fff;
  --danger:#b42318;
  --shadow:0 10px 25px rgba(18,55,25,.10);
  --radius:22px;
}

* { box-sizing:border-box; }
html { background:#dde8dd; }
body {
  margin:0;
  font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 15% 0%, rgba(83,150,80,.18), transparent 32%),
    var(--bg);
}

button, input, select { font:inherit; }
button { cursor:pointer; }

.app-shell {
  max-width:620px;
  min-height:100vh;
  margin:0 auto;
  background:var(--bg);
  box-shadow:0 0 45px rgba(0,0,0,.12);
  padding-bottom:90px;
}

.topbar {
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px 16px 16px;
  color:#fff;
  background:linear-gradient(145deg,var(--green-900),var(--green-950));
  border-radius:0 0 28px 28px;
  box-shadow:0 8px 20px rgba(0,72,29,.22);
}

.brand { display:flex; align-items:center; gap:11px; min-width:0; }
.brand-mark {
  width:52px; height:52px; display:grid; place-items:center;
  border:2px solid #d8ef42; border-radius:50%;
  background:rgba(255,255,255,.06); font-size:29px;
}
.brand h1 { margin:0; font-size:1.18rem; line-height:1.1; }
.brand p { margin:4px 0 0; font-size:.77rem; opacity:.8; }

.icon-btn,.back-btn {
  border:0; color:inherit; background:rgba(255,255,255,.1);
  width:42px; height:42px; border-radius:14px; font-size:1.25rem;
}

main { padding:16px; }
.view { display:none; animation:fade .18s ease; }
.view.active { display:block; }
@keyframes fade { from{opacity:.45;transform:translateY(4px)} to{opacity:1;transform:none} }

.hero-card {
  position:relative;
  min-height:210px;
  overflow:hidden;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  background:#dbeed2;
}
.hero-copy {
  position:absolute; z-index:2; left:20px; top:18px; width:56%;
}
.hero-copy .eyebrow { font-size:.78rem; font-weight:800; color:var(--green-800); }
.hero-copy h2 { margin:5px 0 6px; font-size:1.7rem; line-height:1; color:var(--green-950); }
.hero-copy p { margin:0; font-size:.86rem; color:#2c4a30; }
.hero-art { display:none; }
.hero-photo { position:absolute; inset:0; width:100%; height:100%; min-height:210px; display:block; object-fit:cover; }
.hero-card::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(245,250,244,.98) 0%, rgba(245,250,244,.88) 33%, rgba(245,250,244,.28) 58%, rgba(8,72,30,.08) 100%); z-index:1; }
.hero-copy { z-index:2; }

.dashboard-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:14px 0;
}
.dashboard-card,.wide-card {
  border:1px solid var(--line);
  background:var(--white);
  border-radius:19px;
  box-shadow:0 7px 17px rgba(25,65,30,.07);
  text-align:left;
}
.dashboard-card {
  min-height:145px;
  padding:16px 14px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:10px;
  align-items:start;
}
.card-icon,.wide-icon {
  width:38px; height:38px; display:grid; place-items:center;
  background:var(--green-100); border-radius:12px; font-size:1.15rem;
}
.card-label { display:block; font-weight:800; font-size:.86rem; color:var(--green-900); }
.dashboard-card strong { display:block; margin-top:8px; font-size:1.5rem; }
.dashboard-card .small-strong { font-size:.95rem; line-height:1.25; }
.dashboard-card small { display:block; margin-top:5px; line-height:1.25; color:var(--muted); font-size:.72rem; }
.chevron { align-self:center; color:var(--green-800); font-size:1.5rem; }

.calculator-cta {
  width:100%;
  border:0;
  border-radius:22px;
  padding:18px;
  display:grid;
  grid-template-columns:76px 1fr 44px;
  gap:14px;
  align-items:center;
  text-align:left;
  color:#fff;
  background:
    radial-gradient(circle at 86% 15%, rgba(255,255,255,.15), transparent 24%),
    linear-gradient(135deg,var(--green-800),var(--green-950));
  box-shadow:0 12px 28px rgba(0,80,30,.25);
}
.fert-bag {
  width:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:rotate(-3deg);
}
.fert-bag img { width:100%; height:auto; display:block; filter:drop-shadow(0 7px 10px rgba(0,0,0,.18)); }
.cta-copy span { font-size:.72rem; opacity:.75; }
.cta-copy h3 { margin:4px 0; font-size:1.28rem; line-height:1.08; }
.cta-copy p { margin:0; font-size:.78rem; opacity:.83; }
.cta-arrow {
  width:44px; height:44px; display:grid; place-items:center;
  border-radius:50%; background:rgba(255,255,255,.17); font-size:1.3rem;
}

.wide-card {
  width:100%; margin-top:14px; padding:16px;
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:13px;
}
.wide-card strong { display:block; color:var(--green-900); }
.wide-card span:not(.chevron) { display:block; color:var(--muted); font-size:.78rem; margin-top:3px; }

.section-heading {
  display:flex; gap:12px; align-items:center;
  margin:2px 0 16px;
}
.section-heading .back-btn { color:var(--green-900); background:var(--green-100); }
.section-heading h2 { margin:0; font-size:1.35rem; }
.section-heading p { margin:3px 0 0; color:var(--muted); font-size:.8rem; }

.step-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:20px;
  padding:16px;
  margin-bottom:13px;
  box-shadow:0 7px 17px rgba(25,65,30,.06);
}
.step-title {
  display:flex; align-items:center; gap:9px;
  margin-bottom:14px; color:var(--green-950);
}
.step-title > span {
  width:28px; height:28px; display:grid; place-items:center;
  border-radius:50%; color:#fff; background:var(--green-800); font-weight:900;
}
.step-title em {
  margin-left:auto; font-style:normal; font-size:.7rem;
  color:var(--green-900); background:var(--green-100);
  padding:7px 9px; border-radius:999px;
}

.form-row { display:grid; gap:11px; }
.form-row.two { grid-template-columns:1fr 1fr; }
label { display:block; font-size:.75rem; color:var(--muted); font-weight:700; }
input,select {
  width:100%; margin-top:6px; padding:12px;
  border:1px solid #cfd8cf; border-radius:12px;
  background:#fff; color:var(--ink); outline:none;
}
input:focus,select:focus { border-color:var(--green-700); box-shadow:0 0 0 3px rgba(22,135,57,.12); }

.fert-head,.fert-row {
  display:grid;
  grid-template-columns:minmax(0,1.7fr) .68fr .85fr 38px;
  gap:8px;
  align-items:end;
}
.fert-head {
  padding:0 2px 7px;
  color:var(--muted); font-size:.66rem; font-weight:800;
}
.fert-row { margin-bottom:9px; }
.fert-row input,.fert-row select { margin:0; padding:10px 8px; font-size:.76rem; }
.delete-btn {
  width:38px; height:42px; border:1px solid #efc8c4;
  border-radius:11px; background:#fff7f6; color:var(--danger);
}
.add-btn,.primary-btn {
  width:100%; border:0; border-radius:13px; padding:12px 14px;
  font-weight:900;
}
.add-btn { margin-top:4px; color:var(--green-900); background:var(--green-100); }
.primary-btn { margin-top:12px; color:#fff; background:var(--green-800); }

.nutrient-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:9px;
}
.nutrient-grid article {
  text-align:center; padding:12px 6px;
  border-radius:15px; background:var(--green-050); border:1px solid var(--green-100);
}
.nutrient-grid span { display:block; font-size:.78rem; font-weight:900; color:var(--green-900); }
.nutrient-grid strong { display:block; margin:5px 0 1px; font-size:1.05rem; }
.nutrient-grid small { color:var(--muted); font-size:.63rem; }

.physical-total {
  display:grid;
  grid-template-columns:1fr 1px 1fr;
  gap:16px; align-items:center;
  margin:14px 0; padding:20px 16px;
  border-radius:22px; color:#fff;
  background:linear-gradient(135deg,var(--green-900),var(--green-950));
  box-shadow:0 12px 24px rgba(0,76,28,.23);
}
.physical-total > div:not(.divider) { text-align:center; }
.physical-total span { display:block; font-size:.72rem; opacity:.78; }
.physical-total strong { display:block; margin-top:5px; font-size:1.75rem; }
.physical-total small { font-size:.75rem; opacity:.85; }
.divider { height:58px; background:rgba(255,255,255,.35); }

.balance-table { display:grid; gap:7px; }
.balance-row {
  display:grid; grid-template-columns:1.2fr repeat(3,.8fr);
  align-items:center; gap:6px; padding:10px;
  border-radius:12px; background:#f8faf8; font-size:.72rem;
}
.balance-row.header { background:var(--green-100); font-weight:900; color:var(--green-950); }
.balance-row span:not(:first-child) { text-align:right; }
.balance-row .lack { color:var(--danger); font-weight:900; }
.balance-row .ok { color:var(--green-800); font-weight:900; }

.notice {
  margin:15px 4px 3px; color:var(--muted); font-size:.72rem; line-height:1.4;
}

.saved-list { display:grid; gap:10px; }
.saved-item {
  padding:14px; background:#fff; border:1px solid var(--line);
  border-radius:16px; box-shadow:0 6px 15px rgba(25,65,30,.06);
}
.saved-item strong { display:block; color:var(--green-900); }
.saved-item small { color:var(--muted); }

.bottom-nav {
  position:fixed;
  left:50%; bottom:0; z-index:30;
  transform:translateX(-50%);
  width:min(620px,100%);
  display:grid; grid-template-columns:repeat(5,1fr);
  gap:0; padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));
  background:linear-gradient(180deg,var(--green-900),var(--green-950));
  box-shadow:0 -7px 20px rgba(0,0,0,.16);
}
.bottom-nav button {
  border:0; color:rgba(255,255,255,.74); background:transparent;
  padding:6px 2px; border-radius:12px; font-size:.64rem;
}
.bottom-nav button span { display:block; margin-bottom:3px; font-size:1.15rem; }
.bottom-nav button.active { color:#fff; background:rgba(255,255,255,.13); }

dialog { border:0; border-radius:20px; padding:0; width:min(420px,90vw); }
dialog::backdrop { background:rgba(3,25,10,.55); backdrop-filter:blur(3px); }
.dialog-card { padding:22px; }
.dialog-card h3 { margin:0 0 10px; color:var(--green-900); }
.dialog-card p { color:var(--muted); line-height:1.45; white-space:pre-line; }
.dialog-body { color:var(--muted); line-height:1.5; }
.dialog-body p { margin:0 0 12px; }
.dialog-stack { display:grid; gap:12px; margin-top:10px; }
.dialog-panel { padding:12px 13px; border:1px solid var(--line); border-radius:14px; background:var(--green-050); }
.dialog-panel strong { display:block; color:var(--green-900); margin-bottom:4px; }
.dialog-panel small { display:block; color:var(--muted); font-size:.82rem; line-height:1.45; }
.dialog-links { display:flex; flex-wrap:wrap; gap:10px; margin-top:14px; }
.dialog-link, .dialog-inline-btn { display:inline-flex; align-items:center; justify-content:center; padding:11px 14px; border-radius:12px; font-weight:800; text-decoration:none; border:1px solid transparent; }
.dialog-link.primary, .dialog-inline-btn.primary { background:var(--green-800); color:#fff; }
.dialog-link.secondary, .dialog-inline-btn.secondary { background:#fff; color:var(--green-900); border-color:var(--line); }
.dialog-inline-btn { font:inherit; cursor:pointer; }

@media (max-width:430px) {
  main { padding:13px; }
  .dashboard-grid { gap:9px; }
  .dashboard-card { min-height:137px; padding:13px 11px; grid-template-columns:auto 1fr; }
  .dashboard-card .chevron { display:none; }
  .card-icon { width:34px; height:34px; }
  .fert-head,.fert-row { grid-template-columns:minmax(0,1.35fr) .62fr .78fr 34px; gap:6px; }
  .delete-btn { width:34px; }
}

@media (display-mode:standalone) {
  .topbar { padding-top:calc(18px + env(safe-area-inset-top)); }
}


.price-total-card {
  position:relative;
  overflow:hidden;
  margin-bottom:14px;
  padding:24px 18px;
  text-align:center;
  color:#fff;
  border-radius:24px;
  background:
    radial-gradient(circle at 88% 10%, rgba(255,255,255,.17), transparent 23%),
    linear-gradient(135deg,var(--green-800),var(--green-950));
  box-shadow:0 12px 27px rgba(0,75,28,.24);
}
.price-total-card > span { display:block; font-size:.82rem; opacity:.82; }
.price-total-card > strong { display:block; margin:5px 0 0; font-size:2.35rem; line-height:1; }
.price-total-card > small { display:block; margin-top:5px; opacity:.82; }
.price-total-card > em {
  display:inline-block;
  margin-top:13px;
  padding:7px 10px;
  border-radius:999px;
  font-style:normal;
  font-size:.68rem;
  background:rgba(255,255,255,.14);
}
.market-breakdown {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.market-breakdown > div {
  padding:12px;
  border:1px solid var(--green-100);
  border-radius:14px;
  background:var(--green-050);
}
.market-breakdown > div.wide { grid-column:1 / -1; }
.market-breakdown span {
  display:block;
  font-size:.67rem;
  color:var(--muted);
}
.market-breakdown strong {
  display:block;
  margin-top:4px;
  color:var(--green-950);
  font-size:.88rem;
}
.formula-box {
  margin-top:12px;
  padding:12px;
  border-radius:13px;
  background:#f7faf7;
  border:1px dashed #b8cab9;
}
.formula-box span { display:block; color:var(--muted); font-size:.68rem; }
.formula-box strong { display:block; margin-top:3px; color:var(--green-900); font-size:.84rem; }
.price-lines { display:grid; gap:8px; }
.price-lines > div {
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  padding:11px 12px;
  border-radius:12px;
  background:#f7faf7;
}
.price-lines span { color:var(--muted); font-size:.78rem; }
.price-lines strong { color:var(--green-950); font-size:.86rem; }
.price-lines .total {
  color:#fff;
  background:linear-gradient(135deg,var(--green-800),var(--green-950));
}
.price-lines .total span,
.price-lines .total strong { color:#fff; }

.fixed-basis-card {
  padding:16px;
  border-radius:15px;
  text-align:center;
  background:linear-gradient(145deg,#eef8eb,#e1f0de);
  border:1px solid #cde2ca;
}
.fixed-basis-card span {
  display:block;
  color:var(--muted);
  font-size:.72rem;
}
.fixed-basis-card strong {
  display:block;
  margin:6px 0 3px;
  color:var(--green-950);
  font-size:1.18rem;
}
.fixed-basis-card small {
  color:var(--muted);
  font-size:.68rem;
}


.weather-refresh {
  margin-left:auto;
  width:42px;
  height:42px;
  border:0;
  border-radius:14px;
  color:var(--green-900);
  background:var(--green-100);
  font-size:1.35rem;
  font-weight:900;
}
.weather-current-card {
  position:relative;
  overflow:hidden;
  margin-bottom:14px;
  padding:21px 18px 16px;
  color:#fff;
  border-radius:24px;
  background:
    radial-gradient(circle at 86% 10%, rgba(255,255,255,.20), transparent 25%),
    linear-gradient(145deg,#167aa0,#0b6487 55%,#07526f);
  box-shadow:0 13px 28px rgba(8,91,124,.25);
}
.weather-current-main {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.weather-current-main span {
  display:block;
  font-size:.77rem;
  opacity:.82;
}
.weather-current-main strong {
  display:block;
  margin:2px 0;
  font-size:3.35rem;
  line-height:1;
}
.weather-current-main small {
  font-size:.82rem;
  opacity:.88;
}
.weather-big-icon {
  width:92px;
  height:92px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.13);
  font-size:3.6rem;
}
.weather-current-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:7px;
  margin-top:18px;
}
.weather-current-grid > div {
  padding:10px 5px;
  text-align:center;
  border-radius:13px;
  background:rgba(255,255,255,.11);
}
.weather-current-grid span {
  display:block;
  font-size:.58rem;
  opacity:.74;
}
.weather-current-grid strong {
  display:block;
  margin-top:4px;
  font-size:.73rem;
}
.weather-current-card > em {
  display:block;
  margin-top:12px;
  font-style:normal;
  font-size:.62rem;
  text-align:center;
  opacity:.72;
}
.weather-section-card { padding:14px 12px 15px; }
.weather-section-title {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin:0 4px 12px;
}
.weather-section-title > div {
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--green-950);
}
.weather-section-title > div > span { font-size:1.15rem; }
.weather-section-title small {
  color:var(--muted);
  font-size:.62rem;
}
.hourly-strip,
.daily-strip {
  display:flex;
  gap:9px;
  overflow-x:auto;
  padding:2px 2px 8px;
  scroll-snap-type:x proximity;
  scrollbar-width:thin;
}
.hourly-card {
  flex:0 0 88px;
  scroll-snap-align:start;
  padding:11px 7px;
  text-align:center;
  border:1px solid #d8e6e8;
  border-radius:15px;
  background:linear-gradient(#f9fcfd,#eef7f9);
}
.hourly-card.now {
  border-color:#68a8bd;
  background:linear-gradient(#e7f5f8,#d9eef4);
}
.hourly-card time {
  display:block;
  font-size:.66rem;
  color:var(--muted);
  font-weight:800;
}
.hourly-card .weather-mini-icon {
  display:block;
  margin:6px 0 3px;
  font-size:1.7rem;
}
.hourly-card strong {
  display:block;
  font-size:1.1rem;
}
.hourly-card .rain {
  display:block;
  margin-top:5px;
  color:#14769a;
  font-size:.66rem;
  font-weight:800;
}
.hourly-card .wind {
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.58rem;
}
.daily-card {
  flex:0 0 132px;
  scroll-snap-align:start;
  padding:12px 10px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
}
.daily-card.today {
  border-color:#72a974;
  background:var(--green-050);
}
.daily-card .day-name {
  display:block;
  color:var(--green-950);
  font-size:.72rem;
  font-weight:900;
  text-transform:capitalize;
}
.daily-card .day-date {
  display:block;
  margin-top:1px;
  color:var(--muted);
  font-size:.6rem;
}
.daily-card .daily-icon {
  display:block;
  margin:8px 0 5px;
  text-align:center;
  font-size:2rem;
}
.daily-card .temps {
  display:flex;
  justify-content:center;
  gap:7px;
  font-weight:900;
}
.daily-card .temps .min { color:#176d91; }
.daily-card .temps .max { color:#d44b20; }
.daily-card .daily-rain,
.daily-card .daily-mm,
.daily-card .daily-wind {
  display:block;
  margin-top:5px;
  text-align:center;
  font-size:.61rem;
  color:var(--muted);
}
.daily-card .daily-rain { color:#14769a; font-weight:800; }
.field-weather-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.field-weather-grid article {
  padding:13px 9px;
  text-align:center;
  border-radius:15px;
  border:1px solid var(--green-100);
  background:var(--green-050);
}
.field-weather-grid span {
  display:block;
  color:var(--muted);
  font-size:.64rem;
}
.field-weather-grid strong {
  display:block;
  margin:5px 0 2px;
  color:var(--green-950);
  font-size:1.2rem;
}
.field-weather-grid small {
  color:var(--muted);
  font-size:.57rem;
}
.field-weather-summary {
  margin-top:11px;
  padding:12px 13px;
  color:#234429;
  background:#eef7e9;
  border-left:4px solid var(--green-700);
  border-radius:5px 13px 13px 5px;
  font-size:.76rem;
  line-height:1.4;
}
.weather-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.weather-facts > div {
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:11px;
  border-radius:12px;
  background:#f7faf7;
}
.weather-facts span {
  color:var(--muted);
  font-size:.69rem;
}
.weather-facts strong {
  color:var(--green-950);
  font-size:.72rem;
}
.weather-loading {
  width:100%;
  padding:20px;
  text-align:center;
  color:var(--muted);
  font-size:.75rem;
}
@media (max-width:430px) {
  .weather-current-grid { grid-template-columns:1fr 1fr; }
  .weather-current-main strong { font-size:3rem; }
  .weather-big-icon { width:78px; height:78px; font-size:3rem; }
}


.location-controls {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:9px;
  margin-bottom:8px;
}
.location-primary,
.location-secondary {
  border:0;
  border-radius:16px;
}
.location-primary {
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  text-align:left;
  color:#fff;
  background:linear-gradient(135deg,var(--green-800),var(--green-950));
  box-shadow:0 8px 18px rgba(0,79,31,.18);
}
.location-primary > span {
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:rgba(255,255,255,.14);
  font-size:1.15rem;
}
.location-primary strong {
  display:block;
  font-size:.82rem;
}
.location-primary small {
  display:block;
  margin-top:2px;
  font-size:.62rem;
  opacity:.78;
}
.location-secondary {
  padding:0 13px;
  color:var(--green-900);
  background:var(--green-100);
  font-weight:800;
  font-size:.67rem;
}
.location-primary:disabled,
.location-secondary:disabled {
  opacity:.58;
  cursor:wait;
}
.location-privacy {
  margin:0 3px 13px;
  color:var(--muted);
  font-size:.62rem;
  line-height:1.35;
}
.gps-status {
  margin-top:10px;
  padding:8px 10px;
  text-align:center;
  border-radius:10px;
  background:rgba(255,255,255,.12);
  font-size:.64rem;
}
@media (max-width:430px) {
  .location-controls {
    grid-template-columns:1fr;
  }
  .location-secondary {
    padding:10px 12px;
  }
}


.news-refresh {
  margin-left:auto;
  width:42px;
  height:42px;
  border:0;
  border-radius:14px;
  color:var(--green-900);
  background:var(--green-100);
  font-size:1.35rem;
  font-weight:900;
}
.news-intro {
  position:relative;
  overflow:hidden;
  margin-bottom:13px;
  padding:18px;
  color:#fff;
  border-radius:22px;
  background:
    radial-gradient(circle at 90% 10%, rgba(255,255,255,.16), transparent 26%),
    linear-gradient(135deg,var(--green-800),var(--green-950));
  box-shadow:0 11px 24px rgba(0,79,31,.20);
}
.news-intro span {
  display:block;
  font-size:.69rem;
  opacity:.78;
}
.news-intro strong {
  display:block;
  margin-top:5px;
  font-size:1.18rem;
}
.news-intro p {
  margin:6px 0 0;
  max-width:92%;
  font-size:.75rem;
  line-height:1.4;
  opacity:.84;
}
.news-filters {
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding:2px 0 10px;
  scrollbar-width:thin;
}
.news-filters button {
  flex:0 0 auto;
  border:1px solid #cfe0cf;
  border-radius:999px;
  padding:8px 12px;
  color:var(--green-900);
  background:#fff;
  font-size:.68rem;
  font-weight:900;
}
.news-filters button.active {
  color:#fff;
  border-color:var(--green-800);
  background:var(--green-800);
}
.news-meta {
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin:0 3px 10px;
  color:var(--muted);
  font-size:.62rem;
}
.featured-news {
  overflow:hidden;
  margin-bottom:13px;
  border:1px solid var(--line);
  border-radius:21px;
  background:#fff;
  box-shadow:0 9px 21px rgba(25,65,30,.09);
}
.featured-news .news-image {
  height:190px;
  border-radius:0;
}
.featured-news-copy {
  padding:16px;
}
.news-source-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:7px;
}
.news-source {
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border-radius:999px;
  color:var(--green-900);
  background:var(--green-100);
  font-size:.58rem;
  font-weight:900;
}
.news-date {
  color:var(--muted);
  font-size:.58rem;
}
.featured-news h3,
.news-card h3 {
  margin:0;
  color:#17371e;
  line-height:1.22;
}
.featured-news h3 { font-size:1.18rem; }
.featured-news p,
.news-card p {
  color:var(--muted);
  line-height:1.42;
}
.featured-news p {
  margin:8px 0 12px;
  font-size:.75rem;
}
.news-list {
  display:grid;
  gap:11px;
}
.news-card {
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:12px;
  overflow:hidden;
  padding:10px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 7px 17px rgba(25,65,30,.06);
}
.news-image {
  position:relative;
  width:100%;
  min-height:108px;
  overflow:hidden;
  border-radius:13px;
  background:
    radial-gradient(circle at 70% 22%, rgba(255,255,255,.23), transparent 25%),
    linear-gradient(145deg,#6fb650,#176c34);
}
.news-image img {
  width:100%;
  height:100%;
  min-height:108px;
  object-fit:cover;
  display:block;
}
.news-image-fallback {
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:2.4rem;
}
.news-card-copy {
  min-width:0;
  padding:2px 2px 2px 0;
}
.news-card h3 {
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  font-size:.89rem;
}
.news-card p {
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  margin:6px 0 7px;
  font-size:.67rem;
}
.news-open {
  border:0;
  padding:0;
  color:var(--green-800);
  background:transparent;
  font-size:.67rem;
  font-weight:900;
}
.news-loading,
.news-empty {
  padding:28px 16px;
  text-align:center;
  color:var(--muted);
  border:1px dashed #cdd8cd;
  border-radius:16px;
  background:#fff;
  font-size:.75rem;
}
.news-category {
  display:inline-block;
  margin-left:5px;
  color:#6a766b;
  font-size:.56rem;
}
@media (max-width:430px) {
  .news-card {
    grid-template-columns:96px minmax(0,1fr);
    gap:10px;
  }
  .news-image,
  .news-image img {
    min-height:105px;
  }
  .featured-news .news-image {
    height:165px;
  }
}


.news-country {
  display:inline-flex;
  align-items:center;
  gap:4px;
  margin-left:5px;
  padding:4px 7px;
  border-radius:999px;
  color:#425446;
  background:#edf2ed;
  font-size:.55rem;
  font-weight:900;
}
.news-country.us { background:#e8f0fb; color:#245080; }
.news-country.mx { background:#edf7e9; color:#246a2d; }
.news-country.ca { background:#fff0ed; color:#9a3228; }
.news-country.global { background:#f1edf8; color:#66458a; }
.news-source-row-left {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  min-width:0;
}


.recommendation-refresh {
  margin-left:auto;
  width:42px;
  height:42px;
  border:0;
  border-radius:14px;
  color:var(--green-900);
  background:var(--green-100);
  font-size:1.35rem;
  font-weight:900;
}
.daily-advice-hero {
  position:relative;
  overflow:hidden;
  margin-bottom:13px;
  padding:19px 18px;
  color:#fff;
  border-radius:23px;
  background:
    radial-gradient(circle at 87% 12%, rgba(255,255,255,.18), transparent 25%),
    linear-gradient(135deg,var(--green-800),var(--green-950));
  box-shadow:0 11px 25px rgba(0,79,31,.21);
}
.daily-advice-hero > span {
  display:block;
  font-size:.68rem;
  opacity:.78;
}
.daily-advice-hero > strong {
  display:block;
  max-width:88%;
  margin-top:5px;
  font-size:1.25rem;
  line-height:1.2;
}
.daily-advice-hero > p {
  max-width:90%;
  margin:7px 0 12px;
  font-size:.74rem;
  line-height:1.4;
  opacity:.84;
}
.advice-badge {
  display:inline-flex;
  align-items:center;
  padding:7px 10px;
  border-radius:999px;
  font-size:.64rem;
  font-weight:900;
}
.advice-badge.good { color:#ecffef; background:rgba(43,190,78,.28); }
.advice-badge.caution { color:#fff6d0; background:rgba(225,167,25,.30); }
.advice-badge.stop { color:#ffe6e2; background:rgba(205,59,40,.34); }
.advice-badge.neutral { color:#fff; background:rgba(255,255,255,.15); }

.recommendation-profile {
  margin-bottom:13px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 7px 17px rgba(25,65,30,.06);
}
.recommendation-profile summary {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  padding:14px 15px;
  color:var(--green-950);
  cursor:pointer;
  font-weight:900;
}
.recommendation-profile summary small {
  color:var(--muted);
  font-size:.61rem;
  font-weight:600;
}
.profile-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  padding:0 15px 15px;
}
.input-with-unit {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:6px;
}
.input-with-unit input { margin-top:6px; }
.input-with-unit span {
  margin-top:6px;
  padding:12px 8px;
  border:1px solid #d3dcd3;
  border-radius:11px;
  color:var(--muted);
  background:#f6f8f6;
  font-size:.64rem;
  white-space:nowrap;
}

.daily-advice-grid {
  display:grid;
  gap:11px;
}
.advice-card {
  overflow:hidden;
  border:1px solid var(--line);
  border-left-width:6px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 7px 17px rgba(25,65,30,.06);
}
.advice-card.good { border-left-color:#219653; }
.advice-card.caution { border-left-color:#e0a51b; }
.advice-card.stop { border-left-color:#ca493b; }
.advice-card.neutral { border-left-color:#9aa69c; }
.advice-card-head {
  display:flex;
  gap:11px;
  align-items:center;
  padding:14px 14px 10px;
}
.advice-card-head > span {
  width:43px;
  height:43px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:var(--green-050);
  font-size:1.35rem;
}
.advice-card-head strong {
  display:block;
  color:#17371e;
  font-size:.95rem;
}
.advice-card-head small {
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.64rem;
}
.advice-card-body {
  padding:0 14px 14px;
}
.advice-main {
  margin:0 0 8px;
  color:#263a2a;
  font-size:.78rem;
  line-height:1.45;
}
.advice-metrics {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
  margin-bottom:9px;
}
.advice-metrics div {
  padding:9px 5px;
  text-align:center;
  border-radius:12px;
  background:#f5f8f5;
}
.advice-metrics span {
  display:block;
  color:var(--muted);
  font-size:.55rem;
}
.advice-metrics strong {
  display:block;
  margin-top:3px;
  color:var(--green-950);
  font-size:.76rem;
}
.advice-actions {
  margin:0;
  padding-left:18px;
  color:#526056;
  font-size:.7rem;
  line-height:1.45;
}
.advice-actions li + li { margin-top:4px; }
.advice-warning {
  margin-top:9px;
  padding:9px 10px;
  border-radius:11px;
  color:#714a02;
  background:#fff6dc;
  font-size:.66rem;
  line-height:1.4;
}
.recommendation-sources {
  margin-top:13px;
  padding:13px 14px;
  border-radius:16px;
  color:#38503d;
  background:#edf6ea;
  border:1px solid #d5e8d1;
}
.recommendation-sources strong {
  display:block;
  color:var(--green-950);
  font-size:.76rem;
}
.recommendation-sources p {
  margin:5px 0 0;
  font-size:.66rem;
  line-height:1.45;
}
@media (max-width:430px) {
  .profile-grid { grid-template-columns:1fr; }
  .advice-metrics { grid-template-columns:1fr 1fr 1fr; }
}


.profile-wide {
  grid-column:1 / -1;
}
.profile-label {
  display:block;
  margin-bottom:7px;
  color:var(--muted);
  font-size:.75rem;
  font-weight:700;
}
.profile-help {
  display:block;
  margin-top:7px;
  color:var(--muted);
  font-size:.61rem;
  line-height:1.4;
}
.pest-selector {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.pest-selector-item {
  display:grid;
  grid-template-columns:auto 1fr 68px;
  gap:7px;
  align-items:center;
  padding:9px;
  border:1px solid #dce5dc;
  border-radius:13px;
  background:#f9fbf9;
}
.pest-selector-item.active {
  border-color:#78ad7a;
  background:#eef8eb;
}
.pest-selector-item input[type="checkbox"] {
  width:18px;
  height:18px;
  margin:0;
  accent-color:var(--green-800);
}
.pest-selector-name {
  min-width:0;
}
.pest-selector-name strong {
  display:block;
  color:#25402a;
  font-size:.68rem;
  line-height:1.2;
}
.pest-selector-name small {
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.55rem;
}
.pest-percent {
  position:relative;
}
.pest-percent input {
  margin:0;
  padding:9px 20px 9px 7px;
  text-align:right;
  font-size:.68rem;
}
.pest-percent span {
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%);
  color:var(--muted);
  font-size:.57rem;
  pointer-events:none;
}
.pest-percent input:disabled {
  opacity:.45;
  background:#eef1ee;
}
.selected-pest-section {
  margin-top:13px;
}
.selected-pest-heading {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  margin:0 3px 9px;
}
.selected-pest-heading strong {
  display:block;
  color:var(--green-950);
  font-size:.86rem;
}
.selected-pest-heading small {
  display:block;
  margin-top:2px;
  color:var(--muted);
  font-size:.61rem;
}
.selected-pest-heading > span {
  padding:6px 8px;
  border-radius:999px;
  color:var(--green-900);
  background:var(--green-100);
  font-size:.59rem;
  font-weight:900;
  white-space:nowrap;
}
.selected-pest-guides {
  display:grid;
  gap:11px;
}
.pest-guide-card {
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 7px 17px rgba(25,65,30,.06);
}
.pest-guide-top {
  display:flex;
  gap:11px;
  align-items:center;
  padding:14px;
  background:linear-gradient(135deg,#f8fcf7,#eef7eb);
}
.pest-guide-icon {
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#fff;
  font-size:1.35rem;
  box-shadow:0 4px 10px rgba(25,65,30,.08);
}
.pest-guide-title {
  min-width:0;
}
.pest-guide-title strong {
  display:block;
  color:#17371e;
  font-size:.94rem;
}
.pest-guide-title small {
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:.61rem;
}
.pest-guide-damage {
  margin-left:auto;
  padding:7px 9px;
  border-radius:11px;
  text-align:center;
  color:#7b4a04;
  background:#fff3d2;
  font-size:.57rem;
  white-space:nowrap;
}
.pest-guide-damage strong {
  display:block;
  font-size:.83rem;
}
.pest-guide-body {
  padding:13px 14px 15px;
}
.pest-guide-body h4 {
  margin:0 0 5px;
  color:var(--green-950);
  font-size:.72rem;
}
.pest-guide-body p {
  margin:0 0 10px;
  color:#526056;
  font-size:.68rem;
  line-height:1.45;
}
.pest-guide-body ul {
  margin:0 0 11px;
  padding-left:18px;
  color:#526056;
  font-size:.66rem;
  line-height:1.45;
}
.pest-guide-body li + li {
  margin-top:4px;
}
.active-ingredients {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:7px;
}
.active-chip {
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:6px 8px;
  border-radius:999px;
  color:#28522e;
  background:#eaf5e8;
  border:1px solid #cfe5cc;
  font-size:.59rem;
  font-weight:900;
}
.active-chip em {
  font-style:normal;
  color:#657368;
  font-size:.53rem;
}
.pest-guide-warning {
  margin-top:10px;
  padding:9px 10px;
  border-radius:11px;
  color:#714a02;
  background:#fff6dc;
  font-size:.62rem;
  line-height:1.4;
}
.pest-empty {
  padding:22px 15px;
  text-align:center;
  color:var(--muted);
  border:1px dashed #cdd8cd;
  border-radius:15px;
  background:#fff;
  font-size:.7rem;
}
@media (max-width:430px) {
  .pest-selector {
    grid-template-columns:1fr;
  }
}


.removal-note {
  margin:-2px 0 11px;
  padding:10px 11px;
  border-left:4px solid var(--green-700);
  border-radius:5px 12px 12px 5px;
  color:#38503d;
  background:#eef7e9;
  font-size:.68rem;
  line-height:1.4;
}
.removal-table-wrap {
  overflow-x:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
}
.removal-table {
  min-width:570px;
}
.removal-row {
  display:grid;
  grid-template-columns:1.55fr repeat(3,.82fr);
  align-items:center;
  min-height:48px;
  border-bottom:1px solid #e3e9e3;
}
.removal-row:last-child {
  border-bottom:0;
}
.removal-row.header {
  position:sticky;
  top:0;
  z-index:1;
  min-height:45px;
  color:#17371e;
  background:#eaf5e8;
  font-weight:900;
}
.removal-row > span {
  padding:9px 8px;
  text-align:right;
  font-size:.68rem;
}
.removal-row > span:first-child {
  position:sticky;
  left:0;
  z-index:1;
  display:flex;
  align-items:center;
  gap:7px;
  text-align:left;
  color:#243b28;
  background:#fff;
}
.removal-row.header > span:first-child {
  z-index:2;
  background:#eaf5e8;
}
.removal-row .removal-total {
  font-weight:900;
  color:var(--green-950);
  background:#f5faf4;
}
.nutrient-info-btn {
  flex:0 0 auto;
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  color:#fff;
  background:var(--green-700);
  font-size:.69rem;
  font-weight:900;
}
.calculator-mini-note {
  margin:10px 2px 0;
  color:var(--muted);
  font-size:.62rem;
  line-height:1.4;
}
.nutrient-grid-complete {
  grid-template-columns:repeat(3,1fr);
}
@media (max-width:430px) {
  .nutrient-grid-complete {
    grid-template-columns:repeat(3,1fr);
  }
}


/* Versión 15: controles funcionales */
.dialog-card { max-height:min(86vh,760px); overflow:auto; }
.dialog-panel.actionable { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; }
.dialog-panel .panel-copy { min-width:0; }
.dialog-action-btn {
  flex:0 0 auto;
  min-width:92px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  color:var(--green-900);
  font-weight:900;
}
.dialog-action-btn.active {
  color:#fff;
  border-color:var(--green-800);
  background:var(--green-800);
}
.dialog-note {
  margin-top:12px;
  padding:10px 12px;
  border-radius:12px;
  background:#fff8db;
  color:#6d5a16;
  font-size:.78rem;
  line-height:1.45;
}
.dialog-toast {
  margin:10px 0 0;
  padding:10px 12px;
  border-radius:12px;
  background:#e9f7e8;
  color:var(--green-900);
  font-weight:800;
}
.dialog-links { display:grid; grid-template-columns:1fr 1fr; }
.dialog-inline-btn { width:100%; }
@media (max-width:390px) {
  .dialog-links { grid-template-columns:1fr; }
  .dialog-panel.actionable { grid-template-columns:1fr; }
  .dialog-action-btn { width:100%; }
}
