:root {
  --portal-bg: #f3f6f3;
  --portal-surface: #ffffff;
  --portal-line: #dfe7df;
  --portal-muted: #66726a;
  --portal-text: #183126;
  --portal-primary: #176b42;
  --portal-primary-dark: #0f5132;
  --portal-soft: #eaf4ed;
  --portal-warning: #fff5df;
  --portal-danger: #a43e39;
  --portal-shadow: 0 20px 48px rgba(24,49,38,.10);
}

body.portal-mode { overflow: hidden; background: var(--portal-bg); }
body.portal-mode .prototype-banner,
body.portal-mode .site-header,
body.portal-mode #publicView,
body.portal-mode #publicFooter { display: none !important; }

.portal-view { min-height: 100vh; background: var(--portal-bg); color: var(--portal-text); }
.portal-layout { min-height: 100vh; display: grid; grid-template-columns: 280px minmax(0, 1fr); }
.portal-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 22px; padding: 24px 18px; background: #123d2b; color: #fff; overflow-y: auto; }
.portal-brand { display: flex; align-items: center; gap: 11px; border: 0; background: transparent; color: inherit; font: inherit; font-size: 18px; cursor: pointer; padding: 6px 8px; text-align: left; }
.portal-brand span { width: 38px; height: 38px; display: grid; place-items: center; background: rgba(255,255,255,.12); border-radius: 12px; }
.portal-user-card { display: grid; grid-template-columns: 42px 1fr; gap: 10px; align-items: center; padding: 14px; border: 1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.07); border-radius: 18px; }
.portal-user-card > div { min-width: 0; }
.portal-user-card strong, .portal-user-card small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.portal-user-card small { margin-top: 3px; color: rgba(255,255,255,.68); font-size: 12px; }
.portal-avatar { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: #fff; color: var(--portal-primary); font-size: 20px; }
.portal-plan-badge { grid-column: 1 / -1; justify-self: start; padding: 5px 9px; border-radius: 999px; background: #d9f4df; color: #155e39; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.portal-nav { display: grid; gap: 6px; }
.portal-nav button { width: 100%; display: flex; align-items: center; gap: 11px; border: 0; border-radius: 12px; padding: 12px 13px; background: transparent; color: rgba(255,255,255,.76); text-align: left; font: inherit; font-weight: 700; cursor: pointer; transition: .2s ease; }
.portal-nav button:hover, .portal-nav button.active { background: rgba(255,255,255,.13); color: #fff; transform: translateX(2px); }
.portal-sidebar-footer { margin-top: auto; display: grid; gap: 9px; }
.portal-logout { border: 1px solid rgba(255,255,255,.16); background: transparent; color: rgba(255,255,255,.8); border-radius: 12px; padding: 11px; font: inherit; font-weight: 700; cursor: pointer; }

.portal-content { min-width: 0; height: 100vh; overflow-y: auto; padding: 30px clamp(20px, 4vw, 54px) 60px; }
.portal-topbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 26px; }
.portal-topbar h1 { margin: 4px 0 0; font-size: clamp(27px, 4vw, 40px); line-height: 1.05; }
.portal-top-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.portal-panel { display: none; animation: portalFade .18s ease; }
.portal-panel.active { display: block; }
@keyframes portalFade { from { opacity: .35; transform: translateY(5px); } to { opacity: 1; transform: none; } }

.portal-metrics { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.portal-metric { padding: 19px; background: var(--portal-surface); border: 1px solid var(--portal-line); border-radius: 18px; box-shadow: 0 8px 24px rgba(24,49,38,.05); }
.portal-metric span, .portal-metric small { display: block; color: var(--portal-muted); }
.portal-metric strong { display: block; margin: 8px 0 5px; font-size: 27px; }
.portal-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.portal-grid-main { grid-template-columns: 1.35fr .85fr; }
.portal-card { min-width: 0; padding: 22px; background: var(--portal-surface); border: 1px solid var(--portal-line); border-radius: 20px; box-shadow: 0 8px 26px rgba(24,49,38,.05); }
.portal-card h2, .portal-card h3 { margin-top: 0; }
.portal-card-heading, .portal-section-intro, .cms-toolbar { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 18px; }
.portal-card-heading h2, .portal-section-intro h2, .cms-toolbar h2 { margin: 4px 0 6px; }
.portal-card-heading p, .portal-section-intro p, .cms-toolbar p { margin: 0; color: var(--portal-muted); }
.text-button { border: 0; background: transparent; color: var(--portal-primary); font-weight: 800; cursor: pointer; }
.portal-list { display: grid; gap: 10px; }
.portal-list-item { display: flex; align-items: center; justify-content: space-between; gap: 13px; padding: 13px 0; border-bottom: 1px solid var(--portal-line); }
.portal-list-item:last-child { border-bottom: 0; }
.portal-list-item strong, .portal-list-item small { display: block; }
.portal-list-item small { margin-top: 4px; color: var(--portal-muted); }
.quick-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
.quick-action-grid button { display: grid; gap: 5px; min-height: 130px; padding: 15px; border: 1px solid var(--portal-line); border-radius: 16px; background: #fafcf9; text-align: left; cursor: pointer; }
.quick-action-grid button:hover { border-color: #8fbca0; background: var(--portal-soft); }
.quick-action-grid span { font-size: 25px; }
.quick-action-grid small { color: var(--portal-muted); }
.premium-status-card { margin-top: 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; background: linear-gradient(135deg,#173e2b,#26764b); color: white; border: 0; }
.premium-status-card p { color: rgba(255,255,255,.74); margin: 5px 0 0; }
.premium-status-card .button { white-space: nowrap; }

.portal-select { display: grid; gap: 5px; min-width: 250px; }
.portal-select span { font-size: 12px; font-weight: 800; color: var(--portal-muted); }
.portal-select select, .portal-form input, .cms-editor-fields input, .cms-editor-fields select, .cms-editor-fields textarea { width: 100%; border: 1px solid #cfd9d1; border-radius: 11px; padding: 11px 12px; background: #fff; font: inherit; color: var(--portal-text); }
.portal-form { display: grid; gap: 13px; }
.portal-form label, .cms-field { display: grid; gap: 6px; }
.portal-form label span, .cms-field > span { font-size: 12px; font-weight: 800; color: var(--portal-muted); }

.diagnostic-dashboard-list { display: grid; gap: 12px; }
.diagnostic-dashboard-item { display: grid; grid-template-columns: 1fr auto; gap: 15px; align-items: center; padding: 17px; border: 1px solid var(--portal-line); border-radius: 16px; }
.diagnostic-dashboard-item:hover { border-color: #9fc5ab; }
.diagnostic-dashboard-item h3 { margin: 0 0 6px; }
.diagnostic-dashboard-item p { margin: 0; color: var(--portal-muted); }
.diagnostic-score { min-width: 74px; text-align: center; padding: 10px; border-radius: 14px; background: var(--portal-soft); color: var(--portal-primary-dark); font-weight: 900; font-size: 19px; }
.diagnostic-actions { grid-column: 1 / -1; display: flex; gap: 8px; }

.ranking-dashboard-layout { display: grid; grid-template-columns: minmax(320px,.8fr) minmax(420px,1.2fr); gap: 18px; align-items: start; }
.dashboard-ranking-list { display: grid; gap: 8px; }
.dashboard-rank-button { width: 100%; display: grid; grid-template-columns: 34px 40px 1fr auto; gap: 10px; align-items: center; border: 1px solid var(--portal-line); border-radius: 14px; padding: 12px; background: white; text-align: left; cursor: pointer; }
.dashboard-rank-button:hover, .dashboard-rank-button.active { border-color: #77a989; background: var(--portal-soft); }
.dashboard-rank-button .rank-pos { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: #edf2ed; font-weight: 900; }
.dashboard-rank-button small { display: block; color: var(--portal-muted); margin-top: 3px; }
.dashboard-rank-button b { color: var(--portal-primary); }
.culture-detail-card { position: sticky; top: 20px; max-height: calc(100vh - 90px); overflow-y: auto; }
.culture-hero { display: flex; gap: 15px; align-items: center; padding-bottom: 18px; border-bottom: 1px solid var(--portal-line); }
.culture-hero-icon { width: 58px; height: 58px; display: grid; place-items: center; border-radius: 18px; background: var(--portal-soft); font-size: 30px; }
.culture-hero h2 { margin: 0 0 5px; }
.culture-score-pill { margin-left: auto; padding: 8px 11px; border-radius: 999px; background: #dff4e5; color: #145b38; font-weight: 900; }
.culture-data-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin: 16px 0; }
.culture-data-grid div { padding: 11px; background: #f7faf7; border-radius: 12px; }
.culture-data-grid span, .culture-data-grid strong { display: block; }
.culture-data-grid span { color: var(--portal-muted); font-size: 11px; text-transform: uppercase; font-weight: 800; }
.culture-section { padding: 16px 0; border-top: 1px solid var(--portal-line); }
.culture-section h3 { margin: 0 0 9px; }
.culture-section p { color: #53625a; line-height: 1.65; }
.tag-list { display: flex; flex-wrap: wrap; gap: 6px; }
.tag-list span { padding: 6px 9px; border-radius: 999px; background: #eff4ef; color: #40564a; font-size: 12px; }

.calculator-dashboard-grid { display: grid; gap: 10px; }
.calculator-dashboard-card { display: flex; align-items: center; gap: 12px; padding: 13px; border: 1px solid var(--portal-line); border-radius: 14px; }
.calculator-dashboard-card span { font-size: 25px; }
.calculator-dashboard-card div { flex: 1; }
.calculator-dashboard-card small { color: var(--portal-muted); display: block; }
.billing-plan-card { background: linear-gradient(145deg,#fbfffb,#eef8f0); }
.billing-plan-card .billing-price { font-size: 36px; font-weight: 900; margin: 12px 0; }
.billing-plan-card ul { padding-left: 20px; color: var(--portal-muted); line-height: 1.8; }

.admin-portal-sidebar { background: #162b24; }
.admin-identity { display: flex; align-items: center; gap: 11px; padding: 14px; border-radius: 16px; background: rgba(255,255,255,.08); }
.admin-identity > span { font-size: 24px; }
.admin-identity small { display: block; color: rgba(255,255,255,.62); margin-top: 2px; }
.cms-table-card { padding: 0; overflow: hidden; }
.cms-table-wrap { overflow-x: auto; }
.cms-table-wrap table { width: 100%; border-collapse: collapse; min-width: 760px; }
.cms-table-wrap th, .cms-table-wrap td { padding: 14px 16px; border-bottom: 1px solid var(--portal-line); text-align: left; vertical-align: middle; }
.cms-table-wrap th { background: #f5f8f5; color: #52645a; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.cms-table-wrap td small { display: block; color: var(--portal-muted); margin-top: 3px; }
.cms-row-action { border: 1px solid #bdd0c2; background: #fff; border-radius: 9px; padding: 7px 10px; color: var(--portal-primary); font-weight: 800; cursor: pointer; }
.cms-status { display: inline-flex; align-items: center; padding: 5px 8px; border-radius: 999px; background: #eef3ef; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.cms-status.published { background: #daf2e2; color: #155d39; }
.cms-status.review { background: var(--portal-warning); color: #7c5812; }
.cms-status.draft { background: #edf0f2; color: #5d6870; }
.cms-progress-row { display: grid; grid-template-columns: 160px 1fr 46px; gap: 12px; align-items: center; margin: 13px 0; }
.cms-progress-track { height: 9px; border-radius: 999px; background: #e7ece8; overflow: hidden; }
.cms-progress-track i { display: block; height: 100%; background: var(--portal-primary); border-radius: inherit; }
.audit-dashboard-list { display: grid; gap: 9px; }
.audit-dashboard-item { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 13px; border: 1px solid var(--portal-line); border-radius: 13px; }
.audit-dashboard-item small { color: var(--portal-muted); }

.cms-editor-dialog { width: min(920px, calc(100vw - 28px)); max-height: calc(100vh - 28px); border: 0; border-radius: 22px; padding: 0; box-shadow: var(--portal-shadow); }
.cms-editor-dialog::backdrop { background: rgba(11,29,20,.66); backdrop-filter: blur(3px); }
.cms-editor-dialog form { padding: 26px; }
.cms-editor-heading { display: flex; justify-content: space-between; gap: 20px; padding-right: 32px; margin-bottom: 20px; }
.cms-editor-heading h2 { margin: 4px 0 6px; }
.cms-editor-heading p { margin: 0; color: var(--portal-muted); }
.cms-editor-status { align-self: flex-start; padding: 7px 10px; background: var(--portal-soft); border-radius: 999px; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.cms-editor-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; max-height: calc(100vh - 250px); overflow-y: auto; padding-right: 4px; }
.cms-field.full { grid-column: 1 / -1; }
.cms-editor-fields textarea { min-height: 112px; resize: vertical; line-height: 1.5; }
.cms-check { display: flex; align-items: center; gap: 9px; padding-top: 23px; }
.cms-check input { width: auto; }
.cms-editor-actions { display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; align-items: center; padding-top: 20px; margin-top: 18px; border-top: 1px solid var(--portal-line); }
.button-danger { background: #fff0ef; border: 1px solid #e2b1ad; color: var(--portal-danger); }

@media (max-width: 1100px) {
  .portal-layout { grid-template-columns: 230px minmax(0,1fr); }
  .portal-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ranking-dashboard-layout { grid-template-columns: 1fr; }
  .culture-detail-card { position: static; max-height: none; }
}

@media (max-width: 780px) {
  body.portal-mode { overflow: auto; }
  .portal-layout { display: block; }
  .portal-sidebar { position: relative; width: 100%; height: auto; padding: 14px; gap: 12px; }
  .portal-user-card, .admin-identity { display: none; }
  .portal-nav { grid-auto-flow: column; grid-auto-columns: minmax(150px,1fr); overflow-x: auto; padding-bottom: 4px; }
  .portal-nav button { white-space: nowrap; }
  .portal-sidebar-footer { display: none; }
  .portal-content { height: auto; padding: 20px 14px 45px; overflow: visible; }
  .portal-topbar, .portal-section-intro, .cms-toolbar, .portal-card-heading { display: grid; }
  .portal-top-actions { justify-content: start; }
  .portal-metrics, .portal-grid, .portal-grid-main { grid-template-columns: 1fr; }
  .quick-action-grid { grid-template-columns: 1fr 1fr; }
  .ranking-dashboard-layout { display: block; }
  .culture-detail-card { margin-top: 14px; }
  .portal-select { min-width: 0; width: 100%; }
  .cms-editor-fields { grid-template-columns: 1fr; max-height: none; }
  .cms-field.full { grid-column: auto; }
  .cms-editor-dialog { max-height: 96vh; }
  .cms-editor-dialog form { padding: 20px 15px; }
  .cms-editor-actions { grid-template-columns: 1fr 1fr; }
  .cms-editor-actions span { display: none; }
}

@media (max-width: 520px) {
  .portal-top-actions .button { width: 100%; }
  .quick-action-grid { grid-template-columns: 1fr; }
  .portal-metrics { grid-template-columns: 1fr 1fr; }
  .portal-metric strong { font-size: 22px; }
  .diagnostic-dashboard-item { grid-template-columns: 1fr; }
  .diagnostic-score { justify-self: start; }
  .culture-data-grid { grid-template-columns: 1fr 1fr; }
  .cms-editor-actions { grid-template-columns: 1fr; }
}

/* Portal v4.1 — área Premium, Biblioteca e ações mobile */
.portal-mobile-logout { display: none; }
.premium-page-badge { align-self: center; background: #d9f4df; color: #155e39; }
.premium-module-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 18px; }
.premium-module-card { min-height: 210px; display: flex; flex-direction: column; gap: 10px; padding: 20px; border: 1px solid var(--portal-line); border-radius: 18px; background: var(--portal-surface); box-shadow: 0 8px 24px rgba(24,49,38,.05); }
.premium-module-card > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 15px; background: var(--portal-soft); font-size: 25px; }
.premium-module-card h3 { margin: 3px 0 0; }
.premium-module-card p { flex: 1; margin: 0; color: var(--portal-muted); line-height: 1.55; }
.premium-module-card .module-access { align-self: flex-start; padding: 5px 8px; border-radius: 999px; background: #edf3ee; color: #52645a; font-size: 10px; font-weight: 900; text-transform: uppercase; }
.premium-module-card .module-access.active { background: #daf2e2; color: #155d39; }
.premium-module-card .module-access.locked { background: #fff1dc; color: #7c5812; }
.premium-module-card button { width: 100%; }
.premium-upgrade-card { background: linear-gradient(135deg,#173e2b,#26764b); color: #fff; }
.premium-upgrade-card h2 { margin: 4px 0 8px; }
.premium-upgrade-card p { color: rgba(255,255,255,.75); }
.premium-upgrade-plans { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.premium-upgrade-plan { padding: 16px; border: 1px solid rgba(255,255,255,.18); border-radius: 15px; background: rgba(255,255,255,.08); }
.premium-upgrade-plan strong, .premium-upgrade-plan small { display: block; }
.premium-upgrade-plan strong { margin-bottom: 4px; font-size: 18px; }
.premium-upgrade-plan small { min-height: 35px; color: rgba(255,255,255,.7); }
.premium-upgrade-plan .button { margin-top: 12px; }
.library-dashboard-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.library-dashboard-card { min-width: 0; display: flex; flex-direction: column; gap: 10px; padding: 20px; border: 1px solid var(--portal-line); border-radius: 18px; background: var(--portal-surface); box-shadow: 0 8px 24px rgba(24,49,38,.05); }
.library-dashboard-card > span { font-size: 30px; }
.library-dashboard-card h3 { margin: 0; }
.library-dashboard-card p { flex: 1; margin: 0; color: var(--portal-muted); line-height: 1.55; }
.library-dashboard-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.library-dashboard-meta span { padding: 5px 8px; border-radius: 999px; background: #eff4ef; color: #40564a; font-size: 10px; font-weight: 850; }
.library-dashboard-card button { width: 100%; }
.library-dialog { width: min(780px, calc(100% - 28px)); max-height: calc(100vh - 28px); overflow-y: auto; }
.library-dialog-heading { padding-bottom: 12px; }
.library-dialog-body { padding: 0 30px 8px; color: #405249; line-height: 1.75; }
.library-dialog-body p { margin: 0 0 14px; white-space: pre-line; }
.library-dialog-links { display: grid; gap: 9px; padding: 10px 30px 30px; }
.library-resource-link { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 15px; border: 1px solid var(--portal-line); border-radius: 13px; color: var(--portal-primary); background: #f8fbf8; font-weight: 850; text-decoration: none; }
.library-resource-link small { display: block; color: var(--portal-muted); font-weight: 600; }
.library-resource-link:hover { border-color: #8fbca0; background: var(--portal-soft); }
.cms-link-help { grid-column: 1 / -1; margin: -5px 0 0; color: var(--portal-muted); font-size: 11px; }

@media (max-width: 1100px) {
  .premium-module-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .library-dashboard-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 780px) {
  .portal-mobile-logout { display: inline-flex; }
  .premium-module-grid, .library-dashboard-grid { grid-template-columns: 1fr; }
  .premium-upgrade-plans { grid-template-columns: 1fr; }
  .library-dialog-body { padding-left: 20px; padding-right: 20px; }
  .library-dialog-links { padding-left: 20px; padding-right: 20px; }
}


/* v4.2 — biblioteca por cultura e calculadora interna */
.library-filter-bar{
  display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:0 0 18px;padding:16px;
  border:1px solid var(--portal-border,#dfe7df);border-radius:18px;background:#fff;
}
.library-filter-bar label{display:grid;gap:6px;min-width:210px;flex:1}
.library-filter-bar label span{font-size:12px;font-weight:800;color:#5e6b61;text-transform:uppercase;letter-spacing:.04em}
.library-filter-bar select,.library-filter-bar input{
  min-height:44px;border:1px solid #d5dfd7;border-radius:12px;padding:0 12px;background:#fff;color:#173c2a
}
.library-filter-summary{align-self:center;color:#66736a;font-size:13px;font-weight:700}
.library-dashboard-card .library-crop-label{font-size:12px;font-weight:850;color:#23704a}
.app-calculator-mount{margin-bottom:20px}
.app-calculator-mount:empty{display:none}
.app-calculator-mount .fertilizer-workspace{margin:0}
.app-calculator-mount .fertilizer-selector-card,
.app-calculator-mount .fertilizer-calculator-card{box-shadow:none}
.calculator-support-grid{margin-top:20px}
.generic-rule-form .field[data-rule-field-wrap].hidden{display:none}
.generic-source-limit{padding:24px;border:1px dashed #c9d7cc;border-radius:18px;background:#f7faf7}
.generic-source-limit h3{margin:8px 0}
.generic-source-limit p{color:#526158;line-height:1.65}
.rule-scope-note{display:flex;gap:10px;padding:12px 14px;border-radius:14px;background:#f2f7f3;color:#415249;margin-bottom:16px}
.rule-classification-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:14px 0}
.rule-classification-grid>div{padding:12px;border-radius:14px;background:#f4f7f4}
.rule-classification-grid span{display:block;font-size:11px;text-transform:uppercase;color:#6c776f;font-weight:800}
.rule-classification-grid strong{display:block;margin-top:4px;color:#173c2a}
.rule-result-notes{display:grid;gap:8px;margin-top:14px}
.rule-result-notes p{margin:0;padding:10px 12px;border-left:3px solid #68a77d;background:#f7faf7;color:#4d5c52}
.professional-selection-notice{padding:14px 16px;border-radius:14px;background:#fff8e7;border:1px solid #f1d99d;color:#654d15;margin-top:14px}
@media(max-width:720px){
  .library-filter-bar{display:grid}
  .library-filter-bar label{min-width:0}
  .app-calculator-mount .fertilizer-workspace{display:grid}
}

/* v4.3 — diagnóstico dentro da área autenticada */
.app-diagnostic-mount{margin-top:20px}
.app-diagnostic-mount:empty{display:none}
.app-diagnostic-mount #diagnostico,
.app-diagnostic-mount #resultado{padding:0;background:transparent}
.app-diagnostic-mount #diagnostico .container,
.app-diagnostic-mount #resultado .container{width:100%;max-width:none;padding:0}
.app-diagnostic-mount .diagnostic-layout{grid-template-columns:minmax(250px,.72fr) minmax(0,1.45fr);gap:18px}
.app-diagnostic-mount .diagnostic-aside,
.app-diagnostic-mount .diagnostic-card,
.app-diagnostic-mount .result-overview,
.app-diagnostic-mount .ranking-list>*,
.app-diagnostic-mount .premium-unlock{box-shadow:none}
.app-diagnostic-mount .diagnostic-aside{border:1px solid var(--portal-line);border-radius:20px;background:#f6faf6;padding:22px}
.app-diagnostic-mount .diagnostic-card{border:1px solid var(--portal-line)}
.app-diagnostic-mount .results-section{margin-top:22px}
.app-diagnostic-mount .result-header{align-items:flex-start}
.app-diagnostic-mount .premium-unlock [data-scroll="#planos"]{display:none}
.diagnostic-workbench-portal{display:block}
@media(max-width:900px){
  .app-diagnostic-mount .diagnostic-layout{grid-template-columns:1fr}
  .app-diagnostic-mount .diagnostic-aside{display:none}
}
@media(max-width:620px){
  .app-diagnostic-mount .diagnostic-card{border-radius:16px}
  .app-diagnostic-mount .wizard-actions{display:grid;grid-template-columns:1fr}
  .app-diagnostic-mount .wizard-actions .button{width:100%}
  .app-diagnostic-mount .result-header{display:grid;gap:14px}
  .app-diagnostic-mount .result-actions{width:100%;display:grid;grid-template-columns:1fr}
  .app-diagnostic-mount .result-actions .button{width:100%}
}


/* v4.3 — catálogo fitossanitário de consulta segura */
.library-pest-list{display:grid;gap:12px;margin-top:18px}
.library-pest-entry{padding:16px;border:1px solid var(--portal-line,#dfe7df);border-radius:16px;background:#fbfdfb}
.library-pest-entry h4{margin:10px 0 2px;color:#173c2a;font-size:17px}
.library-pest-entry>em{display:block;color:#67756c;font-size:13px}
.library-pest-tags{display:flex;flex-wrap:wrap;gap:6px}
.library-pest-tags span{padding:5px 8px;border-radius:999px;background:#eaf4ec;color:#286044;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.03em}
.library-pest-details{display:grid;gap:9px;margin:14px 0 0}
.library-pest-details>div{padding:10px 12px;border-radius:12px;background:#f2f7f3}
.library-pest-details dt{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:#496255}
.library-pest-details dd{margin:4px 0 0;color:#415249;line-height:1.55}
.library-pest-source{margin:12px 0 0!important;padding-top:10px;border-top:1px solid #e1e8e2;color:#6a776e;font-size:12px}
.library-safety-note{margin:18px 0;padding:14px 16px;border:1px solid #efd99f;border-radius:14px;background:#fff9e9;color:#604c1d}
.library-safety-note p{margin:5px 0 0!important}
.library-crop-summary{display:flex;align-items:center;gap:12px;margin:18px 0;padding:14px 16px;border-radius:15px;background:linear-gradient(135deg,#edf7ef,#f8fbf8);border:1px solid #dbe8dd}
.library-crop-summary>span{font-size:34px}
.library-crop-summary strong,.library-crop-summary small{display:block}
.library-crop-summary strong{color:#173c2a;font-size:18px}
.library-crop-summary small{margin-top:2px;color:#69766d}
.library-pest-group{margin:22px 0}
.library-pest-group>h3{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;color:#173c2a}
.library-pest-group>h3 span{min-width:30px;height:30px;padding:0 8px;display:grid;place-items:center;border-radius:999px;background:#e7f2e9;color:#286044;font-size:12px}


/* v4.4 — catálogo informativo de ingredientes ativos */
.library-catalog-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr) auto;gap:12px;align-items:end;margin:18px 0 8px;padding:14px;border:1px solid #dce7de;border-radius:16px;background:#f7faf7}
.library-catalog-tools label{display:grid;gap:6px}.library-catalog-tools label>span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#4e6558}
.library-catalog-tools input,.library-catalog-tools select{width:100%;min-height:44px;border:1px solid #cfdcd2;border-radius:12px;padding:0 12px;background:#fff;color:#243c2f;font:inherit}
.library-catalog-tools strong{min-height:44px;display:flex;align-items:center;justify-content:center;padding:0 12px;border-radius:12px;background:#e8f2ea;color:#275f42;font-size:12px;white-space:nowrap}
.library-ingredient-panel{margin:14px 0 4px;border:1px solid #d8e5da;border-radius:14px;background:#fff;overflow:hidden}
.library-ingredient-panel summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:12px 14px;background:#f1f7f2;color:#1d5137;font-weight:900;list-style:none}
.library-ingredient-panel summary::-webkit-details-marker{display:none}.library-ingredient-panel summary b{display:grid;place-items:center;min-width:27px;height:27px;padding:0 7px;border-radius:999px;background:#dcecdf;font-size:11px}
.library-ingredient-grid{display:flex;flex-wrap:wrap;gap:8px;padding:14px 14px 8px}
.library-ingredient-chip{display:flex;align-items:center;gap:8px;max-width:100%;padding:8px 10px;border:1px solid #d9e3da;border-radius:12px;background:#fbfdfb}
.library-ingredient-chip>span{font-size:13px;font-weight:800;color:#293f32;overflow-wrap:anywhere}.library-ingredient-chip small{padding:4px 6px;border-radius:999px;background:#fff0dc;color:#845319;font-size:9px;font-weight:900;text-transform:uppercase;white-space:nowrap}.library-ingredient-chip small.is-biological{background:#e3f4e8;color:#24613d}
.library-ingredient-panel>p{margin:0!important;padding:4px 14px 13px;color:#6b766f;font-size:11px;line-height:1.45}
.library-ingredient-empty{display:grid;gap:3px;margin:14px 0;padding:11px 13px;border:1px dashed #d8e1da;border-radius:13px;color:#69766e;background:#fafcfa}.library-ingredient-empty strong{font-size:12px;color:#4b5f53}.library-ingredient-empty span{font-size:12px}
.ingredient-count-tag{background:#f5eadb!important;color:#785522!important}.library-pest-source a{margin-left:6px;color:#246949;font-weight:850;text-decoration:none}.library-pest-source a:hover{text-decoration:underline}
.library-pest-entry[hidden],.library-pest-group[hidden]{display:none!important}
@media(max-width:680px){.library-catalog-tools{grid-template-columns:1fr}.library-catalog-tools strong{justify-content:flex-start}.library-ingredient-chip{width:100%;justify-content:space-between}.library-ingredient-panel summary{font-size:13px}}

/* v4.5 — diagnóstico autenticado independente e biblioteca sem emojis */
.library-section-tabs{
  display:flex;gap:8px;overflow-x:auto;padding:4px;margin:-2px 0 14px;
  scrollbar-width:thin;
}
.library-section-tabs button{
  flex:0 0 auto;min-height:42px;padding:0 14px;border:1px solid var(--portal-line);
  border-radius:12px;background:#fff;color:#4b5f53;font:inherit;font-size:12px;font-weight:850;cursor:pointer;
}
.library-section-tabs button:hover{border-color:#9ebca7;background:#f6faf6}
.library-section-tabs button.active{border-color:#2f7a50;background:#e9f4ec;color:#1c5b39;box-shadow:inset 0 0 0 1px #2f7a50}
.library-filter-controls{display:flex;align-items:end;gap:14px;flex-wrap:wrap}
.library-filter-controls label{display:grid;gap:6px;min-width:230px;flex:0 1 360px}
.library-filter-controls label span{font-size:11px;font-weight:900;letter-spacing:.05em;text-transform:uppercase;color:#5d6e63}
.library-filter-controls select{width:100%;min-height:44px;padding:0 12px;border:1px solid #cedbd0;border-radius:12px;background:#fff;color:#243c2f;font:inherit}
.library-filter-controls .library-filter-summary{padding-bottom:13px}
.library-dashboard-card{position:relative}
.library-dashboard-card>.library-crop-label{margin:0;padding:0;color:#1f6742;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.defensive-library-card{border-color:#c8dccd;background:linear-gradient(180deg,#fbfefb,#f5faf6)}

.defensive-catalog-dialog{width:min(940px,calc(100% - 24px));max-height:calc(100vh - 24px);overflow:auto}
.defensive-catalog-heading{padding-bottom:8px}
.defensive-catalog-body{padding:0 30px 30px}
.defensive-warning{padding:15px 17px;border:1px solid #e9d49d;border-radius:15px;background:#fff9e8;color:#5d491c}
.defensive-warning strong{display:block;margin-bottom:4px}
.defensive-warning p{margin:0;line-height:1.55}
.defensive-catalog-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.38fr) auto;gap:12px;align-items:end;margin:16px 0}
.defensive-catalog-tools label{display:grid;gap:6px}
.defensive-catalog-tools label span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:#52665a}
.defensive-catalog-tools input,.defensive-catalog-tools select{width:100%;min-height:44px;border:1px solid #ccd9cf;border-radius:12px;padding:0 12px;background:#fff;color:#263c30;font:inherit}
.defensive-catalog-tools>strong{min-height:44px;display:flex;align-items:center;justify-content:center;padding:0 12px;border-radius:12px;background:#e9f3eb;color:#245e3f;font-size:12px;white-space:nowrap}
.defensive-target-list{display:grid;gap:13px}
.defensive-target-card{padding:18px;border:1px solid #dbe5dd;border-radius:17px;background:#fbfdfb}
.defensive-target-card[hidden]{display:none}
.defensive-target-tags{display:flex;gap:6px;flex-wrap:wrap}
.defensive-target-tags span{padding:5px 8px;border-radius:999px;background:#e8f2ea;color:#285d41;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.defensive-target-card h3{margin:10px 0 2px;color:#173d2a;font-size:18px}
.defensive-target-card>em{display:block;color:#68766d;font-size:13px}
.defensive-ingredient-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.defensive-ingredient{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid #dce5de;border-radius:12px;background:#fff}
.defensive-ingredient strong{min-width:0;color:#293e32;font-size:13px;overflow-wrap:anywhere}
.defensive-ingredient span{flex:0 0 auto;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:900;text-transform:uppercase}
.defensive-ingredient span.chemical{background:#fff0dc;color:#845319}
.defensive-ingredient span.biological{background:#e3f4e8;color:#24613d}
.defensive-source{margin:13px 0 0;padding-top:11px;border-top:1px solid #e2e8e3;color:#66746b;font-size:12px;line-height:1.5}
.defensive-source span{display:block;margin-top:3px}

.portal-diagnostic-workspace{margin-top:20px;padding:24px}
.portal-diagnostic-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--portal-line)}
.portal-diagnostic-heading h3{margin:5px 0 6px;font-size:25px;color:#173d2a}
.portal-diagnostic-heading p{margin:0;color:var(--portal-muted)}
.portal-diagnostic-progress{width:min(240px,38%);display:grid;gap:8px;color:#496056;font-size:12px;font-weight:850;text-align:right}
.portal-diagnostic-progress>div{height:7px;border-radius:999px;background:#e4ece6;overflow:hidden}
.portal-diagnostic-progress i{display:block;width:33.333%;height:100%;border-radius:inherit;background:#2e8053;transition:width .2s ease}
.portal-diagnostic-form{display:grid;gap:20px;padding-top:22px}
.portal-diagnostic-form section{display:grid;gap:17px}
.portal-diagnostic-form label{display:grid;gap:7px;color:#344a3e;font-weight:800}
.portal-diagnostic-form label>span,.portal-diagnostic-form legend{font-size:12px;font-weight:900;color:#52655a}
.portal-diagnostic-form input:not([type=radio]):not([type=checkbox]),.portal-diagnostic-form select{width:100%;min-height:47px;padding:0 13px;border:1px solid #cbd8ce;border-radius:12px;background:#fff;color:#22392d;font:inherit}
.portal-diagnostic-form fieldset{min-width:0;margin:0;padding:15px;border:1px solid #dae4dc;border-radius:15px}
.portal-diagnostic-form legend{padding:0 6px}
.portal-form-grid{display:grid;gap:13px}.portal-form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.portal-choice-row{display:flex;gap:8px;flex-wrap:wrap}.portal-choice-row label,.portal-option-grid label{cursor:pointer}
.portal-choice-row label input,.portal-option-grid label input{position:absolute;opacity:0;pointer-events:none}
.portal-choice-row label span,.portal-option-grid label span{display:flex;align-items:center;min-height:42px;padding:9px 12px;border:1px solid #cfdbd1;border-radius:11px;background:#fff;color:#41554a}
.portal-choice-row label input:checked+span,.portal-option-grid label input:checked+span{border-color:#2f7a50;background:#e9f4ec;color:#1b5a38;box-shadow:inset 0 0 0 1px #2f7a50}
.portal-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.portal-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:flex-start;gap:9px!important;padding:12px 13px;border:1px solid #d8e2da;border-radius:12px;background:#f8fbf8}
.portal-check input{margin-top:2px}
.portal-diagnostic-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:3px}
.portal-diagnostic-result{padding-top:22px}
.portal-diagnostic-result-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px;border-radius:16px;background:#edf7ef}
.portal-diagnostic-result-heading h3{margin:4px 0;color:#173d2a}.portal-diagnostic-result-heading p{margin:0;color:#53665b}
.portal-diagnostic-top-score{display:grid;text-align:center}.portal-diagnostic-top-score strong{color:#1e6842;font-size:30px}.portal-diagnostic-top-score span{font-size:10px;font-weight:850;text-transform:uppercase;color:#617269}
.portal-diagnostic-ranking{display:grid;gap:8px;margin-top:14px}
.portal-diagnostic-ranking article{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid #dde6df;border-radius:13px;background:#fff}
.portal-diagnostic-ranking article>span{font-weight:900;color:#2d6e4b}.portal-diagnostic-ranking strong,.portal-diagnostic-ranking small{display:block}.portal-diagnostic-ranking small{margin-top:3px;color:#6b786f}.portal-diagnostic-ranking b{color:#1f6843}
.portal-diagnostic-result-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}
.portal-diagnostic-locked{margin-top:20px;padding:24px}.portal-diagnostic-locked h3{margin:6px 0}.portal-diagnostic-locked p{color:var(--portal-muted)}

@media(max-width:720px){
  .library-filter-controls{display:grid}.library-filter-controls label{min-width:0;width:100%}.library-filter-controls .library-filter-summary{padding:0}
  .defensive-catalog-body{padding:0 18px 22px}.defensive-catalog-tools{grid-template-columns:1fr}.defensive-catalog-tools>strong{justify-content:flex-start}
  .defensive-ingredient-list{grid-template-columns:1fr}.defensive-ingredient{align-items:flex-start;flex-direction:column}
  .portal-diagnostic-workspace{padding:18px}.portal-diagnostic-heading{display:grid}.portal-diagnostic-progress{width:100%;text-align:left}
  .portal-form-grid.two,.portal-form-grid.three,.portal-option-grid{grid-template-columns:1fr}
  .portal-diagnostic-actions,.portal-diagnostic-result-actions{display:grid;grid-template-columns:1fr}.portal-diagnostic-actions .button,.portal-diagnostic-result-actions .button{width:100%}
  .portal-diagnostic-result-heading{align-items:flex-start}.portal-diagnostic-ranking article{grid-template-columns:34px 1fr auto;padding:11px}
}

/* v4.7 — Biblioteca integralmente Premium, defensivos em módulo próprio */
.premium-content-gate{
  grid-column:1/-1;
  max-width:720px;
  margin:18px auto;
  padding:34px;
  text-align:center;
  border:1px solid #cbdccc;
  border-radius:22px;
  background:linear-gradient(145deg,#f8fcf8,#edf6ef);
  box-shadow:0 18px 45px rgba(26,70,45,.09);
}
.premium-content-gate .premium-gate-label{
  display:inline-flex;
  margin-bottom:12px;
  padding:6px 10px;
  border-radius:999px;
  background:#183f2b;
  color:#fff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.premium-content-gate h3{margin:0 0 8px;color:#163b29;font-size:24px}
.premium-content-gate p{max-width:590px;margin:0 auto 20px;color:#5e7065;line-height:1.6}
.defensive-library-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
  padding:14px 16px;
  border:1px solid #d6e2d8;
  border-radius:15px;
  background:#f6faf7;
}
.defensive-library-summary strong{color:#1d5338}
.defensive-library-summary span{color:#66756c;font-size:12px;text-align:right}
@media(max-width:680px){
  .premium-content-gate{padding:25px 18px}
  .premium-content-gate h3{font-size:21px}
  .defensive-library-summary{align-items:flex-start;flex-direction:column}
  .defensive-library-summary span{text-align:left}
}


/* v4.8 — refinamentos finais de ranking, biblioteca, navegação mobile e diagnóstico */
.portal-mobile-menu{display:none}

.culture-section-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.culture-section-row{min-width:0;padding:12px 13px;border:1px solid #dfe8e1;border-radius:13px;background:#f7faf7}
.culture-section-row-wide{grid-column:1/-1}
.culture-section-row>strong{display:block;margin-bottom:5px;color:#52665a;font-size:10px;font-weight:900;letter-spacing:.055em;text-transform:uppercase}
.culture-section-row>span{display:block;color:#203b2d;font-size:14px;font-weight:800;line-height:1.45;overflow-wrap:anywhere}
.culture-section-row .tag-list{margin-top:3px}
.culture-nested-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.culture-nested-grid .culture-section-row{background:#fff}
.culture-empty-note{margin:0!important;padding:11px 13px;border:1px dashed #d9e3db;border-radius:12px;background:#fafcfa;color:#728078!important;font-size:13px}

#appLibraryToolbar{display:block;margin-bottom:18px;padding:0;border:0;background:transparent}
.library-toolbar-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr);gap:14px;align-items:stretch}
.library-toolbar-section,.library-toolbar-filters{padding:16px;border:1px solid var(--portal-line);border-radius:17px;background:#fff;box-shadow:0 6px 18px rgba(24,49,38,.04)}
.library-toolbar-title{display:block;margin-bottom:9px;color:#5d6e63;font-size:10px;font-weight:900;letter-spacing:.065em;text-transform:uppercase}
.library-section-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:0;overflow:visible}
.library-section-tabs button{width:100%;min-height:46px;padding:8px 10px;white-space:normal;line-height:1.25;text-align:center}
.library-section-mobile{display:none}
.library-toolbar-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
.library-toolbar-filters label{display:grid;gap:6px;min-width:0}
.library-toolbar-filters label span,.library-section-mobile span{color:#5d6e63;font-size:10px;font-weight:900;letter-spacing:.065em;text-transform:uppercase}
.library-toolbar-filters select,.library-section-mobile select{width:100%;min-height:46px;padding:0 12px;border:1px solid #cedbd0;border-radius:12px;background:#fff;color:#243c2f;font:inherit}
.library-count-badge{align-self:end;min-height:46px;display:flex;align-items:center;justify-content:center;padding:0 13px;border-radius:12px;background:#eaf4ed;color:#205d3c;font-size:12px;font-weight:900;white-space:nowrap}

.portal-form-grid[hidden],#pdiagSoilFields[hidden]{display:none!important}

@media(max-width:780px){
  #appView .portal-sidebar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:12px 14px}
  #appView .portal-brand{padding:0;font-size:16px}
  #appView .portal-brand span{width:36px;height:36px}
  #appView .portal-nav{display:none}
  #appView .portal-mobile-menu{display:grid;gap:4px;min-width:0}
  #appView .portal-mobile-menu>span{color:rgba(255,255,255,.68);font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
  #appView .portal-mobile-menu select{width:100%;min-width:0;min-height:42px;padding:0 34px 0 11px;border:1px solid rgba(255,255,255,.18);border-radius:11px;background:#1d5039;color:#fff;font:inherit;font-size:13px;font-weight:800}
  .library-toolbar-layout{grid-template-columns:1fr}
  .library-section-tabs{display:none}
  .library-section-mobile{display:grid;gap:6px}
  .library-toolbar-title{display:none}
  .library-toolbar-filters{grid-template-columns:1fr auto}
  .culture-section-content,.culture-nested-grid{grid-template-columns:1fr}
  .culture-section-row-wide{grid-column:auto}
}

@media(max-width:520px){
  #appView .portal-sidebar{grid-template-columns:1fr}
  #appView .portal-brand{justify-content:center}
  .library-toolbar-filters{grid-template-columns:1fr}
  .library-count-badge{justify-content:flex-start}
}
