:root { font-family: Arial, Helvetica, sans-serif; color: #1f2937; background:#f3f4f6; }
* { box-sizing: border-box; }
body { margin:0; min-height:100vh; }
.hidden { display:none !important; }
.screen.centered { min-height:100vh; display:grid; place-items:center; padding:20px; }
.card { background:#fff; border:1px solid #d1d5db; border-radius:8px; padding:20px; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.login-card { width:min(420px, 100%); display:flex; flex-direction:column; gap:10px; }
.login-card h1 { margin:0; font-size:25px; }
.login-card p { margin-top:0; color:#6b7280; }
input, select, textarea, button { font:inherit; }
input, select, textarea { width:100%; padding:10px; border:1px solid #9ca3af; border-radius:5px; }
textarea { min-height:80px; resize:vertical; }
button { cursor:pointer; }
.login-card button, .primary { background:#245b36; color:white; border:none; border-radius:5px; padding:11px 15px; }
.error { background:#fee2e2; color:#991b1b; padding:10px; border-radius:5px; }
#app-screen { min-height:100vh; display:flex; }
.sidebar { width:230px; background:#173d26; color:#fff; padding:18px 12px; display:flex; flex-direction:column; position:fixed; inset:0 auto 0 0; }
.brand { font-size:22px; font-weight:700; padding:10px 12px 22px; }
nav { display:flex; flex-direction:column; gap:5px; overflow-y:auto; padding-right:2px; }
.nav-group-label { margin:12px 10px 3px; color:#b7d0c0; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.nav-item, .logout { width:100%; text-align:left; border:none; background:transparent; color:#fff; padding:11px 12px; border-radius:5px; }
.nav-item:hover, .nav-item.active { background:#2f6b45; }
.logout { margin-top:auto; background:#812f2f; }
.main { margin-left:230px; width:calc(100% - 230px); }
.topbar { background:#fff; border-bottom:1px solid #d1d5db; padding:16px 24px; }
.topbar h2 { margin:0 0 5px; }
#user-badge { font-size:13px; color:#4b5563; }
#content { padding:24px; }
.grid { display:grid; gap:16px; }
.cards { grid-template-columns:repeat(4, minmax(0,1fr)); margin-bottom:18px; }
.stat span { display:block; color:#6b7280; margin-bottom:8px; }
.stat strong { font-size:28px; }
.toolbar { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:15px; }
.toolbar h3 { margin:0; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; background:white; }
th, td { padding:11px; border-bottom:1px solid #e5e7eb; text-align:left; }
th { background:#f9fafb; }
.actions { display:flex; gap:6px; }
.actions button { border:1px solid #9ca3af; background:#fff; border-radius:4px; padding:6px 8px; }
.actions .danger { color:#991b1b; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.form-grid .full { grid-column:1/-1; }
.modal { position:fixed; inset:0; background:rgba(0,0,0,.45); display:grid; place-items:center; padding:20px; z-index:5; }
.modal .card { width:min(640px,100%); max-height:90vh; overflow:auto; }
.modal-footer { display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }
.secondary { background:#fff; border:1px solid #9ca3af; padding:10px 14px; border-radius:5px; }
.empty { color:#6b7280; padding:25px; text-align:center; }
.notice { background:#fff7d6; border:1px solid #e5c95a; padding:12px; border-radius:6px; margin-bottom:15px; }
@media (max-width:900px) { .cards{grid-template-columns:repeat(2,1fr)} .sidebar{width:190px}.main{margin-left:190px;width:calc(100% - 190px)} }
.muted { color:#6b7280; margin:5px 0 0; font-size:14px; }
.cascade-list { display:flex; flex-direction:column; gap:12px; }
.cascade-card { background:#fff; border:1px solid #d1d5db; border-radius:8px; overflow:hidden; }
.cascade-card summary { list-style:none; cursor:pointer; padding:14px 16px; display:flex; justify-content:space-between; align-items:center; gap:15px; background:#f9fafb; }
.cascade-card summary::-webkit-details-marker { display:none; }
.cascade-card summary > div:first-child { display:flex; flex-direction:column; gap:4px; }
.cascade-card summary span { color:#6b7280; font-size:13px; }
.cascade-body { padding:14px 18px 18px 30px; border-top:1px solid #e5e7eb; display:flex; flex-direction:column; gap:10px; }
.farm-card { margin-left:4px; }
.farm-card summary { background:#fff; }
.summary-actions { display:flex; align-items:center; gap:8px; }
.summary-actions button, .small-add { border:1px solid #9ca3af; background:#fff; border-radius:4px; padding:6px 9px; }
.summary-actions .danger, .crop-row .danger { color:#991b1b; }
.small-add { align-self:flex-start; color:#245b36; font-weight:600; }
.crop-list { border:1px solid #e5e7eb; border-radius:6px; overflow:hidden; }
.crop-row { display:grid; grid-template-columns:1.2fr 1fr auto; align-items:center; gap:12px; padding:11px 12px; border-bottom:1px solid #e5e7eb; }
.crop-row:last-child { border-bottom:none; }
.crop-row > div:first-child { display:flex; flex-direction:column; gap:3px; }
.crop-row span, .crop-row > div:nth-child(2) { color:#6b7280; font-size:13px; }
.empty-inline { margin:4px 0; color:#6b7280; }

.cascade-selector-card { max-width:760px; margin-bottom:18px; }
.cascade-selectors { display:grid; grid-template-columns:1fr; gap:14px; }
.cascade-selectors label { display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:700; color:#374151; }
.cascade-selectors select { min-height:42px; background:#fff; color:#374151; }
.cascade-selectors select:disabled { background:#f3f4f6; color:#9ca3af; }
.selected-record-card { max-width:1000px; }
.record-header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding-bottom:16px; border-bottom:1px solid #e5e7eb; }
.record-header h3 { margin:4px 0; }
.record-header p { margin:0; color:#6b7280; }
.record-label { font-size:12px; font-weight:700; color:#6b7280; }
.record-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding-top:18px; }
.record-grid section { border:1px solid #e5e7eb; border-radius:7px; padding:16px; }
.record-section-title { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:14px; }
dl { margin:0 0 14px; }
dl > div { display:grid; grid-template-columns:140px 1fr; gap:10px; padding:7px 0; border-bottom:1px solid #f0f0f0; }
dt { color:#6b7280; font-size:13px; }
dd { margin:0; font-weight:600; }
@media (max-width:800px) { .record-grid{grid-template-columns:1fr} }

.status { display:inline-block; padding:4px 8px; border-radius:12px; background:#e5e7eb; font-size:12px; font-weight:700; }
.status-aprovado { background:#dcfce7; color:#166534; }
.status-enviado { background:#dbeafe; color:#1e40af; }
.status-recusado, .status-cancelado { background:#fee2e2; color:#991b1b; }
.budget-modal .budget-form { width:min(1180px, 96vw); }
.budget-main-fields { margin-top:16px; }
.budget-items-heading { display:flex; justify-content:space-between; align-items:center; margin:22px 0 10px; }
.budget-items { border:1px solid #d1d5db; border-radius:6px; overflow:hidden; }
.budget-item-row { display:grid; grid-template-columns:minmax(220px,2fr) 90px 100px 125px 115px 125px 38px; gap:8px; align-items:center; padding:9px; border-bottom:1px solid #e5e7eb; }
.budget-item-row:last-child { border-bottom:none; }
.budget-item-row .line-total { text-align:right; font-size:13px; }
.budget-item-row .danger { border:1px solid #fca5a5; background:#fff; color:#991b1b; border-radius:4px; height:38px; }
.budget-totals { display:grid; grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(220px,1.2fr); gap:12px; align-items:end; margin:18px 0; }
.travel-cost-info { min-height:64px; border:1px solid var(--border); border-radius:12px; padding:10px 12px; display:flex; flex-direction:column; justify-content:center; background:var(--soft); }
.travel-cost-info span,.travel-cost-info small { color:var(--muted); }
.travel-cost-info strong { font-size:18px; }
.total-box { margin-left:auto; min-width:220px; background:#f0fdf4; border:1px solid #86efac; border-radius:7px; padding:13px 16px; text-align:right; }
.total-box span { display:block; color:#4b5563; font-size:13px; }
.total-box strong { display:block; margin-top:4px; font-size:23px; color:#166534; }
.budget-view { width:min(980px,96vw) !important; }
.budget-summary-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:18px 0; }
.budget-summary-grid > div { border:1px solid #e5e7eb; border-radius:6px; padding:12px; }
.budget-summary-grid span { display:block; color:#6b7280; font-size:12px; margin-bottom:4px; }
.budget-view-footer { display:flex; justify-content:space-between; gap:20px; align-items:flex-end; margin-top:18px; }
@media(max-width:1100px){.budget-item-row{grid-template-columns:1.6fr 75px 85px 105px 95px 110px 36px}.budget-summary-grid{grid-template-columns:repeat(2,1fr)}}
.record-tabs { display:flex; gap:8px; margin:18px 0; border-bottom:1px solid #d1d5db; }
.tab-button { border:none; background:transparent; padding:10px 14px; border-bottom:3px solid transparent; }
.tab-button.active { border-bottom-color:#245b36; color:#245b36; font-weight:700; }
.record-section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:12px 0; }
.request-price-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0; }
.request-price-grid > div { border:1px solid #d1d5db; border-radius:6px; padding:12px; background:#f9fafb; }
.request-price-grid span { display:block; color:#6b7280; font-size:12px; margin-bottom:6px; }
.request-price-grid strong { font-size:18px; }
@media(max-width:900px){.request-price-grid{grid-template-columns:repeat(2,1fr)}}
.history-list { display:grid; gap:10px; margin-top:12px; }
.history-item { display:flex; flex-direction:column; gap:5px; padding:13px 15px; border-left:4px solid #245b36; background:#f8faf8; border-radius:5px; }
.history-item span { color:#5f6b63; font-size:13px; }
.linked-documents { margin-top:16px; padding:14px; background:#f8faf8; }

.laboratory-tabs { margin-top: 12px; }
[data-lab-panel][hidden] { display: none; }
.method-help { padding: 14px 16px; margin: 12px 0 4px; background: #f7f8f7; border: 1px solid #dfe5df; border-radius: 10px; }
.method-help p { margin: 6px 0 0; }

/* Requerimentos: quantidades separadas por profundidade */
.request-analysis-header,
.request-analysis-row {
  display:grid;
  grid-template-columns:minmax(220px,2fr) 112px 112px 112px 128px 130px;
  gap:8px;
  align-items:center;
}
.request-analysis-header {
  padding:10px 9px;
  background:#f3f4f6;
  border:1px solid #e5e7eb;
  border-bottom:0;
  font-size:12px;
  font-weight:700;
  color:#374151;
}
.request-analysis-row { padding:9px; }
.request-analysis-row strong { text-align:right; }
.request-depth-totals { grid-template-columns:repeat(6,minmax(0,1fr)); }
@media(max-width:900px){
  .request-analysis-header { display:none; }
  .request-analysis-row { grid-template-columns:1fr 1fr; }
  .request-analysis-row input:first-child { grid-column:1/-1; }
  .request-analysis-row strong { text-align:left; }
  .request-depth-totals { grid-template-columns:repeat(2,1fr); }
}

/* Personalização visual Terra Nutrição Equilibrada */
:root {
  --terra-green:#4f8c55;
  --terra-green-dark:#3d7544;
  --terra-brown:#5b1f05;
  --terra-soft:#eef5ed;
}
.sidebar { background:var(--terra-green); width:245px; padding:10px 10px 18px; }
.main { margin-left:245px; width:calc(100% - 245px); }
.brand { height:82px; padding:0 8px 12px; display:flex; align-items:center; justify-content:center; border-bottom:1px solid rgba(255,255,255,.16); margin-bottom:8px; }
.brand img { width:100%; max-width:218px; max-height:68px; object-fit:contain; }
.nav-item, .logout { padding:11px 14px; border-radius:4px; }
.nav-item:hover, .nav-item.active { background:rgba(39,91,46,.55); box-shadow:inset 4px 0 0 #fff; }
.nav-group-label { color:#fff; font-size:13px; margin-top:18px; }
.logout { background:rgba(91,31,5,.75); }
.topbar { min-height:72px; display:flex; align-items:center; }
.topbar h2 { color:#26352a; }
#content { background:#f5f7f5; min-height:calc(100vh - 72px); }
.card { border-color:#dde5dd; border-radius:10px; box-shadow:0 3px 12px rgba(35,67,40,.06); }
.primary, .login-card button { background:var(--terra-green-dark); }

.dashboard-filter-bar {
  background:var(--terra-brown);
  color:#fff;
  padding:18px 20px;
  border-radius:8px;
  margin-bottom:20px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  align-items:center;
}
.dashboard-filter-bar label { display:grid; grid-template-columns:auto minmax(130px,1fr); align-items:center; gap:12px; font-weight:700; }
.dashboard-filter-bar label span { white-space:nowrap; }
.dashboard-filter-bar select { background:#fff; border:none; min-height:42px; font-weight:700; color:#68706b; padding:0 38px 0 16px; }
.dashboard-filter-bar select:disabled { opacity:.7; }
.dashboard-cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
.dashboard-stat { position:relative; overflow:hidden; border-top:4px solid var(--terra-green); min-height:128px; }
.dashboard-stat::after { content:''; position:absolute; right:-22px; bottom:-28px; width:90px; height:90px; border-radius:50%; background:var(--terra-soft); }
.dashboard-stat span { color:#4b5e4e; font-weight:600; max-width:80%; }
.dashboard-stat strong { color:var(--terra-green-dark); position:relative; z-index:1; }
.dashboard-summary h3 { margin-top:0; }
.dashboard-summary p { margin-bottom:0; color:#68706b; }
@media (max-width:1050px) {
  .dashboard-filter-bar { grid-template-columns:1fr; }
  .dashboard-cards { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:900px) {
  .sidebar{width:200px}.main{margin-left:200px;width:calc(100% - 200px)}
  .brand img{max-width:176px}
}

/* Dashboard 2.0 - visão geral com indicadores e ícones */
.dashboard-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:18px; }
.dashboard-heading h3 { font-size:26px; margin:3px 0 4px; color:#243128; }
.dashboard-heading p { margin:0; color:#758078; }
.dashboard-eyebrow { font-size:12px; letter-spacing:.13em; font-weight:800; color:var(--terra-green-dark); }
.dashboard-date { color:#647069; font-weight:600; text-transform:capitalize; padding-top:8px; }
.dashboard-overview-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.overview-stat, .safra-stat { display:flex; align-items:center; gap:14px; padding:18px; min-height:112px; transition:transform .18s ease,box-shadow .18s ease; }
.overview-stat:hover, .safra-stat:hover { transform:translateY(-2px); box-shadow:0 8px 20px rgba(35,67,40,.1); }
.overview-stat > div, .safra-stat > div { display:flex; flex-direction:column; min-width:0; }
.overview-stat span:not(.stat-icon), .safra-stat span:not(.stat-icon) { font-size:14px; color:#5c675f; font-weight:700; }
.overview-stat strong { font-size:29px; color:#26352a; line-height:1.1; margin:4px 0 2px; }
.overview-stat small { color:#89928c; }
.stat-icon { width:48px; height:48px; border-radius:12px; display:grid; place-items:center; flex:0 0 48px; background:#e7f1e5; color:var(--terra-green-dark); }
.stat-icon svg, .filter-panel-icon svg, .select-label svg, .summary-icon svg { width:25px; height:25px; fill:currentColor; }
.budget-icon { background:#fff3d9; color:#9a6713; }
.collection-icon { background:#e5f3e9; color:#2f7b40; }
.request-icon { background:#e6eef9; color:#3466a3; }
.samples-icon { background:#f0eafa; color:#7350a3; }
.money-icon { background:#e6f3e8; color:#24743a; }
.crops-icon { background:#edf5df; color:#5a8530; }
.farms-icon { background:#f2eadf; color:#81572c; }
.producers-icon { background:#e5f1e4; color:#36743e; }
.dashboard-filter-panel { padding:0; overflow:hidden; margin-bottom:18px; }
.filter-panel-title { padding:18px 20px; display:flex; align-items:center; gap:13px; border-bottom:1px solid #e5ebe5; background:linear-gradient(90deg,#f8fbf7,#fff); }
.filter-panel-title h3 { margin:0 0 3px; color:#29352c; }
.filter-panel-title p { margin:0; color:#7b847e; font-size:14px; }
.filter-panel-icon { width:42px; height:42px; border-radius:10px; display:grid; place-items:center; color:#fff; background:var(--terra-green-dark); }
.dashboard-filter-grid { padding:18px 20px 20px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.dashboard-filter-grid label { display:grid; gap:8px; }
.select-label { display:flex; align-items:center; gap:7px; color:#465248; font-size:13px; font-weight:800; text-transform:uppercase; letter-spacing:.025em; }
.select-label svg { width:18px; height:18px; color:var(--terra-green-dark); }
.dashboard-filter-grid select { min-height:46px; border:1px solid #d7dfd7; border-radius:7px; background:#fff; color:#354139; font-weight:650; padding:0 42px 0 14px; box-shadow:0 2px 5px rgba(35,67,40,.03); }
.dashboard-filter-grid select:focus { border-color:var(--terra-green); box-shadow:0 0 0 3px rgba(79,140,85,.13); outline:none; }
.dashboard-filter-grid select:disabled { background:#f2f4f2; color:#9aa19c; }
.dashboard-safra-cards { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.safra-stat { min-height:100px; }
.safra-stat strong { font-size:23px; color:#29372c; margin-top:5px; white-space:nowrap; }
.dashboard-summary { display:flex; align-items:center; gap:14px; padding:17px 20px; border-left:4px solid var(--terra-green); }
.summary-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:50%; background:var(--terra-soft); color:var(--terra-green-dark); }
.dashboard-summary h3 { margin:0 0 4px; }
.dashboard-summary p { margin:0; }
@media(max-width:1200px){.dashboard-overview-cards{grid-template-columns:repeat(2,1fr)}.dashboard-safra-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.dashboard-heading{display:block}.dashboard-date{margin-top:6px}.dashboard-overview-cards,.dashboard-safra-cards,.dashboard-filter-grid{grid-template-columns:1fr}}


/* Filtro da aba Produtores no padrão visual solicitado */
.producer-filter-bar {
  background:var(--terra-brown);
  color:#fff;
  padding:18px 20px;
  border-radius:0;
  margin-bottom:20px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:center;
}
.producer-filter-bar label {
  display:grid;
  grid-template-columns:auto minmax(130px,1fr);
  align-items:center;
  gap:12px;
  font-weight:800;
}
.producer-filter-bar label span { white-space:nowrap; }
.producer-filter-bar select {
  width:100%;
  min-height:42px;
  padding:0 40px 0 16px;
  border:1px solid #e2e2e2;
  border-radius:5px;
  background:#fff;
  color:#858b88;
  font-weight:800;
  cursor:pointer;
}
.producer-filter-bar select:focus { outline:3px solid rgba(255,255,255,.22); border-color:#fff; }
.producer-filter-bar select:disabled { opacity:.72; cursor:not-allowed; }
@media(max-width:1050px){.producer-filter-bar{grid-template-columns:1fr}}

/* Ícones nos filtros da aba Produtores */
.producer-filter-label {
  display:flex;
  align-items:center;
  gap:8px;
}
.producer-filter-icon {
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  flex:0 0 25px;
  color:#fff;
}
.producer-filter-icon svg {
  width:22px;
  height:22px;
  fill:currentColor;
}


/* Ícones do menu lateral */
.nav-item { display:flex; align-items:center; gap:12px; }
.nav-item .nav-icon { width:22px; height:22px; flex:0 0 22px; display:inline-flex; align-items:center; justify-content:center; color:#fff; }
.nav-item .nav-icon svg { width:21px; height:21px; display:block; fill:currentColor; }
.nav-item .nav-text { display:inline-block; white-space:nowrap; }
.nav-item.active .nav-icon, .nav-item:hover .nav-icon { color:#fff; }

/* Fase 2 */
.workflow-panel{margin-bottom:18px}.toolbar.compact{margin-bottom:12px}.workflow-summary{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px;margin-bottom:14px}.workflow-summary>div{background:#f5f7f3;border:1px solid #dfe7dc;border-radius:10px;padding:10px}.workflow-summary span{display:block;font-size:11px;color:#657064;min-height:28px}.workflow-summary strong{font-size:22px;color:#315d2b}.flow-status{display:inline-block;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:700;background:#edf0ed;color:#425047}.flow-enviado-ao-laboratorio,.flow-impresso{background:#e5efff;color:#245eaa}.flow-recebido-pelo-laboratorio,.flow-em-analise{background:#f0e8ff;color:#6742a0}.flow-resultado-recebido,.flow-finalizado,.flow-pago{background:#e4f5e7;color:#26733b}.flow-vencido{background:#ffe7e3;color:#a53528}.workflow-form{width:min(860px,94vw);max-height:92vh;overflow:auto}.workflow-steps{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:20px 0}.workflow-step{text-align:center;opacity:.45}.workflow-step.done{opacity:1}.workflow-step span{display:grid;place-items:center;width:30px;height:30px;margin:auto;border-radius:50%;background:#d9e3d6;color:#315d2b;font-weight:700}.workflow-step.done span{background:#315d2b;color:#fff}.workflow-step small{display:block;margin-top:6px;font-size:10px}.farm-overview{margin:16px 0}.farm-history-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:18px;margin-top:18px}.finance-cards{grid-template-columns:repeat(3,1fr);margin-bottom:18px}.finance-type{font-weight:700}.finance-type.income{color:#26733b}.finance-type.expense{color:#a53528}.global-search{position:relative;margin-left:auto;width:min(520px,45vw)}.global-search>span{position:absolute;left:13px;top:9px;font-size:22px;color:#738071}.global-search input{width:100%;padding-left:42px;border-radius:10px;background:#fff}.global-search-results{position:absolute;z-index:100;top:48px;left:0;right:0;background:#fff;border:1px solid #dbe2d8;border-radius:12px;box-shadow:0 14px 30px rgba(25,55,25,.18);max-height:420px;overflow:auto}.global-search-results button{width:100%;display:flex;flex-direction:column;align-items:flex-start;padding:11px 14px;border:0;border-bottom:1px solid #edf0eb;background:#fff;color:#263226}.global-search-results button:hover{background:#f1f6ef}.global-search-results small{color:#718071}@media(max-width:1000px){.workflow-summary{grid-template-columns:repeat(3,1fr)}.finance-cards{grid-template-columns:repeat(2,1fr)}.farm-history-grid{grid-template-columns:1fr}.global-search{width:42vw}}
.sync-status{display:inline-flex;margin-left:10px;padding:3px 8px;border-radius:999px;background:#edf7ef;color:#2f6b3a;font-size:11px;font-weight:700}


/* Gestão de usuários */
.users-summary{grid-template-columns:repeat(4,1fr);margin-bottom:18px}.users-panel{padding:0;overflow:hidden}.users-panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid #e5ebe3}.users-panel-head h3{margin:0 0 4px}.users-search{position:relative;width:min(360px,42vw)}.users-search>span{position:absolute;left:13px;top:10px;font-size:20px;color:#718071}.users-search input{width:100%;padding-left:40px}.users-loading,.users-error{padding:44px;text-align:center;color:#657064}.users-error strong{display:block;color:#a53528;margin-bottom:7px}.users-table th{white-space:nowrap}.user-identity{display:flex;align-items:center;gap:11px;min-width:230px}.user-identity small{display:block;margin-top:3px;color:#6d776d}.user-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#e2eee0;color:#315d2b;font-weight:800;flex:0 0 38px}.role-badge,.status-badge{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:12px;font-weight:800}.role-badge{background:#edf0ed;color:#465147}.role-badge.admin{background:#efe6d8;color:#68411b}.status-badge.active{background:#e4f5e7;color:#26733b}.status-badge.inactive{background:#f1f1f1;color:#737373}.current-user-label{display:inline-flex;padding:5px 8px;border-radius:999px;background:#edf7ef;color:#2f6b3a;font-size:11px;font-weight:800}.permission-note{margin-top:16px;padding:13px 15px;border-radius:8px;background:#f5f7f3;border:1px solid #dfe7dc;color:#536053;font-size:13px;line-height:1.5}.users-message{margin:14px 24px 0;padding:11px 14px;border-radius:7px;font-weight:700}.users-message.success{background:#e4f5e7;color:#26733b}.users-message.error{background:#ffe7e3;color:#a53528}.user-form input[readonly]{background:#f2f4f2;color:#697269}.users-toolbar p{margin-bottom:0}@media(max-width:1000px){.users-summary{grid-template-columns:repeat(2,1fr)}.users-panel-head{align-items:flex-start;flex-direction:column}.users-search{width:100%}}@media(max-width:650px){.users-summary{grid-template-columns:1fr}.actions{min-width:170px}}

/* Login institucional Terra ERP — v1.2.0 */
.login-screen {
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0, 64%) minmax(420px, 36%);
  background:#fff;
}
.login-visual {
  position:relative;
  min-height:100vh;
  background-image:url('login-lavoura.png');
  background-size:cover;
  background-position:center center;
  overflow:hidden;
}
.login-visual-overlay {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(19,57,30,.03),rgba(23,57,31,.14));
}
.login-panel {
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px clamp(30px,4vw,72px);
  background:#fff;
  box-shadow:-12px 0 35px rgba(29,53,34,.08);
  position:relative;
  z-index:1;
}
.login-panel-inner { width:min(510px,100%); display:flex; flex-direction:column; min-height:min(760px,calc(100vh - 68px)); }
.login-brand { display:flex; justify-content:center; margin:4px 0 54px; }
.login-brand img { width:min(390px,90%); max-height:145px; object-fit:contain; }
.login-heading { margin-bottom:30px; }
.login-heading h1 { margin:0 0 8px; color:#202720; font-size:clamp(25px,2vw,34px); line-height:1.15; }
.login-heading p { margin:0; color:#687169; font-size:16px; }
.login-form { display:flex; flex-direction:column; gap:10px; }
.login-form > label { font-size:13px; font-weight:800; color:#28312a; text-transform:uppercase; letter-spacing:.025em; margin-top:5px; }
.login-input-wrap { position:relative; display:flex; align-items:center; }
.login-input-wrap input {
  width:100%;
  height:52px;
  padding:0 48px 0 47px;
  border:1px solid #cfd7d0;
  border-radius:7px;
  background:#f8faf8;
  color:#1f2b21;
  font-size:16px;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.login-input-wrap input:focus { border-color:var(--terra-green); background:#fff; box-shadow:0 0 0 3px rgba(79,140,85,.14); }
.login-field-icon { position:absolute; left:16px; color:#778279; font-size:18px; z-index:1; }
.password-toggle { position:absolute; right:9px; width:36px; height:36px; border:0; background:transparent; color:#69736b; font-size:19px; cursor:pointer; border-radius:50%; }
.password-toggle:hover { background:#eaf1ea; }
.login-options { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:4px 0 11px; }
.remember-option { display:flex; align-items:center; gap:8px; font-size:14px; color:#28312a; font-weight:700; cursor:pointer; }
.remember-option input { width:19px; height:19px; accent-color:var(--terra-green-dark); }
.forgot-password { border:0; background:transparent; padding:7px 0; color:var(--terra-green-dark); font-weight:700; cursor:pointer; }
.forgot-password:hover { text-decoration:underline; }
.login-submit {
  height:54px;
  border:0;
  border-radius:7px;
  background:linear-gradient(180deg,#6d2b0c,#5b1f05);
  color:#fff;
  font-weight:800;
  font-size:16px;
  letter-spacing:.025em;
  cursor:pointer;
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  box-shadow:0 8px 18px rgba(91,31,5,.16);
  transition:transform .15s ease,filter .15s ease;
}
.login-submit:hover:not(:disabled) { filter:brightness(1.08); transform:translateY(-1px); }
.login-submit:disabled { cursor:wait; opacity:.8; }
.login-spinner { width:18px; height:18px; border:2px solid rgba(255,255,255,.38); border-top-color:#fff; border-radius:50%; animation:login-spin .7s linear infinite; }
@keyframes login-spin { to { transform:rotate(360deg); } }
.login-form .error { margin-top:2px; padding:10px 12px; border-radius:6px; background:#fee2e2; color:#991b1b; font-size:14px; }
.login-message { margin-top:2px; padding:10px 12px; border-radius:6px; background:#e8f5e9; color:#285f35; font-size:14px; }
.login-footer { margin-top:auto; padding-top:42px; }
.server-status { display:flex; align-items:center; gap:8px; color:#5b675e; font-size:13px; margin-bottom:16px; }
.server-dot { width:9px; height:9px; border-radius:50%; background:#d39b2f; box-shadow:0 0 0 4px rgba(211,155,47,.13); }
.server-status.online .server-dot { background:#2f9b4f; box-shadow:0 0 0 4px rgba(47,155,79,.13); }
.server-status.offline .server-dot { background:#c93b3b; box-shadow:0 0 0 4px rgba(201,59,59,.13); }
.login-footer-meta { border-top:1px solid #e3e8e3; padding-top:17px; display:flex; justify-content:space-between; gap:16px; color:#687169; font-size:13px; }
@media (max-width:1050px) {
  .login-screen { grid-template-columns:55% 45%; }
  .login-panel { padding-inline:30px; }
}
@media (max-width:760px) {
  .login-screen { display:block; min-height:100vh; background:linear-gradient(rgba(255,255,255,.94),rgba(255,255,255,.97)),url('login-lavoura.png') center/cover fixed; }
  .login-visual { display:none; }
  .login-panel { min-height:100vh; padding:24px 20px; background:transparent; box-shadow:none; }
  .login-panel-inner { min-height:calc(100vh - 48px); }
  .login-brand { margin-bottom:34px; }
  .login-brand img { width:min(330px,88%); }
  .login-heading { margin-bottom:22px; }
  .login-options { align-items:flex-start; flex-direction:column; gap:4px; }
  .login-footer-meta { flex-direction:column; gap:6px; }
}

/* ===== DASHBOARD: VISÃO POR SAFRA — LABORATÓRIOS ===== */
.dashboard-lab-panel { padding:0; overflow:hidden; margin-bottom:14px; }
.dashboard-lab-filter { padding:18px 20px 20px; display:grid; grid-template-columns:minmax(220px,320px) minmax(260px,360px) 1fr; gap:20px; align-items:end; }
.dashboard-lab-filter label { display:grid; gap:8px; }
.dashboard-lab-filter select { min-height:46px; border:1px solid #d7dfd7; border-radius:7px; background:#fff; color:#354139; font-weight:650; padding:0 42px 0 14px; box-shadow:0 2px 5px rgba(35,67,40,.03); }
.dashboard-lab-filter select:focus { border-color:var(--terra-green); box-shadow:0 0 0 3px rgba(79,140,85,.13); outline:none; }
.dashboard-lab-filter select:disabled { background:#f2f4f2; color:#9aa19c; }
.dashboard-lab-context { min-height:46px; display:flex; align-items:center; padding:0 14px; border-radius:7px; background:#f5f8f5; color:#667168; font-size:14px; font-weight:600; }
.dashboard-lab-cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.lab-stat { display:flex; align-items:center; gap:14px; min-height:112px; }
.lab-stat > div { display:grid; gap:6px; }
.lab-stat span:not(.stat-icon) { color:#68736b; font-weight:650; }
.lab-stat strong { color:var(--terra-green-dark); font-size:24px; }
.lab-panel-icon svg { width:22px; height:22px; }
@media(max-width:1000px){.dashboard-lab-filter{grid-template-columns:1fr}.dashboard-lab-cards{grid-template-columns:1fr}}

/* Controle de hectares, responsáveis e veículos */
.collection-area-panel{margin-bottom:18px}.collection-area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.collection-area-grid>div,.collection-area-summary>div{border:1px solid #dfe7dc;border-radius:9px;padding:11px;background:#f8faf7}.collection-area-grid span,.collection-area-summary span{display:block;font-size:12px;color:#687467}.collection-area-grid strong,.collection-area-summary strong{display:block;margin-top:4px}.collection-area-grid small{display:block;margin-top:4px}.area-ok{color:#26733b!important}.area-pending{color:#9a6a13!important}.area-error{color:#a53528!important}.collection-area-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0 18px}.collector-allocations{border:1px solid #e2e8df;border-radius:8px;margin-bottom:9px;overflow:hidden}.collector-allocation-row{display:grid;grid-template-columns:minmax(220px,2fr) 140px 42px;gap:8px;padding:9px;border-bottom:1px solid #edf0eb}.collector-allocation-row:last-child{border-bottom:none}.collector-manager{width:min(700px,94vw)!important}.inline-create{display:grid;grid-template-columns:1fr auto;gap:8px;margin:14px 0}.vehicle-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.vehicle-summary .card span{display:block;color:#6b7280}.vehicle-summary .card strong{display:block;font-size:26px;margin-top:7px}.vehicle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.vehicle-card .record-header{margin-bottom:8px}.vehicle-expense-view{width:min(1050px,96vw)!important}@media(max-width:1000px){.collection-area-grid,.vehicle-grid{grid-template-columns:1fr 1fr}.collection-area-summary{grid-template-columns:1fr 1fr}}@media(max-width:650px){.collection-area-grid,.vehicle-grid,.vehicle-summary,.collection-area-summary{grid-template-columns:1fr}.collector-allocation-row{grid-template-columns:1fr 100px 42px}}

/* Coletas: manter o botão primário visível mesmo dentro do grupo .actions. */
.collection-toolbar-actions button.primary{background:var(--terra-green-dark);color:#fff;border-color:var(--terra-green-dark);}
.collection-toolbar-actions button.primary:hover{filter:brightness(.95);}

/* Gráficos de área coletada */
.collector-bar-chart{display:grid;gap:12px;margin-top:14px}.collector-bar-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr 110px;gap:14px;align-items:center}.collector-bar-label{display:grid;gap:3px}.collector-bar-label small{color:#6b756c}.collector-bar-track,.dashboard-bar-track{height:18px;background:#edf1ec;border:1px solid #dfe6dc;border-radius:999px;overflow:hidden}.collector-bar-track i{display:block;height:100%;background:var(--terra-green);border-radius:999px;min-width:2px}.collector-bar-row>b{text-align:right;white-space:nowrap}.dashboard-area-panel{padding:0;overflow:hidden;margin-bottom:18px}.dashboard-area-chart{display:grid;gap:18px;padding:20px}.dashboard-producer-area-row{padding:16px;border:1px solid #e1e8df;border-radius:10px;background:#fafcf9}.dashboard-producer-area-head{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:13px}.dashboard-producer-area-head>span{color:#667168;font-weight:650}.dashboard-grouped-bars{display:grid;gap:9px}.dashboard-bar-line{display:grid;grid-template-columns:95px 1fr 105px;gap:12px;align-items:center}.dashboard-bar-line>span{font-size:13px;color:#657064;font-weight:700}.dashboard-bar-line>b{text-align:right;white-space:nowrap}.dashboard-bar{display:block;height:100%;border-radius:999px;min-width:2px}.dashboard-bar.total{background:#7b8790}.dashboard-bar.collected.red{background:#c64032}.dashboard-bar.collected.yellow{background:#d4a21b}.dashboard-bar.collected.green{background:#3f914f}@media(max-width:760px){.collector-bar-row{grid-template-columns:1fr}.collector-bar-row>b{text-align:left}.dashboard-producer-area-head{align-items:flex-start;flex-direction:column}.dashboard-bar-line{grid-template-columns:85px 1fr}.dashboard-bar-line>b{grid-column:2;text-align:left}.dashboard-area-chart{padding:14px}}

/* Veículos por coleta */
.vehicle-allocations{display:grid;gap:10px;margin:8px 0 12px}
.vehicle-allocation-row{display:grid;grid-template-columns:minmax(260px,1fr) minmax(130px,180px) 44px;gap:10px;align-items:center}
.vehicle-allocation-row select,.vehicle-allocation-row input{width:100%}
.vehicle-area-pending{display:flex;align-items:center;min-height:42px;padding:0 12px;border:1px dashed var(--border,#d7dfd8);border-radius:8px;background:#f8faf8}
@media(max-width:760px){.vehicle-allocation-row{grid-template-columns:1fr}.vehicle-allocation-row .danger{width:100%}}

/* Dashboard - Área Coletada vertical */
.dashboard-area-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;padding:18px 20px 0}.dashboard-area-header .filter-panel-title{padding:0}.dashboard-area-select{display:grid;gap:6px;min-width:280px;font-weight:700;color:#566258}.dashboard-area-select span{font-size:12px;text-transform:uppercase;letter-spacing:.04em}.dashboard-area-select select{min-height:42px}.dashboard-area-legend{display:flex;gap:18px;align-items:center;padding:12px 20px 0;color:#5f6a61;font-size:13px;font-weight:650}.dashboard-area-legend span{display:flex;gap:7px;align-items:center}.dashboard-area-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}.legend-total{background:#7b8790}.legend-collected{background:#3f914f}.dashboard-area-summary{display:flex;justify-content:space-between;gap:16px;align-items:stretch;padding:14px 16px;background:#f7faf6;border:1px solid #e0e7de;border-radius:10px}.dashboard-area-summary>div{display:grid;gap:3px}.dashboard-area-summary span{font-size:12px;color:#69756c;font-weight:700}.dashboard-area-summary strong{font-size:20px;color:#16261b}.area-vertical-scroll{overflow-x:auto;padding:8px 2px 4px}.area-vertical-chart{display:grid;grid-template-columns:repeat(var(--area-groups),minmax(90px,110px));gap:12px;align-items:end;min-width:max-content;height:310px;padding:36px 8px 0;border-bottom:1px solid #dfe6dd;background:linear-gradient(to top,rgba(223,230,221,.55) 1px,transparent 1px);background-size:100% 25%}.area-vertical-group{height:100%;display:grid;grid-template-rows:1fr auto auto;gap:7px;min-width:90px}.area-vertical-bars{height:100%;display:flex;gap:7px;align-items:flex-end;justify-content:center}.area-vertical-column{width:30px;min-height:1px;border-radius:6px 6px 2px 2px;position:relative;transition:height .2s ease}.area-vertical-column.total{background:#7b8790}.area-vertical-column.collected.red{background:#c64032}.area-vertical-column.collected.yellow{background:#d4a21b}.area-vertical-column.collected.green{background:#3f914f}.area-vertical-column span{position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);font-size:10px;font-weight:750;white-space:nowrap;color:#5a655d}.area-vertical-name{text-align:center;font-size:11px;line-height:1.15;max-width:105px;overflow-wrap:anywhere}.area-vertical-percent{text-align:center;color:#5f6b62;font-size:10px;font-weight:700}.vehicle-hectares{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:12px 0;padding:10px 12px;background:#f5f8f4;border:1px solid #e0e7de;border-radius:8px}.vehicle-hectares span{color:#667168;font-size:13px}.vehicle-hectares strong{font-size:18px;color:var(--terra-green)}
@media(max-width:760px){.dashboard-area-header{align-items:stretch;flex-direction:column}.dashboard-area-select{min-width:0}.dashboard-area-summary{flex-direction:column}.area-vertical-chart{height:270px;grid-template-columns:repeat(var(--area-groups),minmax(82px,96px))}.area-vertical-column{width:26px}}
