/* Componentes editoriais do Artigo 3 — herdam os tokens do design system Agro. */

.a3-panel {
  margin: 40px 0;
  overflow: hidden;
  border: 1px solid var(--wm-line);
  border-radius: var(--wm-radius);
  background: #fff;
  box-shadow: var(--wm-shadow-sm);
}

.a3-panel-head {
  padding: 26px 28px 18px;
  border-bottom: 1px solid var(--wm-line);
  background: linear-gradient(135deg, #fff 0%, var(--wm-green-pale) 100%);
}

.a3-eyebrow {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 8px;
  color: var(--wm-green);
  font: 800 .72rem/1 'Outfit', sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.a3-eyebrow::before {
  width: 22px;
  height: 2px;
  background: var(--wm-terra-soft);
  content: "";
}

.a3-panel-head h3 {
  margin: 0 0 7px !important;
  color: var(--wm-ink);
  font-size: 1.45rem !important;
}

.a3-panel-head p {
  margin: 0 !important;
  color: var(--wm-mute) !important;
  font-size: .94rem !important;
  line-height: 1.55 !important;
}

/* 1. Premissas dos dois regimes */
.premise-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding: 26px 28px 18px;
}

.premise-card {
  position: relative;
  min-height: 190px;
  padding: 24px;
  border: 1px solid var(--wm-line);
  border-radius: 12px;
  background: var(--wm-sand);
  transition: transform .24s ease, border-color .24s ease, box-shadow .24s ease;
}

.premise-card:hover {
  transform: translateY(-4px);
  border-color: var(--wm-green-line);
  box-shadow: var(--wm-shadow-md);
}

.premise-card.split {
  border-color: var(--wm-green-line);
  background: var(--wm-green-pale);
}

.premise-label {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--wm-forest);
  color: #fff;
  font: 800 .7rem/1 'Outfit', sans-serif;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.premise-card.split .premise-label { background: var(--wm-green); }
.premise-card h4 { margin: 0 0 10px; color: var(--wm-ink); font: 800 1.05rem/1.25 'Outfit', sans-serif; }
.premise-card p { margin: 0 !important; color: var(--wm-body-c) !important; font-size: .9rem !important; line-height: 1.58 !important; }

.tax-premise {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 28px 28px;
  padding: 18px 20px;
  border: 1px solid var(--wm-amber-line);
  border-radius: 11px;
  background: var(--wm-amber-bg);
}

.tax-premise strong { color: var(--wm-amber) !important; font: 800 1.55rem/1 'Outfit', sans-serif; }
.tax-premise span { color: #805009; font: 600 .83rem/1.45 'DM Sans', sans-serif; }

/* 2. Venda isolada: valor + três prazos */
.sale-calc {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, .72fr);
  gap: 16px;
  padding: 24px 28px 18px;
}

.sale-field,
.sale-result {
  padding: 20px;
  border: 1px solid var(--wm-line);
  border-radius: 12px;
  background: var(--wm-sand);
}

.sale-field label { display: block; margin-bottom: 10px; color: var(--wm-ink); font: 800 .88rem/1.2 'Outfit', sans-serif; }
.money-input { display: flex; align-items: center; overflow: hidden; border: 1.5px solid var(--wm-line); border-radius: 9px; background: #fff; }
.money-input:focus-within { border-color: var(--wm-green); box-shadow: 0 0 0 4px rgba(22,163,74,.13); }
.money-input span { padding-left: 13px; color: var(--wm-mute); font: 700 .84rem/1 'DM Sans', sans-serif; }
.money-input input { min-width: 0; width: 100%; padding: 12px; border: 0; outline: 0; background: transparent; color: var(--wm-forest); font: 800 1.2rem/1 'Outfit', sans-serif; }
.sale-field small { display: block; margin-top: 9px; color: var(--wm-mute); font: 400 .76rem/1.4 'DM Sans', sans-serif; }

.sale-result {
  border-color: var(--wm-green-line);
  background: linear-gradient(145deg, var(--wm-forest), var(--wm-forest-deep));
  color: #fff;
}
.sale-result span { display: block; margin-bottom: 8px; color: rgba(255,255,255,.7); font: 600 .76rem/1.2 'DM Sans', sans-serif; }
.sale-result strong { display: block; color: var(--wm-green-soft) !important; font: 800 1.65rem/1 'Outfit', sans-serif; font-variant-numeric: tabular-nums; }

.term-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 4px 28px 0;
}

.term-tab,
.chart-toggle,
.storm-tab {
  padding: 12px 14px;
  border: 1px solid var(--wm-line);
  border-radius: 10px;
  background: #fff;
  color: var(--wm-mute);
  cursor: pointer;
  font: 800 .82rem/1.2 'Outfit', sans-serif;
  transition: transform .2s ease, border-color .2s ease, background .2s ease, color .2s ease;
}

.term-tab:hover,
.chart-toggle:hover,
.storm-tab:hover { transform: translateY(-2px); border-color: var(--wm-green); color: var(--wm-green); }
.term-tab[aria-selected="true"],
.chart-toggle[aria-pressed="true"],
.storm-tab[aria-selected="true"] { border-color: var(--wm-forest); background: var(--wm-forest); color: #fff; }

.term-pane { padding: 26px 28px 28px; }
.term-pane[hidden] { display: none; }

.term-track {
  position: relative;
  height: 8px;
  margin: 34px 12px 64px;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--wm-green-pale), var(--wm-green-line));
}

.term-marker {
  position: absolute;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translate(-50%, -50%);
  border: 4px solid #fff;
  border-radius: 50%;
  background: var(--wm-green);
  box-shadow: 0 0 0 1px var(--wm-green-line), 0 3px 8px rgba(10,54,34,.18);
}
.term-marker.current { background: var(--wm-terra); }
.term-marker em { position: absolute; top: 24px; left: 50%; width: 128px; transform: translateX(-50%); color: var(--wm-ink); font: normal 700 .74rem/1.3 'Outfit', sans-serif; text-align: center; }
.term-summary { padding: 17px 19px; border: 1px solid var(--wm-green-line); border-radius: 10px; background: var(--wm-green-pale); color: var(--wm-forest); font: 700 .92rem/1.5 'Outfit', sans-serif; }
.term-summary.loss { border-color: var(--wm-red-line); background: var(--wm-red-bg); color: var(--wm-red); }
.term-summary.tie { border-color: var(--wm-amber-line); background: var(--wm-amber-bg); color: #805009; }

/* 3. Gráfico anual */
.chart-controls {
  display: flex;
  gap: 8px;
  padding: 22px 28px 4px;
}

.chart-toggle { flex: 1; }
.year-chart { padding: 24px 28px 30px; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 20px; color: var(--wm-mute); font: 600 .76rem/1 'DM Sans', sans-serif; }
.chart-legend span { display: inline-flex; align-items: center; gap: 7px; }
.chart-legend i { width: 10px; height: 10px; border-radius: 3px; background: var(--wm-terra); }
.chart-legend .split i { background: var(--wm-green); }

.month-chart {
  display: grid;
  grid-template-columns: repeat(12, minmax(32px, 1fr));
  gap: 7px;
  align-items: end;
  min-height: 250px;
  padding: 18px 14px 0;
  border-left: 1px solid var(--wm-line);
  border-bottom: 1px solid var(--wm-line);
  background: repeating-linear-gradient(to top, transparent 0, transparent 49px, rgba(228,233,226,.72) 50px);
}

.month-group { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); align-items: end; gap: 3px; height: 218px; }
.month-bar {
  position: relative;
  align-self: end;
  min-height: 4px;
  height: calc(var(--value) / 191 * 190px);
  border-radius: 6px 6px 2px 2px;
  background: var(--wm-terra);
  transition: height .3s ease, opacity .2s ease, transform .2s ease;
}
.month-bar.split { background: var(--wm-green); }
.month-bar:hover { z-index: 2; transform: scaleX(1.18); box-shadow: 0 6px 14px rgba(10,54,34,.16); }
.month-bar::after { position: absolute; bottom: calc(100% + 7px); left: 50%; z-index: 4; padding: 5px 7px; transform: translateX(-50%); border-radius: 5px; background: var(--wm-forest-deep); color: #fff; content: "R$ " attr(data-value) " mil"; font: 700 .66rem/1 'DM Sans', sans-serif; opacity: 0; pointer-events: none; white-space: nowrap; transition: opacity .15s; }
.month-bar:hover::after { opacity: 1; }
.month-label { position: absolute; right: 0; bottom: -27px; left: 0; color: var(--wm-mute); font: 700 .67rem/1 'Outfit', sans-serif; text-align: center; text-transform: uppercase; }
.year-chart.show-current .month-bar.split,
.year-chart.show-split .month-bar.current { display: none; }
.year-chart.show-current .month-group,
.year-chart.show-split .month-group { grid-template-columns: 1fr; }
.chart-total { display: flex; justify-content: space-between; gap: 18px; margin-top: 48px; padding: 17px 19px; border: 1px solid var(--wm-green-line); border-radius: 10px; background: var(--wm-green-pale); color: var(--wm-forest); font: 700 .87rem/1.45 'Outfit', sans-serif; }
.chart-total strong { color: var(--wm-green) !important; font-size: 1.15rem; }

/* 4. Tabela mensal completa */
.annual-table-wrap { overflow-x: auto; padding: 24px 0 8px; scrollbar-color: var(--wm-green) var(--wm-green-pale); }
.annual-table {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  color: var(--wm-body-c);
  font: 500 .75rem/1.35 'DM Sans', sans-serif;
}
.annual-table th,
.annual-table td { min-width: 54px; padding: 11px 9px; border-right: 1px solid var(--wm-line); border-bottom: 1px solid var(--wm-line); text-align: center; font-variant-numeric: tabular-nums; }
.annual-table thead th { position: sticky; top: 0; z-index: 2; background: var(--wm-forest); color: #fff; font: 800 .72rem/1.2 'Outfit', sans-serif; }
.annual-table th:first-child,
.annual-table td:first-child { position: sticky; left: 0; z-index: 1; min-width: 205px; max-width: 205px; border-left: 1px solid var(--wm-line); background: #fff; text-align: left; font-weight: 700; }
.annual-table thead th:first-child { z-index: 3; background: var(--wm-forest); }
.annual-table tbody tr:first-child td { border-top: 0; }
.annual-table tbody tr:hover td { background: var(--wm-green-pale); }
.annual-table tbody tr:hover td:first-child { background: #def3e5; }
.annual-table tr.row-current td { background: var(--wm-amber-bg); }
.annual-table tr.row-current td:first-child { background: #f9ecd0; }
.annual-table tr.row-split td { background: var(--wm-green-pale); }
.annual-table tr.row-split td:first-child { background: #def3e5; }
.table-note { margin: 14px 28px 24px; color: var(--wm-mute); font: 500 .75rem/1.45 'DM Sans', sans-serif; }

/* 5. Mudança de pico e tempestade de caixa */
.peak-shift {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 16px;
  align-items: stretch;
  padding: 26px 28px 28px;
}
.peak-card { padding: 22px; border: 1px solid var(--wm-line); border-radius: 12px; background: var(--wm-sand); transition: transform .24s ease, box-shadow .24s ease; }
.peak-card:hover { transform: translateY(-4px); box-shadow: var(--wm-shadow-md); }
.peak-card.split { border-color: var(--wm-green-line); background: var(--wm-green-pale); }
.peak-card span { display: block; margin-bottom: 8px; color: var(--wm-mute); font: 800 .7rem/1 'Outfit', sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.peak-card strong { display: block; margin-bottom: 10px; color: var(--wm-terra) !important; font: 800 1.25rem/1.15 'Outfit', sans-serif; }
.peak-card.split strong { color: var(--wm-green) !important; }
.peak-card p { margin: 0 !important; color: var(--wm-body-c) !important; font-size: .84rem !important; line-height: 1.5 !important; }
.peak-arrow { align-self: center; color: var(--wm-green); font: 800 1.8rem/1 'Outfit', sans-serif; }

.storm-tabs { display: flex; gap: 8px; padding: 22px 28px 0; }
.storm-tab { flex: 1; }
.storm-body { padding: 22px 28px 28px; }
.storm-month { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.storm-metric { padding: 19px; border: 1px solid var(--wm-line); border-radius: 11px; background: var(--wm-sand); text-align: center; }
.storm-metric span { display: block; margin-bottom: 8px; color: var(--wm-mute); font: 700 .72rem/1.3 'DM Sans', sans-serif; }
.storm-metric strong { display: block; color: var(--wm-ink) !important; font: 800 1.35rem/1 'Outfit', sans-serif; font-variant-numeric: tabular-nums; }
.storm-metric.current { border-color: var(--wm-amber-line); background: var(--wm-amber-bg); }
.storm-metric.current strong { color: var(--wm-amber) !important; }
.storm-metric.split { border-color: var(--wm-green-line); background: var(--wm-green-pale); }
.storm-metric.split strong { color: var(--wm-green) !important; }
.storm-caption { margin: 16px 0 0 !important; color: var(--wm-mute) !important; font-size: .81rem !important; line-height: 1.5 !important; }

.alert-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 30px 0 38px; }
.alert-card { padding: 22px; border: 1px solid var(--wm-line); border-radius: 12px; background: #fff; box-shadow: var(--wm-shadow-sm); transition: transform .24s ease, border-color .24s ease, box-shadow .24s ease; }
.alert-card:hover { transform: translateY(-4px); border-color: var(--wm-green-line); box-shadow: var(--wm-shadow-md); }
.alert-num { display: grid; width: 34px; height: 34px; margin-bottom: 14px; place-items: center; border-radius: 50%; background: var(--wm-green); color: #fff; font: 800 .8rem/1 'Outfit', sans-serif; }
.alert-card h4 { margin: 0 0 9px; color: var(--wm-ink); font: 800 1rem/1.25 'Outfit', sans-serif; }
.alert-card p { margin: 0 !important; color: var(--wm-mute) !important; font-size: .86rem !important; line-height: 1.55 !important; }

.source-note-a3 { margin: 34px 0; padding: 16px 18px; border-left: 4px solid var(--wm-terra-soft); border-radius: 0 9px 9px 0; background: var(--wm-sand); color: var(--wm-mute); font: 500 .8rem/1.58 'DM Sans', sans-serif; }

@media (max-width: 760px) {
  .premise-grid,
  .sale-calc,
  .alert-grid { grid-template-columns: 1fr; }
  .tax-premise { align-items: flex-start; flex-direction: column; }
  .term-tabs { grid-template-columns: 1fr; }
  .chart-controls { display: grid; grid-template-columns: 1fr; }
  .year-chart { overflow-x: auto; }
  .month-chart { min-width: 620px; }
  .chart-legend,
  .chart-total { min-width: 620px; }
  .peak-shift { grid-template-columns: 1fr; }
  .peak-arrow { transform: rotate(90deg); text-align: center; }
  .storm-month { grid-template-columns: 1fr; }
  .a3-panel-head { padding: 24px 22px 17px; }
  .premise-grid,
  .sale-calc { padding: 22px; }
  .tax-premise { margin: 0 22px 24px; }
  .term-tabs { padding: 4px 22px 0; }
  .term-pane,
  .year-chart,
  .storm-body { padding: 22px; }
  .chart-controls,
  .storm-tabs { padding-right: 22px; padding-left: 22px; }
  .peak-shift { padding: 22px; }
  .table-note { margin-right: 22px; margin-left: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .premise-card,
  .term-tab,
  .chart-toggle,
  .storm-tab,
  .month-bar,
  .peak-card,
  .alert-card { transition: none; }
}
