/* Main view area + launch-polish cards. */
/* ============================================================
   MAIN — VIEWS
   ============================================================ */
.views-row { display: flex; gap: 14px; }
.view-card {
  flex: 1;
  background: white;
  border: 1px solid var(--rule-strong);
  border-radius: 3px;
  overflow: hidden;
  min-width: 0;
}
.view-header {
  background: var(--paper-warmer);
  border-bottom: 1px solid var(--rule);
  padding: 7px 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-faint);
  display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 30px;
}
.view-body {
  padding: 14px;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* SOIL SUMMARY */
.soil-card {
  background: var(--success-bg);
  border: 1px solid var(--success-rule);
  border-radius: 3px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.soil-stat { text-align: center; min-width: 60px; }
.soil-stat .s-val { font-size: 24px; font-weight: 800; color: var(--success-ink); line-height: 1; }
.soil-stat .s-lbl { font-size: 9.5px; font-weight: 700; color: #16A34A; letter-spacing: 0.07em; text-transform: uppercase; margin-top: 2px; }
.soil-divider { width: 1px; height: 40px; background: var(--success-rule); }
.soil-desc { font-size: 12px; color: var(--success-ink); line-height: 1.5; flex: 1; min-width: 200px; }

/* BOM */
.bom-card {
  background: white;
  border: 1px solid var(--rule-strong);
  border-radius: 3px;
  overflow: hidden;
}
.bom-hdr {
  background: var(--green);
  color: white;
  padding: 10px 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.bom-hdr-title { font-size: 11px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; opacity: 0.85; }
.bom-hdr-sub { font-size: 12px; opacity: 0.7; font-weight: 500; }
.bom-total { font-size: 20px; font-weight: 800; font-variant-numeric: tabular-nums; }

.bom-section-hdr td {
  background: var(--paper-warmer);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--ink-faint);
  padding: 6px 12px;
  border-bottom: 1px solid var(--rule-strong);
  border-top: 1px solid var(--rule-strong);
}

.bom-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.bom-table th {
  background: var(--paper-warmer);
  border-bottom: 1px solid var(--rule-strong);
  padding: 6px 12px;
  text-align: left;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-faint);
}
.bom-table th:nth-child(3),
.bom-table th:nth-child(4),
.bom-table th:nth-child(5) { text-align: right; }
.bom-table td { padding: 8px 12px; border-bottom: 1px solid var(--rule); vertical-align: middle; }
.bom-table tr:last-child td { border-bottom: none; }
.bom-table td:nth-child(3),
.bom-table td:nth-child(4),
.bom-table td:nth-child(5) { text-align: right; }
.t-sku { font-family: var(--mono); font-size: 9.5px; color: var(--green); font-weight: 600; white-space: nowrap; }
.t-desc { font-size: 12px; color: var(--ink); font-weight: 600; }
.t-note { font-size: 10px; color: var(--ink-faint); font-style: italic; margin-top: 1px; }
.t-qty { font-weight: 800; color: var(--ink); font-size: 13px; }
.t-price { color: var(--ink-faint); white-space: nowrap; }
.t-ext { font-weight: 700; color: var(--ink); white-space: nowrap; }
.bom-sub-row td { background: rgba(0,0,0,0.015); border-bottom: 1px solid var(--rule); }
.t-sku-sub { font-family: var(--mono); font-size: 9px; color: var(--ink-faint); font-weight: 500; white-space: nowrap; }
.t-desc-sub { font-size: 11.5px; color: var(--ink-mid); font-weight: 400; padding-left: 10px; }
.bom-subtotal-row td {
  background: var(--paper-warmer);
  font-weight: 700;
  border-top: 2px solid var(--rule-strong);
  border-bottom: 1px solid var(--rule-strong);
}
.bom-subtotal-row .subtotal-label { color: var(--ink-faint); font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; }
.bom-subtotal-row .subtotal-val { font-size: 15px; color: var(--ink); }

.bom-footer {
  padding: 9px 14px;
  font-size: 10px;
  color: var(--ink-faint);
  background: var(--paper-warmer);
  border-top: 1px solid var(--rule);
  line-height: 1.5;
}

/* BOM PLACEHOLDER */
.bom-placeholder {
  background: white;
  border: 1px dashed var(--rule-strong);
  border-radius: 3px;
  padding: 32px 20px;
  text-align: center;
  color: var(--ink-faint);
}
.bom-placeholder p { font-size: 13px; margin-bottom: 6px; }
.bom-placeholder strong { color: var(--green); }

/* CROSS-SELL */
.crosssell {
  background: var(--paper-warmer);
  border: 1px solid var(--rule-strong);
  border-radius: 3px;
  padding: 12px 14px;
}
.crosssell-title {
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-faint);
  margin-bottom: 9px;
}
.crosssell-items { display: flex; gap: 10px; flex-wrap: wrap; }
.cs-item {
  flex: 1;
  min-width: 180px;
  background: white;
  border: 1px solid var(--rule);
  border-radius: 3px;
  padding: 11px 12px;
}
.cs-name { font-size: 12px; font-weight: 700; color: var(--green); margin-bottom: 3px; }
.cs-desc { font-size: 11px; color: var(--ink-light); line-height: 1.45; }
.cs-link {
  display: inline-block;
  margin-top: 6px;
  font-size: 10px;
  font-weight: 700;
  color: var(--green);
  text-decoration: none;
  letter-spacing: 0.04em;
}

/* ============================================================
   LAUNCH POLISH — soil budget, project info, difficulty, popular
   ============================================================ */
.soil-budget { margin-top: 8px; font-size: 12px; color: var(--ink-mid); }
.soil-budget strong { color: var(--success-ink); }
.soil-budget-note { display: block; font-size: 10px; color: var(--ink-faint); margin-top: 2px; }
.proj-info { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 14px; }
.pi-cell { flex: 1; min-width: 200px; background: var(--paper-warm); border: 1px solid var(--rule); border-radius: 4px; padding: 11px 13px; }
.pi-k { font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 5px; }
.pi-v { font-size: 16px; font-weight: 800; color: var(--ink); }
.pi-sub { font-size: 11px; color: var(--ink-light); line-height: 1.4; margin-top: 3px; }
.diff-badge { display: inline-block; font-size: 12px; font-weight: 800; letter-spacing: 0.02em; padding: 3px 11px; border-radius: 13px; color: #FFF; }
.diff-beginner { background: #2A7A1E; }
.diff-intermediate { background: #92620A; }
.diff-advanced { background: #9A3B2E; }
.diff-copy { display: block; font-size: 11px; color: var(--ink-light); margin-top: 4px; line-height: 1.4; }
.pop { margin-top: 14px; background: var(--paper-warmer); border: 1px solid var(--rule-strong); border-radius: 3px; padding: 12px 14px; }
.pop-title { font-size: 9.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 9px; }
.pop-grid { display: flex; flex-direction: column; gap: 7px; }
.pop-card { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: #FFF; border: 1px solid var(--rule); border-radius: 4px; padding: 9px 12px; }
.pop-info b { font-size: 12.5px; color: var(--ink); }
.pop-cost { font-size: 11px; font-weight: 800; color: var(--amber); margin-left: 6px; }
.pop-ship { font-size: 8px; font-weight: 900; letter-spacing: 0.04em; text-transform: uppercase; background: var(--success-ink); color: #FFF; padding: 1px 6px; border-radius: 9px; margin-left: 6px; }
.pop-why { display: block; font-size: 11px; color: var(--ink-light); margin-top: 2px; line-height: 1.4; }
.pop-add { background: var(--green); color: #FFF; border: none; border-radius: 7px; padding: 6px 14px; font-size: 11px; font-weight: 800; cursor: pointer; white-space: nowrap; }
.pop-ask { font-size: 10px; font-weight: 800; color: var(--green); text-decoration: none; white-space: nowrap; }
.pop-ask:hover { text-decoration: underline; }

