.farmer-portal [hidden] { display: none !important; }
.farmer-portal #usaha .login-card { padding: 32px; background: #fffdf8; border-color: #d8ddcf; border-radius: 20px; }
.farmer-portal #usaha .login-card h3 { font-size: clamp(26px, 3vw, 30px); line-height: 1.2; margin: 12px 0; }
.farmer-portal #usaha .login-card .eyebrow { margin: 0; }
.farmer-portal #usaha .login-card .login-note { margin: 0 0 26px; color: #4b584a; }
.farmer-portal #usaha .login-card > label { margin-top: 18px; gap: 9px; font-size: 14px; font-weight: 600; }
.farmer-portal #usaha .login-card input[type="email"],
.farmer-portal #usaha .login-card .password-control input,
.farmer-portal #usaha .login-card input[type="password"] { display: block; width: 100%; min-width: 0; height: 50px; padding: 12px 14px; border: 1px solid #aab5a2; border-radius: 9px; background: #fff; color: #293923; font-size: 16px; font-weight: 400; line-height: 1.4; transition: border-color .15s, box-shadow .15s; }
.farmer-portal #usaha .login-card input::placeholder { color: #687464; font-weight: 400; }
.farmer-portal #usaha .login-card input:focus { border-color: #284d35; box-shadow: 0 0 0 3px #284d3514; }
.farmer-portal #usaha .login-card .button { min-height: 50px; border-radius: 9px; margin-top: 24px; font-size: 15px; font-weight: 700; padding: 12px 16px; }
.farmer-portal #usaha .login-card .button:disabled { color: #51574c; background: #e0e3d9; border-color: #bdc4b5; cursor: not-allowed; }
.farmer-portal #usaha .login-card .login-footer { margin: 24px 0 0; padding-top: 20px; border-top: 1px solid #e1e5da; text-align: left; font-size: 13px; line-height: 1.7; color: #4b584a; }
.farmer-portal #usaha .login-card .login-footer a { text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
@media(max-width: 600px) { .farmer-portal #usaha .login-card { padding: 26px 22px; } }
.dashboard-status { padding: 14px 18px; border: 1px solid #bac5ad; border-radius: 10px; background: #f4f7ee; color: #284021; font-size: 14px; overflow-wrap: anywhere; }
.dashboard-status.error { color: #862c23; background: #fff0e9; border-color: #c78876; }
.dashboard-status:not(.error) {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}
.account-bar, .record-toolbar, .pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 20px 0; }
.account-bar { border-bottom: 1px solid #c9c8b9; padding-bottom: 16px; }
.record-button { font: inherit; font-size: 14px; cursor: pointer; color: #284021; background: #f9f8f0; border: 1px solid #657855; border-radius: 7px; min-height: 42px; padding: 9px 13px; }
.record-button:hover { background: #e6eddc; }
.farmer-portal button:disabled { color: #51574c; background: #e0e3d9; border-color: #bdc4b5; opacity: 1; cursor: not-allowed; }
.row-actions { min-width: 230px; }
.row-actions button { margin: 3px; }
.summary-note { font-size: 14px; color: #454b3e; margin: 16px 0 30px; }
.farmer-portal .dashboard-actions { flex-wrap: wrap; }
.farmer-portal #usaha .dashboard-actions [data-new="sale"] { background: #173e2c !important; border-color: #173e2c !important; color: #fff !important; }
.pagination { display: grid; grid-template-columns: auto 1fr auto; text-align: center; padding: 12px; }
.pagination button { font-size: 13px; padding: 9px; }
.stock-context { padding: 12px; border-radius: 7px; background: #edf2e4; }
.farmer-portal .reset { color: #862c23; }
.farmer-portal :focus-visible { outline: 3px solid #7a4b24; outline-offset: 3px; }
#recordDialog { color: #293923; border: 1px solid #bdc5ae; border-radius: 18px; background: #fffdf7; padding: 28px; width: min(580px, calc(100vw - 28px)); max-height: calc(100dvh - 32px); overflow-y: auto; box-shadow: 0 20px 80px #18211140; }
#recordDialog::backdrop { background: #17231099; }
#recordDialog h2 { font-family: Georgia, serif; font-size: 26px; line-height: 1.25; font-weight: 700; letter-spacing: -.4px; margin-bottom: 12px; }
#recordDialog p { font-size: 15px; line-height: 1.6; margin-bottom: 16px; }
.dialog-fields { display: grid; gap: 14px; margin: 22px 0; }
.dialog-fields label { display: grid; gap: 7px; font-weight: 600; font-size: 14px; }
.dialog-fields input, .dialog-fields select, .dialog-fields textarea { width: 100%; min-width: 0; font: inherit; font-weight: 400; color: #293923; background: #fff; border: 1px solid #7c876f; border-radius: 7px; padding: 12px; min-height: 44px; }
.dialog-fields textarea { min-height: 84px; resize: vertical; }
.dialog-fields article { border-bottom: 1px solid #c9c8b9; padding: 14px 0; font-size: 14px; line-height: 1.7; }
.dialog-fields article button { margin: 5px; }
.dialog-actions { display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }
.form-error, .field-error { color: #862c23; font-weight: 500; }
.field-error:empty, .form-error:empty { display: none; }
.password-control { display: block; position: relative; width: 100%; }
.farmer-portal #usaha .login-card .password-control input,
.dialog-fields .password-control input { padding-right: 54px; }
.password-toggle { position: absolute; right: 3px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: #43583d; cursor: pointer; }
.password-toggle:hover { background: #edf2e4; }
.password-toggle svg { width: 22px; height: 22px; }
[aria-invalid="true"] { border-color: #862c23 !important; }
#recordDialog { padding: 30px; box-sizing: border-box; }
#recordDialog form { margin: 0; }
#recordDialog .dialog-fields { gap: 18px; }
#recordDialog .dialog-fields label { margin: 0; line-height: 1.5; color: #344730; letter-spacing: 0; }
#recordDialog .dialog-fields input,
#recordDialog .dialog-fields select,
#recordDialog .dialog-fields textarea {
  display: block; box-sizing: border-box; width: 100%; margin: 0;
  min-height: 48px; padding: 12px 14px; border-color: #b5c1aa;
  border-radius: 10px; font-size: 16px; line-height: 1.5;
}
#recordDialog .dialog-fields input::placeholder { color: #87917e; }
#recordDialog .dialog-fields textarea { min-height: 96px; }
#recordDialog .dialog-fields input:focus,
#recordDialog .dialog-fields select:focus,
#recordDialog .dialog-fields textarea:focus { border-color: #416b42; }
#recordDialog .transaction-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.transaction-fields > [data-field="product_id"],
.transaction-fields > [data-field="buyer"],
.transaction-fields > [data-field="notes"],
.transaction-fields > [data-field="reason"],
.transaction-fields > .product-context,
.transaction-fields > .transaction-total { grid-column: 1 / -1; }
#recordDialog .product-context { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px; border: 1px solid #dce5d2; border-radius: 10px; background: #f1f5eb; }
#recordDialog .product-context .stock-context { margin: 0; padding: 0; background: transparent; font-size: 13px; flex: 1 1 220px; }
#recordDialog .product-context .record-button { margin: 0; flex: 0 0 auto; font-size: 12px; background: #fffdf8; }
#recordDialog .transaction-total { margin: 0; padding: 16px 18px; border: 1px solid #cbd9bc; border-radius: 10px; background: #eaf1e1; font-size: 18px; font-weight: 700; color: #173f2b; font-variant-numeric: tabular-nums; }
#recordDialog .dialog-actions { border-top: 1px solid #e1e7da; margin-top: 0; padding: 18px 24px; background: #fffdf7; flex-shrink: 0; }
#recordDialog .dialog-actions .button { margin: 0; min-height: 48px; border-radius: 10px; padding: 12px 24px; font-size: 14px; }
#recordDialog .dialog-actions button[type="submit"] {
  background: #173f2b !important; color: #fff !important;
  border: 1px solid #173f2b !important; opacity: 1; font-weight: 700;
}
#recordDialog .dialog-actions button[type="submit"]:hover:not(:disabled) { background: #285a3d !important; border-color: #285a3d !important; }
#recordDialog .dialog-actions button[type="submit"]:disabled {
  background: #dce4d6 !important; color: #45573b !important;
  border-color: #bac9ae !important; cursor: wait;
}
@media(max-width: 600px) {
  #recordDialog { padding: 22px 18px; }
  #recordDialog .transaction-fields { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  #recordDialog .dialog-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #recordDialog .dialog-actions .button { width: 100%; padding: 12px; }
}
/* Dashboard surfaces keep the garden visible without competing with records. */
.farmer-portal #usaha .farmer-dashboard > .split {
  padding: 28px; border: 1px solid #d6dfca; border-radius: 20px;
  background: radial-gradient(ellipse at 8% 10%, #dce8cd99, transparent 65%), #fffdf8;
  box-shadow: 0 8px 28px #173f2b06;
}
.farmer-portal #usaha .farmer-dashboard h2 { font-size: clamp(30px, 3.1vw, 42px); }
.farmer-portal #usaha .farmer-dashboard h2 em { color: #416b42; }
.farmer-portal #usaha .stats article { position: relative; overflow: hidden; }
.farmer-portal #usaha .stats article::before {
  content: ""; display: block; width: 36px; height: 36px; margin-bottom: 16px;
  border-radius: 10px; background: #e8efde;
}
.farmer-portal #usaha .stats article::after {
  content: ""; position: absolute; top: 31px; left: 31px; width: 22px; height: 22px;
  background: #416b42;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17V7m0 0-4 4m4-4 4 4M13 7h9M13 12h7M13 17h5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.farmer-portal #usaha .stats article:nth-child(2)::before { background: #f5e8d8; }
.farmer-portal #usaha .stats article:nth-child(2)::after { background: #90643b; transform: rotate(180deg); }
.farmer-portal #usaha .stats article:nth-child(3)::before { background: #ffffff20; }
.farmer-portal #usaha .stats article:nth-child(3)::after { background: #e3edcb; }
.farmer-portal #usaha .stats article:nth-child(n+4)::after {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 9 5v9l-9 5-9-5V8l9-5Zm-9 5 9 5 9-5M12 13v9M7.5 5.5l9 5'/%3E%3C/svg%3E");
}
.farmer-portal #usaha .stats article:nth-child(n+5)::after {
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18M7 15l5-5 4 3 5-7M17 6h4v4'/%3E%3C/svg%3E");
}
.farmer-portal #usaha .dashboard-actions .button:hover { box-shadow: 0 4px 12px #173f2b15; }
.farmer-portal #usaha .login-card { box-shadow: 0 12px 40px #173f2b0d; }
.farmer-portal #usaha .stats article:nth-child(2) { background: #fffaf2; }
.farmer-portal #usaha .table-wrap tbody tr:nth-child(even) { background: #fafbf6; }
@media(max-width: 700px) {
  .farmer-portal #usaha .farmer-dashboard > .split { padding: 20px; gap: 24px; }
  .farmer-portal #usaha .stats article::after { top: 25px; left: 21px; }
  .farmer-portal #usaha .stats article::before { margin-bottom: 14px; }
}
.farmer-portal #usaha {
  background-color: #f7f4ea;
  background-image: linear-gradient(180deg, #f7f4ead9 0%, #f7f4eab8 55%, #f7f4ea80 100%), url("bg-petani.png");
  background-position: center, center bottom;
  background-size: cover;
  background-repeat: no-repeat;
}
.farmer-portal #usaha .dashboard-status,
.farmer-portal #usaha .account-bar { max-width: 1200px; margin-left: auto; margin-right: auto; }
.farmer-portal #usaha .dashboard-status { margin-top: 0; margin-bottom: 20px; line-height: 1.6; }
.farmer-portal #usaha .account-bar {
  padding: 16px 20px; margin-top: 0; margin-bottom: 28px;
  border: 1px solid #dce2d5; border-radius: 14px; background: #fffdf8;
}
#accountName { font-weight: 700; font-size: 15px; overflow-wrap: anywhere; }
.account-bar > div { display: flex; flex-wrap: wrap; gap: 8px; }
.farmer-portal #usaha .farmer-dashboard > .split { align-items: center; margin-bottom: 24px; }
.farmer-portal #usaha .dashboard-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; }
.farmer-portal #usaha .dashboard-actions .button { min-height: 48px; font-weight: 600; box-shadow: 0 2px 4px #173f2b05; }
.farmer-portal #usaha .stats article {
  padding: 24px; border-color: #dce2d5; border-radius: 16px;
  background: #fffdf8; box-shadow: 0 4px 16px #173f2b05;
}
.farmer-portal #usaha .stats small { font-size: 11px; font-weight: 600; letter-spacing: .7px; }
.farmer-portal #usaha .stats b { display: block; margin-top: 16px; letter-spacing: -.5px; }
.farmer-portal #usaha .stats article:nth-child(3) { background: #173f2b; border-color: #173f2b; color: #fffdf8; }
.farmer-portal #usaha .stats article:nth-child(3) small { color: #dce9cf; }
.farmer-portal #usaha .stats article:nth-child(n+4) { background: #eff3e8; }
.summary-note { margin: 16px 0 24px; max-width: 800px; line-height: 1.7; color: #5a6655; }
.farmer-portal #usaha .records { background: #fffdf8; border-color: #dce2d5; overflow: hidden; box-shadow: 0 5px 20px #173f2b06; }
.farmer-portal #usaha .tabs { border-bottom: 1px solid #e4e8de; background: #fffdf8; }
.farmer-portal #usaha .tabs button { font-weight: 600; transition: background .15s, color .15s; }
.farmer-portal #usaha .tabs button:not(.active):hover { background: #eff3e8; color: #173f2b; }
.record-toolbar { margin: 0; padding: 16px 20px; }
.record-toolbar label { display: flex; align-items: center; gap: 9px; color: #56624f; font-size: 14px; }
.record-toolbar input[type="checkbox"] { width: 18px; height: 18px; accent-color: #173f2b; }
.farmer-portal #usaha .table-wrap th { padding: 15px 20px; text-transform: none; letter-spacing: .3px; color: #506046; }
.farmer-portal #usaha .table-wrap td { padding: 18px 20px; line-height: 1.6; border-color: #edf0e7; font-variant-numeric: tabular-nums; }
.row-actions { min-width: 220px; }
.row-actions .record-button { min-height: 40px; font-size: 12px; background: #fffdf8; border-color: #d0dac6; }
.record-button { transition: background .15s, border-color .15s; }
.pagination { margin: 0; padding: 16px 20px; border-top: 1px solid #e4e8de; color: #56624f; font-size: 13px; }
.farmer-portal #usaha .reset { display: block; margin: 20px 0 0; color: #934638; text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 700px) {
  .farmer-portal #usaha .account-bar { padding: 14px; gap: 14px; margin-bottom: 24px; }
  .account-bar > div { width: 100%; }
  .account-bar > div .record-button { flex: 1; font-size: 12px; }
  .farmer-portal #usaha .stats article { padding: 18px 14px; }
  .farmer-portal #usaha .stats small { font-size: 10px; }
  .farmer-portal #usaha .stats b { margin-top: 12px; }
  .summary-note { font-size: 12px; margin-bottom: 20px; }
  .record-toolbar { padding: 14px; gap: 12px; }
  .record-toolbar label { font-size: 12px; }
  .record-toolbar .record-button { font-size: 12px; }
  .pagination { padding: 14px; }
  .farmer-portal #usaha .tabs button { min-height: 48px; line-height: 1.5; }
}
@media(max-width: 600px) { .farmer-portal .farmer-page { padding-left: 16px; padding-right: 16px; } .account-bar > div { display: flex; gap: 8px; } .dashboard-actions .button { flex: 1 1 140px; font-size: 13px; padding: 12px; } .farmer-portal .stats b { font-size: clamp(17px, 5vw, 24px); overflow-wrap: anywhere; } #recordDialog { padding: 20px; } .pagination { font-size: 12px; gap: 8px; } .record-toolbar label { font-size: 14px; } }
#recordDialog { padding: 0; overflow: hidden; }
#recordDialog form { display: flex; flex-direction: column; max-height: calc(100dvh - 34px); }
#recordDialog .dialog-body { padding: 28px; overflow-y: auto; min-height: 0; scroll-padding: 16px; }
.farmer-portal #usaha .farmer-access:not([hidden]) {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  align-items: center; gap: clamp(28px, 5vw, 72px);
  padding: clamp(16px, 3vw, 44px) 0;
}
.farmer-portal #usaha .access-copy { min-width: 0; }
.farmer-portal #usaha .access-copy h1 {
  font: 400 clamp(40px, 5.5vw, 76px)/1.12 Georgia, serif;
  letter-spacing: -1.8px; margin: 20px 0 24px;
}
.farmer-portal #usaha .access-copy > p:not(.eyebrow) { font-size: 16px; margin: 0; }
.farmer-portal #usaha .login-card { width: 100%; max-width: 520px; min-width: 0; margin: 0; justify-self: end; }
@media(max-width: 1050px) { .farmer-portal #navLinks.active { display: flex; } }
@media(max-width: 950px) {
  .farmer-portal #usaha .farmer-access:not([hidden]) { grid-template-columns: minmax(0, 1fr); gap: 28px; max-width: 580px; padding: 16px 0; }
  .farmer-portal #usaha .access-copy { display: block; }
  .farmer-portal #usaha .access-copy h1 { font-size: clamp(36px, 6vw, 54px); letter-spacing: -1px; }
  .farmer-portal #usaha .access-points { display: none; }
  .farmer-portal #usaha .login-card { max-width: none; justify-self: stretch; }
}
@media(max-width: 600px) {
  #recordDialog .dialog-body { padding: 22px 18px; }
  #recordDialog .dialog-actions { padding: 14px 18px; }
  .farmer-portal #usaha .farmer-access:not([hidden]) { gap: 24px; padding: 4px 0; }
  .farmer-portal #usaha .access-copy h1 { font-size: clamp(32px, 9vw, 42px); margin: 14px 0 16px; }
  .farmer-portal #usaha .access-copy > p:not(.eyebrow) { font: 14px/1.7 Arial, sans-serif; }
  .farmer-portal #usaha .login-card h3 { font-size: 26px; }
}

/* Compact spacing for the farmer portal. */
.farmer-portal .hamburger { cursor: pointer; }
@media(max-width: 1050px) {
  .farmer-portal #navLinks { z-index: 20; max-height: calc(100dvh - 72px); overflow-y: auto; box-shadow: 0 12px 24px #173f2b12; }
  .farmer-portal #navLinks a { padding: 12px; border-radius: 8px; }
  .farmer-portal #navLinks a:hover { background: #e8efde; }
}
.farmer-portal #usaha { padding: 24px 28px 32px; }
.farmer-portal #usaha:has(.farmer-access:not([hidden])) {
  display: flex; flex-direction: column; justify-content: center;
}
.farmer-portal #usaha .farmer-access:not([hidden]) {
  max-width: 1480px; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);
}
.farmer-portal #usaha .farmer-access .login-card { max-width: 640px; }
.farmer-portal #usaha .access-copy > p:not(.eyebrow) { max-width: 640px; }
.farmer-portal #usaha .access-points { max-width: 520px; }
.farmer-portal #usaha .farmer-access:not([hidden]) { min-height: 0; padding: 8px 0; gap: 36px; }
.farmer-portal #usaha .access-copy h1 { margin: 14px 0 18px; }
.farmer-portal #usaha .access-points { margin-top: 22px; gap: 10px; }
.farmer-portal #usaha .account-bar { margin-bottom: 16px; padding: 12px 18px; }
.farmer-portal #usaha .farmer-dashboard > .split { padding: 20px 24px; gap: 20px; margin-bottom: 18px; }
.farmer-portal #usaha .stats { gap: 10px; }
.farmer-portal #usaha .stats article { min-height: 106px; padding: 18px; }
.farmer-portal #usaha .stats article::before { position: absolute; right: 16px; top: 16px; margin: 0; width: 30px; height: 30px; }
.farmer-portal #usaha .stats article::after { left: auto; right: 21px; top: 21px; width: 20px; height: 20px; }
.farmer-portal #usaha .stats small { display: block; padding-right: 36px; }
.farmer-portal #usaha .stats b { margin-top: 16px; font-size: clamp(20px, 2.2vw, 28px); }
.summary-note { margin: 12px 0 16px; }
.farmer-portal #usaha .records { margin-top: 16px; }
.farmer-portal #usaha .tabs { padding: 12px; }
.record-toolbar { padding: 12px 16px; }
.farmer-portal #usaha .table-wrap td { padding: 12px 16px; }
.pagination { padding: 12px 16px; }
.farmer-portal #usaha .reset { margin-top: 10px; }
.farmer-portal #usaha .login-card { padding: 26px; }
.farmer-portal #usaha .login-card .login-note { margin-bottom: 18px; }
.farmer-portal #usaha .login-card > label { margin-top: 14px; }
.farmer-portal #usaha .login-card .button { margin-top: 20px; }
.farmer-portal #usaha .login-card .login-footer { margin-top: 18px; padding-top: 16px; }
@media(min-width: 1400px) {
  .farmer-portal #usaha { padding-left: 48px; padding-right: 48px; }
  .farmer-portal #usaha .farmer-access .login-card { padding: 34px; }
  .farmer-portal #usaha .access-copy h1 { font-size: clamp(76px, 5vw, 92px); }
}
@media(max-width: 950px) {
  .farmer-portal #usaha .farmer-access:not([hidden]) { max-width: 580px; grid-template-columns: minmax(0, 1fr); }
  .farmer-portal #usaha:has(.farmer-access:not([hidden])) { justify-content: flex-start; }
}
@media(max-width: 700px) {
  .farmer-portal #usaha { padding: 18px 16px 24px; }
  .farmer-portal #usaha .farmer-access:not([hidden]) { gap: 20px; padding: 0; }
  .farmer-portal #usaha .farmer-dashboard > .split { padding: 18px; gap: 18px; }
  .farmer-portal #usaha .account-bar { margin-bottom: 16px; gap: 10px; padding: 12px; }
  .farmer-portal #usaha .stats article { min-height: 104px; padding: 14px; }
  .farmer-portal #usaha .stats article::before { right: 12px; top: 12px; width: 26px; height: 26px; }
  .farmer-portal #usaha .stats article::after { right: 16px; top: 16px; width: 18px; height: 18px; }
  .farmer-portal #usaha .stats small { padding-right: 30px; font-size: 9px; }
  .farmer-portal #usaha .stats b { font-size: clamp(17px, 4.8vw, 24px); }
  .farmer-portal #usaha .login-card { padding: 22px 20px; }
}
/* Pendamping manages accounts separately from the farmer business dashboard. */
.admin-panel { margin-top: 24px; padding: clamp(18px, 3vw, 32px); }
.admin-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:24px; }
.admin-heading h2 { font-family:Georgia,serif; font-weight:700; font-size:clamp(26px,3vw,36px); line-height:1.25; letter-spacing:-.4px; margin:8px 0 12px; }
.admin-heading p { line-height:1.6; }
.admin-toolbar { display:flex; flex-wrap:wrap; gap:10px; }
.farmer-portal #adminPanel .admin-toolbar .button { margin:0; min-height:48px; padding:12px 18px; border-radius:10px; background:#173f2b; border:1px solid #173f2b; color:#fff; font-size:14px; font-weight:700; }
.farmer-portal #adminPanel .admin-toolbar .button.secondary { background:#fffdf7; color:#173f2b; border-color:#9daa91; }
.farmer-portal #adminPanel .admin-toolbar .button:hover:not(:disabled) { background:#285a3d; color:#fff; transform:none; }
.farmer-portal #adminPanel .admin-toolbar .button:disabled { background:#e0e3d9; color:#51574c; border-color:#bdc4b5; }
.admin-heading > div:first-child { flex:1; min-width:0; }
.admin-heading > .admin-toolbar { flex-shrink:0; }
.admin-status { padding:12px 16px; background:#eef3e9; border-radius:10px; color:#17442d; }
.admin-status.error { background:#fff0e9; color:#803627; }
.admin-account { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 0; border-bottom:1px solid #dce1d4; }
.admin-account h3 { margin:0 0 6px; font:700 20px Georgia,serif; }
.admin-account p { margin:0 0 10px; overflow-wrap:anywhere; }
.account-state { display:inline-block; padding:5px 10px; border-radius:20px; font-size:13px; background:#eee9e2; color:#645543; }
.account-state.active { background:#e6f0e3; color:#245238; }
.admin-pagination { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:24px; }
.admin-pagination[hidden] { display:none; }
.admin-panel .record-button.danger { color:#943b2c; border-color:#d8a89c; background:#fff5ef; }
#recordDialog .dialog-actions button[type="submit"].danger { background:#943b2c !important; border-color:#943b2c !important; }
@media(max-width:700px) { .admin-heading,.admin-account { flex-direction:column; align-items:stretch; gap:16px; } .admin-toolbar > button { flex:1; } .admin-pagination { flex-wrap:wrap; font-size:13px; } }

.catalog-admin { margin-top: 36px; padding-top: 32px; border-top: 1px solid #dce1d4; }
.catalog-status { padding: 12px 16px; background: #eef3e9; border-radius: 10px; line-height: 1.6; }
.catalog-list { min-width: 0; }

.catalog-upload { display: flex; flex-direction: column; gap: 10px; }
.catalog-upload small, .catalog-upload [role="status"] { font-size: 13px; line-height: 1.6; color: #536158; }
.catalog-upload img { display: block; width: 100%; max-width: 240px; height: 180px; object-fit: contain; background: #f0f2e8; border: 1px solid #d8dfd0; border-radius: 12px; }
.catalog-upload img[hidden] { display: none; }

/* Separate admin account management and public product catalog surfaces. */
.farmer-portal #usaha #adminPanel { display: grid; gap: 24px; margin-top: 24px; padding: 0; border: 0; background: transparent; box-shadow: none; }
.farmer-portal #usaha #adminPanel[hidden] { display: none; }
.farmer-portal #usaha #adminPanel > .records { min-width: 0; margin: 0; padding: clamp(18px, 3vw, 32px); border: 1px solid #dce2d5; border-radius: 20px; background: #fffdf8; box-shadow: 0 5px 20px #173f2b06; }

.farmer-portal #usaha #adminPanel > .records[hidden] { display: none; }
.admin-section-tabs { display: flex; gap: 6px; padding: 6px; width: fit-content; max-width: 100%; border: 1px solid #d6dfcd; border-radius: 14px; background: #edf2e6; }
.admin-section-tabs > button { min-height: 46px; padding: 12px 20px; border: 0; border-radius: 10px; background: transparent; color: #52634c; font: 700 14px/1.4 Arial, sans-serif; cursor: pointer; }
.admin-section-tabs > button[aria-selected="true"] { background: #173e2b; color: #fff; }
.admin-section-tabs > button:hover:not([aria-selected="true"]) { background: #e0e8d6; }
.admin-section-tabs > button:focus-visible { outline: 3px solid #9bac78; outline-offset: 2px; }
@media (max-width: 550px) { .admin-section-tabs { width: 100%; box-sizing: border-box; } .admin-section-tabs > button { flex: 1; padding: 10px 8px; font-size: 12px; } }

.dialog-fields .field-help, .login-card .field-help { display: block; margin: 0; font: 400 12px/1.6 Arial, sans-serif; color: #6b7280; letter-spacing: 0; }
#recordDialog .dialog-fields input::placeholder, #recordDialog .dialog-fields textarea::placeholder { color: #7a828c; opacity: 1; }

/* Farmer records grouped by the preferred product unit. */
.farmer-portal #usaha .records > .farmer-unit-sections { margin:0; padding:24px; border:0; border-bottom:1px solid #dce2d5; box-shadow:none; min-width:0; }
.farmer-unit-sections h3 { margin:0 0 18px; font:700 clamp(24px,2.5vw,30px)/1.3 Georgia,serif; color:#173f2b; }
.farmer-unit-tabs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; padding:6px; border:1px solid #d6dfcd; border-radius:14px; background:#edf2e6; }
.farmer-unit-tabs button { min-width:0; min-height:46px; padding:10px 12px; border:0; border-radius:10px; background:transparent; color:#52634c; font:700 14px/1.4 Arial,sans-serif; cursor:pointer; }
.farmer-unit-tabs button[aria-selected="true"] { background:#173f2b; color:#fff; box-shadow:0 2px 6px #173f2b18; }
.farmer-unit-tabs button:focus-visible { outline:3px solid #9bac78; outline-offset:2px; }
.farmer-unit-sections p { margin:12px 0 0; color:#647064; font:400 12px/1.6 Arial,sans-serif; }

@media(max-width:550px) { .farmer-unit-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.sale-unit-text { display:block; padding:12px 0; color:#173f2b; font:700 16px/1.4 Arial,sans-serif; }

@media(max-width:550px) { .farmer-portal #usaha .records > .farmer-unit-sections { padding:18px 12px; } }

.farmer-portal #usaha .all-unit-summary { white-space:pre-line; font-size:18px; line-height:1.6; }
@media(max-width:550px) { .farmer-unit-tabs > button:first-child { grid-column:1 / -1; } }

@media(max-width:550px) {
  .farmer-unit-tabs { gap:8px; padding:8px; }
  .farmer-unit-tabs > button { border:1px solid #c5d2bd; background:#fffdf8; color:#294832; border-radius:9px; min-height:46px; }
  .farmer-unit-tabs > button[aria-selected="true"] { border-color:#173f2b; background:#173f2b; color:#fff; }
  .farmer-unit-tabs > button:hover:not([aria-selected="true"]) { background:#e6eedf; border-color:#9aae8d; }
}

.monthly-summary { margin:20px 0; padding:24px; border:1px solid #dce2d5; border-radius:18px; background:#fffdf8; }
.monthly-summary-header { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; }
.monthly-summary-header h3 { margin:0; font:700 20px/1.4 Arial,sans-serif; color:#173f2b; }
.monthly-summary-header label { display:flex; align-items:center; gap:10px; font:600 13px/1.5 Arial,sans-serif; }
.monthly-summary-header input { min-width:0; padding:10px 12px; border:1px solid #adbaa4; border-radius:9px; background:#fff; color:#173f2b; font:400 16px Arial,sans-serif; }
.monthly-summary-note { margin:12px 0 20px; color:#647064; font:400 12px/1.6 Arial,sans-serif; }
.monthly-summary-values { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.monthly-summary-values > div { min-width:0; padding:14px; border:1px solid #e0e6d9; border-radius:10px; background:#f2f5ec; }
.monthly-summary-values span { display:block; font:400 12px/1.5 Arial,sans-serif; color:#53644c; }
.monthly-summary-values b { display:block; margin-top:6px; overflow-wrap:anywhere; font:700 19px/1.5 Arial,sans-serif; color:#173f2b; }
.monthly-summary-values .monthly-summary-sold { grid-column:1 / -1; }
@media(max-width:650px) { .monthly-summary { padding:18px 12px; } .monthly-summary-values { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; } .monthly-summary-header label { width:100%; justify-content:space-between; } .monthly-summary-values b { font-size:17px; } }

.monthly-report-link { display:inline-block; margin:24px 0; text-decoration:none; }
.monthly-page-heading { margin:24px 0; }
.monthly-page-heading h1 { margin:24px 0 12px; font:700 clamp(28px,5vw,40px)/1.2 Georgia,serif; color:#173f2b; }
.monthly-page-heading p { line-height:1.7; color:#53644c; }
.monthly-report-details { margin-top:28px; display:grid; gap:28px; }
.monthly-report-block { min-width:0; padding-top:22px; border-top:1px solid #dce2d5; }
.monthly-report-block h3 { margin:0 0 16px; font:700 18px/1.4 Arial,sans-serif; }
.monthly-report-block p { color:#647064; font-size:14px; }
@media print { body[data-page="monthly-report"] nav,body[data-page="monthly-report"] #accountBar, .monthly-page-heading a,.monthly-summary-header button { display:none!important; } .monthly-summary { border:0; padding:0; } .monthly-report-block { break-inside:avoid; } .table-wrap { overflow:visible; } body[data-page="monthly-report"] #usaha { padding:0; } }

.monthly-summary-header { align-items:center; gap:20px; }
.monthly-summary-controls { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.monthly-summary-controls label { margin:0; }
.monthly-summary-controls .record-button { margin:0; min-height:44px; white-space:nowrap; }
@media(max-width:650px) {
  .monthly-summary-header { align-items:stretch; gap:16px; }
  .monthly-summary-controls { width:100%; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:10px; }
  .monthly-summary-controls label { display:flex; flex-direction:column; align-items:stretch; gap:6px; width:auto; }
  .monthly-summary-controls input { width:100%; box-sizing:border-box; min-height:44px; }
}
@media(max-width:360px) { .monthly-summary-controls { grid-template-columns:minmax(0,1fr); } }

/* Monthly report: readable figures and a restrained green visual hierarchy. */
body[data-page="monthly-report"] #farmerDashboard { font-family:Arial,Helvetica,sans-serif; color:#253c2d; }
body[data-page="monthly-report"] .monthly-page-heading { padding:8px 0 10px; margin:20px 0 24px; }
body[data-page="monthly-report"] .monthly-page-heading > a { display:inline-flex; align-items:center; padding:9px 14px; border-color:#ccd6c5; background:#fffdf8; border-radius:24px; text-decoration:none; font:600 13px/1.4 Arial,sans-serif; }
body[data-page="monthly-report"] .monthly-page-heading h1 { margin:26px 0 10px; font:700 clamp(30px,4vw,42px)/1.18 Arial,Helvetica,sans-serif; letter-spacing:-1.2px; color:#173f2b; }
body[data-page="monthly-report"] .monthly-page-heading p { margin:0; max-width:640px; font:400 15px/1.75 Arial,sans-serif; color:#61705f; }
body[data-page="monthly-report"] .monthly-summary { margin:0 0 24px; padding:28px; border:1px solid #dce3d5; border-radius:22px; background:#fffefb; box-shadow:0 8px 30px #173f2b08; }
body[data-page="monthly-report"] .monthly-summary-header { padding-bottom:20px; border-bottom:1px solid #e5e9df; }
body[data-page="monthly-report"] .monthly-summary-header h3 { font:700 21px/1.4 Arial,sans-serif; letter-spacing:-.4px; }
body[data-page="monthly-report"] .monthly-summary-controls { gap:10px; }
body[data-page="monthly-report"] .monthly-summary-controls label { font:600 12px/1.5 Arial,sans-serif; color:#596b55; }
body[data-page="monthly-report"] .monthly-summary-controls input { border-color:#c6d2bd; border-radius:10px; background:#f7f9f3; min-height:44px; box-sizing:border-box; }
body[data-page="monthly-report"] .monthly-summary-controls button { background:#173f2b; color:#fff; border-color:#173f2b; border-radius:10px; padding:11px 17px; font:600 13px/1.5 Arial,sans-serif; }
body[data-page="monthly-report"] .monthly-summary-controls button:hover { background:#285b3e; }
body[data-page="monthly-report"] .monthly-summary-controls :is(input,button):focus-visible { outline:3px solid #99af7e; outline-offset:3px; }
body[data-page="monthly-report"] .monthly-summary-note { margin:16px 0 22px; font:400 12px/1.75 Arial,sans-serif; color:#687465; }
body[data-page="monthly-report"] .monthly-summary-values { gap:12px; }
body[data-page="monthly-report"] .monthly-summary-values > div { display:flex; flex-direction:column; justify-content:space-between; gap:16px; padding:20px 16px; border-radius:14px; border-color:#e0e6d8; background:#f2f6ed; }
body[data-page="monthly-report"] .monthly-summary-values > div:nth-child(2) { background:#faf5ec; border-color:#e9dfcd; }
body[data-page="monthly-report"] .monthly-summary-values > div:nth-child(4) { background:#173f2b; border-color:#173f2b; }
body[data-page="monthly-report"] .monthly-summary-values > div:nth-child(4) span { color:#d7e4cd; }
body[data-page="monthly-report"] .monthly-summary-values > div:nth-child(4) b { color:#fffdf8; }
body[data-page="monthly-report"] .monthly-summary-values span { font-size:12px; font-weight:600; }
body[data-page="monthly-report"] .monthly-summary-values b { margin:0; font:700 clamp(19px,1.9vw,26px)/1.3 Arial,Helvetica,sans-serif; letter-spacing:-.5px; font-variant-numeric:tabular-nums; }
body[data-page="monthly-report"] .monthly-report-details { gap:22px; margin-top:30px; }
body[data-page="monthly-report"] .monthly-report-block { padding:22px 0 0; }
body[data-page="monthly-report"] .monthly-report-block h3 { display:flex; align-items:center; gap:10px; margin:0 0 16px; font:700 17px/1.5 Arial,sans-serif; letter-spacing:-.2px; }
body[data-page="monthly-report"] .monthly-report-block h3::before { content:""; width:4px; height:19px; flex-shrink:0; background:#7c9866; border-radius:3px; }
body[data-page="monthly-report"] .monthly-report-block > p { margin:0; padding:24px 16px; border:1px dashed #d4deca; border-radius:12px; background:#f8faf4; font:400 14px/1.7 Arial,sans-serif; text-align:center; color:#687660; }
body[data-page="monthly-report"] .monthly-report-block .table-wrap { border:1px solid #e0e6d9; border-radius:12px; background:#fff; }
body[data-page="monthly-report"] #usaha .monthly-report-block table { width:100%; border-collapse:collapse; font:400 14px/1.6 Arial,sans-serif; }
body[data-page="monthly-report"] #usaha .monthly-report-block th { padding:13px 16px; background:#edf3e7; color:#42603b; font:600 12px/1.5 Arial,sans-serif; letter-spacing:0; text-align:left; white-space:nowrap; border-bottom:1px solid #dbe4d2; }
body[data-page="monthly-report"] #usaha .monthly-report-block td { padding:15px 16px; border-bottom:1px solid #edf0e8; font:400 14px/1.6 Arial,sans-serif; font-variant-numeric:tabular-nums; }
body[data-page="monthly-report"] .monthly-report-block tr:last-child td { border-bottom:0; }
body[data-page="monthly-report"] .monthly-report-block tbody tr:nth-child(even) { background:#fbfcf8; }
body[data-page="monthly-report"] .monthly-report-block tbody tr:hover { background:#f2f6ec; }
body[data-page="monthly-report"] #usaha .monthly-report-block :is(td,th):last-child { text-align:right; white-space:nowrap; }
@media(max-width:950px) { body[data-page="monthly-report"] .monthly-summary-values { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:650px) {
 body[data-page="monthly-report"] .monthly-summary { padding:20px 14px; border-radius:16px; }
 body[data-page="monthly-report"] .monthly-page-heading { margin:12px 0 22px; }
 body[data-page="monthly-report"] .monthly-page-heading h1 { letter-spacing:-.7px; }
 body[data-page="monthly-report"] .monthly-summary-controls { align-items:end; }
 body[data-page="monthly-report"] .monthly-summary-values > div { padding:16px 12px; gap:14px; }
 body[data-page="monthly-report"] .monthly-summary-values b { font-size:20px; }
 body[data-page="monthly-report"] .monthly-report-block h3 { font-size:16px; }
 body[data-page="monthly-report"] .monthly-summary-header h3 { font-size:19px; }
}
@media print {
 body[data-page="monthly-report"] .monthly-summary { padding:0; box-shadow:none; border:0; }
 body[data-page="monthly-report"] .monthly-summary-values > div:nth-child(4) { background:#fff; border-color:#ccc; }
 body[data-page="monthly-report"] .monthly-summary-values > div:nth-child(4) :is(b,span) { color:#173f2b; }
 body[data-page="monthly-report"] #usaha .monthly-report-block :is(th,td) { padding:8px; font-size:11px; }
}

body[data-page="monthly-report"] .monthly-page-heading h1 {
  font-family:Georgia,serif;
  font-weight:400;
  letter-spacing:-1px;
}
body[data-page="monthly-report"] .monthly-summary-header h3 {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:clamp(24px,2.5vw,30px);
  letter-spacing:-.5px;
}

body[data-page="monthly-report"] .monthly-page-heading h1,
body[data-page="monthly-report"] .monthly-summary-header h3 { font-weight:700; }

/* Farmer ledger tables match the monthly report typography and surfaces. */
.farmer-portal #usaha #farmerDashboard > .records > .table-wrap {
  margin:0 20px;
  width:auto;
  border:1px solid #e0e6d9;
  border-radius:12px;
  background:#fff;
  overflow-x:auto;
}
.farmer-portal #usaha #farmerDashboard > .records > .table-wrap table {
  width:100%; border-collapse:collapse; color:#253c2d;
  font:400 14px/1.6 Arial,Helvetica,sans-serif;
}
.farmer-portal #usaha #farmerDashboard > .records > .table-wrap th {
  padding:13px 16px; background:#edf3e7; color:#42603b;
  font:600 12px/1.5 Arial,Helvetica,sans-serif;
  text-transform:none; letter-spacing:0; text-align:left; white-space:nowrap;
  border-bottom:1px solid #dbe4d2;
}
.farmer-portal #usaha #farmerDashboard > .records > .table-wrap td {
  padding:15px 16px; border-bottom:1px solid #edf0e8;
  font:400 14px/1.6 Arial,Helvetica,sans-serif;
  font-variant-numeric:tabular-nums;
}
.farmer-portal #usaha #farmerDashboard > .records > .table-wrap tbody tr { background:#fff; }
.farmer-portal #usaha #farmerDashboard > .records > .table-wrap tbody tr:nth-child(even) { background:#fbfcf8; }
.farmer-portal #usaha #farmerDashboard > .records > .table-wrap tbody tr:hover { background:#f2f6ec; }
.farmer-portal #usaha #farmerDashboard > .records > .table-wrap tbody tr:last-child td { border-bottom:0; }
.farmer-portal #usaha #farmerDashboard > .records > .pagination { border-top:0; }
@media(max-width:650px) {
  .farmer-portal #usaha #farmerDashboard > .records > .table-wrap { margin:0 12px; }
}

body[data-page="monthly-report"] .monthly-summary-header { border-bottom:0; }

body[data-page="monthly-report"] .monthly-page-heading > .report-back-link {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:44px; padding:11px 16px; box-sizing:border-box;
  border:1px solid #c5d3bd; border-radius:11px;
  background:#fffdf8; color:#234c33;
  font:600 14px/1.5 Arial,Helvetica,sans-serif;
  text-decoration:none; transition:background .15s,border-color .15s;
}
body[data-page="monthly-report"] .report-back-link svg { flex-shrink:0; }
body[data-page="monthly-report"] .monthly-page-heading > .report-back-link:hover { background:#edf3e7; border-color:#94ab86; }
body[data-page="monthly-report"] .report-back-link:focus-visible { outline:3px solid #99af7e; outline-offset:3px; }
@media(max-width:400px) { body[data-page="monthly-report"] .monthly-page-heading > .report-back-link { font-size:13px; padding:11px 12px; } }

.farmer-portal #usaha .monthly-report-link {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:44px; margin:20px 0 8px; padding:11px 16px; box-sizing:border-box;
  border:1px solid #c5d3bd; border-radius:11px; background:#fffdf8; color:#234c33;
  font:600 14px/1.5 Arial,Helvetica,sans-serif; text-decoration:none;
  transition:background .15s,border-color .15s;
}
.farmer-portal #usaha .monthly-report-link svg { flex-shrink:0; }
.farmer-portal #usaha .monthly-report-link:hover { background:#edf3e7; border-color:#94ab86; }
.farmer-portal #usaha .monthly-report-link:focus-visible { outline:3px solid #99af7e; outline-offset:3px; }

body[data-page="monthly-report"] .monthly-summary-values > .report-metric { padding:20px; gap:22px; }
.report-metric-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
body[data-page="monthly-report"] .report-metric-heading > span { font:600 12px/1.5 Arial,Helvetica,sans-serif; letter-spacing:.15px; }
.report-metric-icon { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:36px; height:36px; border:1px solid #dae5cf; border-radius:11px; background:#e7efde; color:#31583a; }
.report-metric-icon svg { display:block; }
.report-metric:nth-child(2) .report-metric-icon { background:#f3e8d8; border-color:#e8d9c4; color:#946740; }
.report-metric:nth-child(4) .report-metric-icon { background:#ffffff12; border-color:#ffffff24; color:#e0edcf; }
body[data-page="monthly-report"] .monthly-summary-values .report-metric > b { font:700 clamp(22px,2vw,28px)/1.25 Arial,Helvetica,sans-serif; letter-spacing:-.6px; font-variant-numeric:tabular-nums; }
@media(max-width:650px) {
 body[data-page="monthly-report"] .monthly-summary-values > .report-metric { padding:16px 12px; gap:18px; }
 .report-metric-heading { align-items:flex-start; gap:6px; }
 .report-metric-icon { width:28px; height:28px; border-radius:9px; }
 .report-metric-icon svg { width:17px; height:17px; }
 body[data-page="monthly-report"] .report-metric-heading > span { font-size:11px; }
 body[data-page="monthly-report"] .monthly-summary-values .report-metric > b { font-size:clamp(18px,4.5vw,23px); }
}
@media print { .report-metric:nth-child(4) .report-metric-icon { color:#31583a; border-color:#ccc; } }

/* Stack report controls on phones, including native month controls with intrinsic width. */
@media(max-width:650px) {
  body[data-page="monthly-report"] .monthly-summary-header { display:flex; flex-direction:column; align-items:stretch; }
  body[data-page="monthly-report"] .monthly-summary-controls { display:flex; flex-direction:column; align-items:stretch; width:100%; min-width:0; gap:12px; }
  body[data-page="monthly-report"] .monthly-summary-controls label { display:flex; flex-direction:column; align-items:stretch; width:100%; min-width:0; gap:7px; }
  body[data-page="monthly-report"] .monthly-summary-controls input { display:block; width:100%; min-width:0; max-width:100%; min-height:46px; box-sizing:border-box; -webkit-appearance:none; appearance:none; }
  body[data-page="monthly-report"] .monthly-summary-controls input::-webkit-date-and-time-value { min-width:0; text-align:left; }
  body[data-page="monthly-report"] .monthly-summary-controls button { width:100%; min-height:46px; box-sizing:border-box; }
}
