.page-prep [hidden] {
  display: none !important;
}
.prep-desk {
  padding-top: 30px;
  padding-bottom: 20px;
  scroll-margin-top: 20px;
}
.prep-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
}
.prep-heading .eyebrow {
  font-size: 10px;
  letter-spacing: 0.5px;
  color: #527044;
  margin-bottom: 8px;
}
.page-prep h2 {
  font:
    700 27px/1.3 "Manrope",
    sans-serif;
  letter-spacing: -0.6px;
  margin: 0 0 12px;
}
.prep-disclosure,
.download-note,
.fine {
  font-size: 13px;
  line-height: 1.8;
  color: #5e6e60;
  max-width: 920px;
}
.prep-disclosure {
  margin: 14px 0 22px;
}
.prep-text {
  background: none;
  border: 0;
  border-bottom: 1px solid #9ab18e;
  color: #38633f;
  padding: 8px 0;
  min-height: 44px;
  font-size: 13px;
  cursor: pointer;
}
.prep-text:disabled {
  opacity: 0.45;
  cursor: default;
}
.prep-progress {
  display: flex;
  gap: 28px;
  list-style: none;
  padding: 16px 0;
  margin: 0 0 22px;
  border-top: 1px solid #dae4d1;
  border-bottom: 1px solid #dae4d1;
  font-size: 13px;
  color: #697c63;
}
.prep-progress li[aria-current] {
  color: #214c32;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 8px;
}
.load-panel,
.prepare-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  background: white;
  border: 1px solid #d6e1cd;
  border-radius: 8px;
  padding: 26px;
}
.load-panel > div,
.prepare-panel > div:first-child {
  max-width: 740px;
}
.page-prep h3 {
  font-size: 19px;
  line-height: 1.4;
  margin: 0 0 12px;
}
.load-panel p,
.prepare-panel p,
.prep-how p {
  font-size: 15px;
  line-height: 1.8;
  color: #536258;
  margin: 0;
}
.prep-button,
.prep-secondary,
.receipt-choice {
  border: 1px solid #2d6f4e;
  border-radius: 6px;
  min-height: 46px;
  padding: 11px 17px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: white;
  background: #2d6f4e;
}
.prep-button {
  flex: none;
}
.prep-secondary,
.receipt-choice {
  background: #fff;
  color: #355d3d;
  border-color: #bacbb0;
}
.prep-actions {
  display: flex;
  gap: 10px;
  flex-direction: column;
  flex: none;
}
.source-summary {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin: 0 0 15px;
}
.source-summary p {
  font-size: 13px;
  color: #536a4c;
  margin: 0;
}
.manual-feedback {
  font-size: 13px !important;
  color: #2a6847 !important;
  margin-top: 12px !important;
}
.prep-totals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  padding: 23px;
  background: #edf3e5;
  border: 1px solid #d2dfc6;
  border-radius: 8px;
}
.prep-totals strong {
  font:
    700 30px/1.2 "Manrope",
    sans-serif;
  color: #2d6644;
  display: block;
}
.prep-totals span {
  font-size: 13px;
  color: #52674a;
  display: block;
  margin-top: 7px;
}
.result-context {
  font-size: 14px;
  color: #536258;
  margin: 19px 0;
  line-height: 1.8;
}
.review-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.prep-filters {
  display: flex;
  gap: 8px;
}
.prep-filters button {
  min-height: 44px;
  border: 1px solid #bdceb2;
  background: #fff;
  border-radius: 5px;
  padding: 9px 14px;
  cursor: pointer;
  font-size: 13px;
  color: #365a3b;
}
.prep-filters button[aria-pressed="true"] {
  background: #234c35;
  color: white;
  border-color: #234c35;
}
.list-note {
  font-size: 13px;
  color: #607257;
  margin: 15px 0;
}
.record-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.record-list > li {
  display: grid;
  grid-template-columns: minmax(140px, 0.8fr) 110px minmax(0, 1.6fr) auto;
  gap: 18px;
  align-items: center;
  background: #fff;
  border: 1px solid #d9e3d1;
  border-radius: 7px;
  padding: 19px;
  margin-bottom: 12px;
}
.record-list strong {
  display: block;
  font-size: 15px;
}
.record-list small {
  font-size: 11px;
  color: #6a7a63;
}
.record-amount {
  font-size: 15px;
  font-weight: 600;
  text-align: right;
}
.record-state {
  font-size: 11px;
  color: #486b3b;
  font-weight: 600;
}
.record-detail p {
  font-size: 13px;
  line-height: 1.7;
  color: #5c6d55;
  margin: 5px 0 0;
}
.duplicate-note {
  font-size: 13px;
  line-height: 1.8;
  border-left: 2px solid #8ea779;
  padding: 9px 15px;
  background: #f0f4e8;
  margin: 21px 0 12px;
  color: #53684a;
}
.download-note {
  margin-bottom: 24px;
}
.estimate-panel,
.prep-how {
  padding: 17px 0;
  border-top: 1px solid #d5e0cb;
}
.estimate-panel summary,
.prep-how summary {
  font-size: 15px;
  line-height: 1.6;
  min-height: 44px;
  align-content: center;
  font-weight: 600;
  color: #345e3b;
  cursor: pointer;
}
.estimate-panel > p {
  font-size: 13px;
  line-height: 1.8;
  color: #5b6c53;
  max-width: 920px;
}
.estimate-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 20px 0;
}
.estimate-fields label {
  font-size: 12px;
  color: #4a6242;
  line-height: 1.7;
}
.estimate-fields input {
  display: block;
  width: 100%;
  margin-top: 7px;
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid #b8caaa;
  border-radius: 4px;
  color: #274b32;
  background: #fff;
  font-size: 16px;
}
.estimate-output {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  background: #edf3e4;
  padding: 20px;
  border: 1px solid #d2dfc5;
  border-radius: 7px;
}
.estimate-output span {
  display: block;
  font-size: 12px;
  color: #5d7153;
}
.estimate-output strong {
  display: block;
  font-size: 19px;
  margin-top: 8px;
  color: #285b3b;
}
.estimate-output > p {
  grid-column: 1/-1;
  color: #87501e;
}
.desk-status {
  font-size: 13px;
  line-height: 1.8;
  color: #38633d;
  min-height: 25px;
  margin: 20px 0 0;
}
.prep-next {
  padding-top: 28px;
  padding-bottom: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
}
.prep-next p {
  max-width: 760px;
  color: #536258;
  line-height: 1.8;
  font-size: 15px;
  margin: 0;
}
.prep-next a {
  flex: none;
  font-size: 13px;
  border-radius: 7px;
}
.page-prep dialog {
  border: 1px solid #becfb2;
  border-radius: 9px;
  color: #263e2d;
  background: #fffef9;
  padding: 28px;
  width: calc(100% - 36px);
  max-width: 650px;
  max-height: 88vh;
  overflow: auto;
}
.page-prep dialog::backdrop {
  background: #1b302399;
}
.page-prep dialog .eyebrow {
  font-size: 10px;
  letter-spacing: 0.5px;
  color: #577447;
  padding-right: 35px;
}
.page-prep dialog h2 {
  font-size: 24px;
}
.page-prep dialog p {
  font-size: 14px;
  line-height: 1.8;
}
.dialog-close {
  position: absolute;
  top: 10px;
  right: 12px;
  background: none;
  border: 0;
  font-size: 26px;
  min-width: 44px;
  min-height: 44px;
  cursor: pointer;
}
.dialog-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}
.receipt-choice {
  width: 100%;
  text-align: left;
  font-size: 14px;
}
.source-card {
  border: 1px solid #d6e0ce;
  background: #f7f9f2;
  padding: 17px;
  margin: 15px 0;
  border-radius: 5px;
}
.source-card h3 {
  font-size: 14px;
}
.source-card dl {
  margin: 0;
  font-size: 13px;
}
.source-card dl > div {
  display: grid;
  grid-template-columns: 130px minmax(0, 1fr);
  gap: 12px;
  margin: 7px 0;
}
.source-card dt {
  color: #65805b;
}
.source-card dd {
  margin: 0;
  overflow-wrap: anywhere;
}
.page-prep dialog details > summary {
  font-size: 14px;
  min-height: 44px;
  align-content: center;
  cursor: pointer;
  color: #3f6541;
}
.resolved-note {
  background: #e8f1de;
  padding: 15px;
  border-left: 2px solid #71965d;
}
.empty-records {
  display: block !important;
  color: #43603d;
  font-size: 15px;
}
@media (max-width: 950px) {
  .record-list > li {
    grid-template-columns: minmax(0, 1fr) 100px auto;
  }
  .record-detail {
    grid-column: 1/-1;
    grid-row: 2;
  }
  .record-list button {
    grid-column: 3;
    grid-row: 1;
  }
  .estimate-fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .prep-heading {
    align-items: flex-start;
  }
  .prep-heading h2 {
    font-size: 24px;
  }
  .prep-disclosure {
    font-size: 14px;
    line-height: 1.75;
  }
  .prep-progress {
    justify-content: space-between;
    gap: 8px;
    font-size: 12px;
  }
  .load-panel,
  .prepare-panel {
    display: block;
    padding: 21px;
  }
  .load-panel p,
  .prepare-panel p,
  .prep-next p,
  .prep-how p {
    font-size: 16px;
    line-height: 1.75;
  }
  .prep-button,
  .prep-secondary {
    font-size: 14px;
  }
  .load-panel > .prep-button,
  .prepare-panel .prep-actions {
    margin-top: 20px;
  }
  .prep-actions {
    align-items: flex-start;
  }
  .source-summary {
    display: block;
  }
  .source-summary p {
    font-size: 14px;
    line-height: 1.8;
  }
  .prep-totals {
    gap: 14px;
    padding: 18px;
  }
  .prep-totals span {
    font-size: 12px;
    line-height: 1.6;
  }
  .prep-totals strong {
    font-size: 27px;
  }
  .review-toolbar {
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
  }
  .record-list > li {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    padding: 17px;
  }
  .record-list button {
    grid-column: 2;
    grid-row: 3;
  }
  .record-detail {
    grid-row: 2;
  }
  .record-amount {
    font-size: 14px;
  }
  .record-detail p,
  .result-context,
  .list-note,
  .duplicate-note,
  .download-note,
  .desk-status {
    font-size: 14px;
    line-height: 1.75;
  }
  .estimate-panel summary,
  .prep-how summary {
    font-size: 16px;
  }
  .estimate-panel > p {
    font-size: 14px;
  }
  .estimate-fields {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .estimate-fields label {
    font-size: 14px;
  }
  .estimate-output {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .estimate-output span {
    font-size: 14px;
  }
  .prep-next {
    display: block;
  }
  .prep-next > a {
    margin-top: 20px;
  }
  .page-prep dialog {
    padding: 22px;
  }
  .page-prep dialog p {
    font-size: 15px;
  }
  .source-card dl > div {
    grid-template-columns: 100px minmax(0, 1fr);
  }
  .page-prep dialog h2 {
    font-size: 22px;
    padding-right: 20px;
  }
}
