.cpt-dialog {
  --cpt-pine:#123d32;
  --cpt-yellow:#edbd43;
  --cpt-ink:#193c30;
  --cpt-muted:#5b6b60;
  --cpt-line:#d8ded4;
  --cpt-paper:#fffef8;
  color:var(--cpt-ink);
  background:var(--cpt-paper);
  width:760px;
  max-width:calc(100vw - 28px);
  max-height:92dvh;
  padding:34px;
  border:0;
  border-radius:3px;
  box-shadow:0 20px 80px #001e2540;
  font-family:var(--sans,'DM Sans',Arial,sans-serif);
  font-size:1.125rem;
  line-height:1.6;
  overflow:auto;
}
.cpt-dialog::backdrop {
  background:#08251dba;
  backdrop-filter:blur(5px);
}
body:has(.cpt-dialog[open]) {
  overflow:hidden;
}
.cpt-dialog * {
  box-sizing:border-box;
}
.cpt-dialog button,.cpt-dialog input,.cpt-dialog textarea {
  font:inherit;
}
.cpt-dialog button {
  cursor:pointer;
}
.cpt-dialog button:disabled {
  cursor:default;
  opacity:.43;
}
.cpt-dialog button:focus-visible,.cpt-dialog input:focus-visible,.cpt-dialog textarea:focus-visible {
  outline:3px solid #ba740d;
  outline-offset:3px;
}
.cpt-dialog h2,.cpt-dialog h3,.cpt-dialog h4 {
  font-family:var(--serif,Georgia,serif);
  font-weight:400;
  line-height:1.12;
  letter-spacing:-.025em;
  color:var(--cpt-ink);
}
.cpt-modal-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  border-bottom:1px solid var(--cpt-line);
  padding-bottom:23px;
  margin-bottom:25px;
  min-width:0;
}
.cpt-modal-header h2 {
  font-size:44px;
  margin:0;
}
.cpt-kicker {
  font-size:.875rem;
  font-weight:700;
  line-height:1.6;
  letter-spacing:.14em;
  margin:0 0 12px;
  color:var(--cpt-muted);
  text-transform:uppercase;
}
.cpt-close {
  border:1px solid var(--cpt-line);
  display:grid;
  place-items:center;
  background:transparent;
  color:var(--cpt-ink);
  font-size:27px!important;
  line-height:1!important;
  width:44px;
  height:44px;
  flex:none;
  padding:0;
  border-radius:50%;
}
.cpt-close:hover {
  background:#edf0e7;
}
.cpt-helper {
  font-size:1.125rem;
  color:var(--cpt-muted);
  line-height:1.8;
  margin:0 0 23px;
}
.cpt-button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  background:var(--cpt-pine);
  color:#fffef8;
  border:1px solid var(--cpt-pine);
  padding:13px 18px;
  min-height:50px;
  font-size:1rem!important;
  font-weight:600;
  border-radius:2px;
  line-height:1.4!important;
  text-align:center;
  transition:background .15s;
  white-space:normal;
}
.cpt-button:hover:not(:disabled) {
  background:#205443;
}
.cpt-button-light {
  background:var(--cpt-yellow);
  border-color:var(--cpt-yellow);
  color:var(--cpt-ink);
}
.cpt-button-light:hover:not(:disabled) {
  background:#f4ca5b;
}
.cpt-text-button {
  background:transparent;
  border:0;
  font-size:1rem!important;
  text-decoration:underline;
  text-underline-offset:4px;
  padding:8px 0;
  color:var(--cpt-ink);
  min-height:44px;
}
.cpt-inline-link {
  display:inline-flex;
  align-items:center;
  gap:14px;
  padding:0 0 4px;
  background:transparent;
  color:var(--cpt-ink);
  border:0;
  border-bottom:1px solid var(--cpt-ink);
  font-size:1rem!important;
  font-weight:600;
  min-height:44px;
  text-align:left;
}
.cpt-progress {
  display:flex;
  justify-content:space-between;
  gap:15px;
  font-size:.875rem;
  color:var(--cpt-muted);
  margin-bottom:9px;
  flex-wrap:wrap;
}
.cpt-progress-track {
  height:3px;
  background:#e5e9de;
  margin-bottom:28px;
}
.cpt-progress-track>span {
  display:block;
  background:var(--cpt-yellow);
  height:100%;
  transition:width .25s;
}
.cpt-dialog #cpt-step-heading {
  font-size:32px;
  margin:0 0 13px;
  outline:0;
}
.cpt-options {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  border:0;
  margin:0;
  padding:0;
}
.cpt-option {
  position:relative;
  display:flex;
  align-items:center;
  min-height:91px;
  gap:12px;
  border:1px solid var(--cpt-line);
  padding:17px 40px 17px 17px;
  cursor:pointer;
  background:#f7f8f1;
  transition:border-color .15s,background .15s;
}
.cpt-option:hover {
  border-color:#6e8c72;
}
.cpt-option input {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  cursor:pointer;
  z-index:1;
}
.cpt-option:has(input:focus-visible) {
  outline:3px solid #ba740d;
  outline-offset:3px;
}
.cpt-option strong {
  display:block;
  font-size:1.125rem;
  font-weight:600;
  line-height:1.4;
}
.cpt-option small {
  display:block;
  font-size:1.125rem;
  color:var(--cpt-muted);
  line-height:1.6;
  margin-top:5px;
}
.cpt-option i {
  position:absolute;
  right:15px;
  top:18px;
  width:15px;
  height:15px;
  border:1px solid #869c85;
  border-radius:50%;
}
.cpt-option.is-selected {
  border-color:var(--cpt-pine);
  background:#eaf0df;
  box-shadow:inset 0 0 0 1px var(--cpt-pine);
}
.cpt-option.is-selected i {
  background:var(--cpt-pine);
  border-color:var(--cpt-pine);
  box-shadow:inset 0 0 0 3px #eaf0df;
}
.cpt-step-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:27px;
  flex-wrap:wrap;
}
.cpt-answer-summary {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:-3px 0 23px;
}
.cpt-answer-summary span {
  font-size:.875rem;
  background:#edf0e6;
  padding:5px 9px;
  border:1px solid #dbe3d2;
  line-height:1.5;
}
.cpt-suggestions {
  border-top:1px solid var(--cpt-line);
}
.cpt-suggestions article {
  display:grid;
  grid-template-columns:37px 1fr;
  gap:17px;
  padding:23px 0;
  border-bottom:1px solid var(--cpt-line);
}
.cpt-suggestion-number {
  font-family:var(--serif,Georgia,serif);
  font-size:28px;
  color:#708363;
  line-height:1.2;
  padding-top:2px;
}
.cpt-suggestions h4 {
  font-size:28px;
  margin:0 0 9px;
}
.cpt-suggestions p {
  font-size:1.125rem;
  color:var(--cpt-muted);
  line-height:1.8;
  margin:0 0 13px;
}
.cpt-context-note {
  padding:15px 18px;
  background:#f5edda;
  border-left:3px solid var(--cpt-yellow);
  font-size:1.125rem;
  line-height:1.8;
  margin:20px 0;
}
.cpt-advisor-prompt {
  background:#e9eedf;
  padding:22px;
  margin-top:25px;
}
.cpt-advisor-prompt strong {
  display:block;
  font-size:1.125rem;
}
.cpt-advisor-prompt p {
  font-size:1.125rem;
  line-height:1.7;
  color:var(--cpt-muted);
  margin:5px 0 15px;
}
.cpt-advisor-actions {
  display:flex;
  gap:10px;
}
.cpt-advisor-actions .cpt-button {
  flex:1;
}
.cpt-sr-only {
  position:absolute!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  white-space:nowrap!important;
  border:0!important;
}
.cpt-measure-dialog {
  width:1040px;
}
.cpt-measure-layout {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr);
  gap:30px;
  align-items:start;
}
.cpt-room-row {
  border:1px solid var(--cpt-line);
  padding:17px;
  margin:0 0 17px;
  background:#f8f9f3;
  min-width:0;
}
.cpt-room-row legend {
  font-size:.875rem;
  font-weight:600;
  letter-spacing:.04em;
  padding:0 7px;
}
.cpt-room-top {
  display:flex;
  align-items:flex-end;
  gap:10px;
  margin-bottom:18px;
}
.cpt-room-name {
  flex:1;
  min-width:0;
}
.cpt-room-row label {
  display:block;
  min-width:0;
}
.cpt-room-row label>span {
  display:block;
  font-size:.875rem;
  font-weight:500;
  line-height:1.6;
  margin-bottom:6px;
}
.cpt-room-row label>span small {
  font-weight:400;
  font-size:.875rem;
  color:var(--cpt-muted);
}
.cpt-room-row input {
  width:100%;
  padding:10px;
  border:1px solid #cfd8c9;
  background:#fffefa;
  color:var(--cpt-ink);
  font-size:1rem;
  line-height:1.4;
  border-radius:0;
  min-height:48px;
}
.cpt-remove {
  width:44px;
  height:44px;
  background:transparent;
  color:var(--cpt-muted);
  border:1px solid var(--cpt-line);
  padding:0;
  font-size:22px!important;
  flex:none;
}
.cpt-remove:hover {
  background:#e6eadf;
}
.cpt-dimensions {
  display:grid;
  grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);
  gap:9px;
  align-items:center;
}
.cpt-dimension-label {
  display:block;
  font-size:1rem;
  font-weight:600;
  line-height:1.4;
  margin-bottom:8px;
}
.cpt-dimension-pair {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.cpt-dimension-pair label>span {
  font-size:.875rem;
  font-weight:400;
  line-height:1.4;
  color:var(--cpt-muted);
  margin-bottom:5px;
}
.cpt-dimension-pair input {
  font-size:1rem;
  padding:10px 8px;
}
.cpt-multiply {
  font-size:19px;
  color:#687c61;
  text-align:center;
  margin-top:34px;
}
.cpt-room-bottom {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:15px;
  margin-top:11px;
  min-height:18px;
  flex-wrap:wrap;
}
.cpt-row-error {
  font-size:1rem;
  line-height:1.5;
  margin:0;
  color:#944327;
}
.cpt-room-bottom output {
  font-size:1rem;
  font-weight:600;
  white-space:nowrap;
  margin-left:auto;
}
.cpt-room-row.has-error {
  border-color:#bd8c6f;
}
.cpt-add-area {
  border:1px dashed #91a386;
  background:transparent;
  width:100%;
  padding:13px;
  color:var(--cpt-ink);
  font-size:1rem!important;
  font-weight:600;
}
.cpt-add-area:hover {
  background:#eef2e7;
}
.cpt-waste-options {
  border:0;
  border-top:1px solid var(--cpt-line);
  margin:28px 0 0;
  padding:19px 0 0;
}
.cpt-waste-options legend {
  font-size:1rem;
  font-weight:600;
  padding:0 10px 0 0;
}
.cpt-waste-options p {
  font-size:1.125rem;
  color:var(--cpt-muted);
  line-height:1.7;
  margin:0 0 13px;
}
.cpt-waste-options>div {
  display:flex;
  gap:10px;
}
.cpt-waste-options label {
  position:relative;
  flex:1;
  cursor:pointer;
  text-align:center;
}
.cpt-waste-options input {
  position:absolute;
  opacity:0;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  cursor:pointer;
}
.cpt-waste-options span {
  display:block;
  padding:10px;
  background:#f2f5eb;
  border:1px solid var(--cpt-line);
  font-size:1rem;
  font-weight:600;
}
.cpt-waste-options input:checked+span {
  background:var(--cpt-yellow);
  border-color:#c49a2e;
}
.cpt-waste-options input:focus-visible+span {
  outline:3px solid #ba740d;
  outline-offset:3px;
}
.cpt-measure-summary {
  background:#e9eedf;
  padding:25px;
  position:sticky;
  top:0;
}
.cpt-measure-summary h3 {
  font-size:30px;
  margin:0 0 23px;
}
.cpt-measure-summary dl {
  margin:0 0 18px;
}
.cpt-measure-summary dl>div {
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding:12px 0;
  border-bottom:1px solid #cdd6c3;
  align-items:baseline;
}
.cpt-measure-summary dt {
  font-size:1rem;
  line-height:1.6;
}
.cpt-measure-summary dd {
  margin:0;
  overflow-wrap:anywhere;
  font-size:1.125rem;
  font-weight:500;
}
.cpt-measure-summary dd small {
  font-size:.875rem;
  color:var(--cpt-muted);
}
.cpt-measure-summary .cpt-material-total {
  display:block;
  padding:19px 0 15px;
  border:0;
}
.cpt-material-total dt {
  font-size:.875rem;
  text-transform:uppercase;
  letter-spacing:.07em;
  font-weight:600;
}
.cpt-material-total dd {
  font-family:var(--serif,Georgia,serif);
  font-size:53px;
  letter-spacing:-.03em;
  line-height:1.2;
  margin-top:6px;
}
.cpt-material-total dd small {
  font-family:var(--sans,Arial,sans-serif);
  font-size:.875rem;
  font-weight:400;
  letter-spacing:0;
}
.cpt-measure-summary .cpt-helper {
  font-size:1.125rem;
  line-height:1.7;
  margin-bottom:15px;
}
.cpt-estimate-note {
  font-size:1.125rem;
  line-height:1.8;
  color:var(--cpt-muted);
  margin:0 0 21px;
}
.cpt-measure-summary>.cpt-button {
  width:100%;
  font-size:1rem!important;
  margin-top:9px;
  gap:12px;
}
.cpt-copy-status {
  font-size:1rem;
  line-height:1.7;
  margin:13px 0 0;
  font-weight:500;
}
.cpt-copy-status:empty {
  display:none;
}
#cpt-manual-copy {
  margin-top:15px;
}
#cpt-manual-copy label {
  font-size:1rem;
  display:block;
  margin-bottom:7px;
}
#cpt-copy-text {
  width:100%;
  border:1px solid #a7b59e;
  background:var(--cpt-paper);
  padding:12px;
  font-size:1rem;
  resize:vertical;
  color:var(--cpt-ink);
}
.cpt-dialog [hidden] {
  display:none!important;
}
@media(max-width:800px) {
  .cpt-dialog {
    padding:27px;
  }
  .cpt-measure-layout {
    grid-template-columns:1fr;
    gap:25px;
  }
  .cpt-measure-summary {
    position:static;
  }
  .cpt-measure-summary h3 {
    font-size:33px;
  }
  .cpt-measure-summary .cpt-material-total {
    display:flex;
    align-items:baseline;
  }
  .cpt-material-total dd {
    font-size:42px;
  }
  .cpt-dimension-pair input {
    padding:11px;
  }
}
@media(max-width:520px) {
  .cpt-dialog {
    padding:22px;
    max-width:calc(100vw - 18px);
    max-height:94dvh;
  }
  .cpt-modal-header {
    padding-bottom:20px;
    margin-bottom:22px;
    gap:12px;
    min-width:0;
  }
  .cpt-modal-header h2 {
    font-size:35px;
  }
  .cpt-kicker {
    letter-spacing:.1em;
    max-width:250px;
  }
  .cpt-close {
    width:44px;
    height:44px;
    font-size:24px!important;
  }
  .cpt-dialog #cpt-step-heading {
    font-size:28px;
  }
  .cpt-helper {
    margin-bottom:20px;
  }
  .cpt-options {
    grid-template-columns:1fr;
    gap:9px;
  }
  .cpt-option {
    min-height:74px;
    padding:13px 37px 13px 14px;
  }
  .cpt-option i {
    right:13px;
    top:15px;
  }
  .cpt-progress-track {
    margin-bottom:22px;
  }
  .cpt-progress {
    flex-wrap:wrap;
  }
  .cpt-step-actions {
    margin-top:22px;
    gap:12px;
    flex-wrap:wrap;
  }
  .cpt-button {
    padding:12px 14px;
    min-height:50px;
    gap:13px;
    white-space:normal;
  }
  .cpt-text-button {
    min-height:44px;
  }
  .cpt-suggestions article {
    grid-template-columns:29px 1fr;
    gap:11px;
    padding:20px 0;
  }
  .cpt-suggestion-number {
    font-size:24px;
  }
  .cpt-suggestions h4 {
    font-size:26px;
  }
  .cpt-advisor-prompt {
    padding:18px;
  }
  .cpt-advisor-actions {
    gap:10px;
    flex-direction:column;
  }
  .cpt-advisor-actions .cpt-button {
    font-size:1rem!important;
    padding:11px 9px;
  }
  .cpt-room-row {
    padding:13px;
    margin-bottom:15px;
  }
  .cpt-room-row input {
    min-height:48px;
  }
  .cpt-room-top {
    gap:8px;
    margin-bottom:16px;
  }
  .cpt-room-name>span {
    font-size:.875rem!important;
  }
  .cpt-dimensions {
    gap:14px;
    grid-template-columns:minmax(0,1fr);
  }
  .cpt-dimension-pair {
    gap:5px;
  }
  .cpt-dimension-pair input {
    padding:9px 6px;
  }
  .cpt-multiply {
    display:none;
  }
  .cpt-room-bottom {
    gap:8px;
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .cpt-row-error {
    max-width:190px;
  }
  .cpt-measure-summary {
    padding:22px;
  }
  .cpt-measure-summary .cpt-material-total {
    display:block;
  }
  .cpt-material-total dd {
    font-size:48px;
  }
  .cpt-waste-options>div {
    gap:8px;
  }
  .cpt-answer-summary {
    gap:5px;
  }
  .cpt-answer-summary span {
    padding:4px 7px;
  }
}
@media(prefers-reduced-motion:reduce) {
  .cpt-dialog * {
    transition:none!important;
  }
}
