:root {
  --bg: #090b10;
  --card: #11151c;
  --card2: #0d1117;
  --border: #242a34;
  --text: #eef2f6;
  --muted: #7b8491;
  --mint: #35dfb0;
  --purple: #9b7cff;
}
* {
  box-sizing: border-box;
}
[hidden] {
  display: none !important;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Arial, Helvetica, sans-serif;
}
button,
input {
  font: inherit;
}
button {
  color: inherit;
}
.site-shell {
  min-height: 100vh;
  background:
    radial-gradient(circle at 50% -20%, #17382f50, transparent 28%),
    radial-gradient(circle at 90% 20%, #281c4c33, transparent 24%), var(--bg);
}
.site-header {
  height: 70px;
  max-width: 1240px;
  margin: auto;
  padding: 0 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #ffffff08;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  color: inherit;
  text-decoration: none;
}
.brand-mark {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #42e4b7, #279478);
  box-shadow: 0 0 28px #35dfb022;
}
.brand-mark i {
  width: 14px;
  height: 14px;
  border: 3px solid #07110e;
  border-radius: 4px 8px;
  transform: rotate(45deg);
}
.brand strong,
.brand small {
  display: block;
}
.brand strong {
  font-size: 17px;
}
.brand small {
  margin-top: 1px;
  color: #67717d;
  font-size: 7px;
  letter-spacing: 1.6px;
  font-weight: 700;
}
.privacy-chip {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
  border: 1px solid #254239;
  border-radius: 20px;
  background: #10231d;
  color: #8db9aa;
  font-size: 10px;
}
.privacy-chip i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--mint);
  box-shadow: 0 0 10px var(--mint);
}
.page {
  width: min(1180px, calc(100% - 40px));
  margin: 0 auto;
  padding: 52px 0 60px;
}
.hero {
  display: grid;
  grid-template-columns: 1fr 480px;
  align-items: end;
  gap: 40px;
  margin-bottom: 36px;
}
.hero-kicker {
  color: #56d8b5;
  text-transform: uppercase;
  letter-spacing: 1.6px;
  font-size: 9px;
  font-weight: 800;
}
.hero h1 {
  max-width: 650px;
  margin: 10px 0 12px;
  font-size: clamp(34px, 4vw, 53px);
  line-height: 1.02;
  letter-spacing: -2.4px;
}
.hero h1 em {
  color: #7be1c4;
  font-style: normal;
}
.hero > div > p {
  max-width: 560px;
  margin: 0;
  color: #7a8390;
  font-size: 14px;
  line-height: 1.6;
}
.steps {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-bottom: 5px;
}
.steps > i {
  width: 36px;
  height: 1px;
  background: #29313a;
}
.step {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #59616c;
}
.step > span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid #303640;
  background: #101319;
  font-size: 10px;
  font-weight: 800;
}
.step p {
  display: grid;
  margin: 0;
}
.step b {
  font-size: 10px;
}
.step small {
  margin-top: 2px;
  font-size: 7px;
}
.step.active {
  color: #bdc9c5;
}
.step.active > span {
  color: #0d1a16;
  border-color: var(--mint);
  background: var(--mint);
  box-shadow: 0 0 18px #35dfb023;
}
.upload-card,
.card,
.result-card {
  border: 1px solid var(--border);
  background: linear-gradient(145deg, #12161d, #0e1117);
  border-radius: 16px;
  box-shadow: 0 18px 50px #0000001c;
}
.upload-card {
  padding: 22px;
  margin-bottom: 16px;
}
.section-title {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 16px;
}
.section-title > div {
  min-width: 0;
}
.section-title h2 {
  margin: 0;
  font-size: 15px;
  letter-spacing: -0.2px;
}
.section-title p {
  margin: 4px 0 0;
  color: #717a86;
  font-size: 9px;
  line-height: 1.4;
}
.section-title.small {
  margin-bottom: 14px;
}
.number,
.section-icon {
  width: 29px;
  height: 29px;
  flex: 0 0 29px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #16342c;
  border: 1px solid #285b4d;
  color: #59d9b6;
  font-size: 10px;
  font-weight: 900;
}
.section-icon {
  background: #191725;
  border-color: #332d4d;
  color: #9b89dd;
}
.link-button {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: #66717e;
  font-size: 8px;
  text-decoration: underline;
  cursor: pointer;
}
.dropzone {
  min-height: 165px;
  border: 1px dashed #37414c;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle, #16251f, #0c0f14 68%);
  cursor: pointer;
  transition: 0.2s;
}
.dropzone:hover,
.dropzone.dragging {
  transform: translateY(-1px);
  border-color: #48caa677;
  background: radial-gradient(circle, #1b342c, #0c1014 70%);
}
.dropzone.busy {
  pointer-events: none;
}
.dropzone input {
  display: none;
}
.upload-icon {
  width: 38px;
  height: 38px;
  margin-bottom: 10px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  border: 1px solid #356656;
  background: #16342b;
  color: #56e1b9;
  font-size: 20px;
}
.dropzone strong {
  font-size: 12px;
}
.dropzone > span:not(.upload-icon) {
  margin-top: 5px;
  color: #77808d;
  font-size: 9px;
}
.dropzone small {
  margin-top: 12px;
  color: #4e5864;
  font-size: 7px;
  letter-spacing: 1px;
}
.example-button {
  display: block;
  margin: 12px auto 0;
  border: 0;
  background: transparent;
  color: #6f7884;
  font-size: 9px;
  cursor: pointer;
}
.example-button b {
  color: #9aa5b2;
}
.notice {
  margin-top: 12px;
  padding: 11px 13px;
  border-radius: 9px;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 9px;
}
.notice.error {
  border: 1px solid #5b2c36;
  background: #251319;
  color: #bc7a88;
}
.notice small {
  width: 100%;
  color: #865d66;
}
.workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);
  gap: 16px;
  align-items: start;
}
.setup-column {
  display: grid;
  gap: 16px;
}
.card {
  padding: 22px;
}
.file-summary {
  min-height: 58px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 12px;
  border: 1px solid #27303a;
  border-radius: 10px;
  background: #0c1015;
}
.file-badge {
  width: 43px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #16362d;
  color: #58d9b6;
  font-size: 7px;
  font-weight: 900;
  letter-spacing: 0.6px;
}
.file-name {
  display: grid;
  min-width: 0;
}
.file-name strong {
  max-width: 350px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10px;
}
.file-name small {
  margin-top: 4px;
  color: #626c78;
  font-size: 7px;
}
.confidence {
  margin-left: auto;
  padding: 5px 7px;
  border-radius: 12px;
  text-transform: uppercase;
  font-size: 6px;
  letter-spacing: 0.7px;
}
.confidence.high {
  color: #63dcbb;
  background: #142d26;
}
.confidence.medium {
  color: #dab86b;
  background: #2b2617;
}
.confidence.partial {
  color: #9ba5b0;
  background: #222730;
}
.empty-state {
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px dashed #29313a;
  border-radius: 10px;
  color: #515b67;
  font-size: 9px;
}
.empty-state span {
  color: #4ea88f;
}
.detected-grid,
.friendly-inputs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}
.detected-grid label,
.friendly-inputs label {
  border: 1px solid #242b34;
  background: #0d1116;
  border-radius: 10px;
  padding: 11px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.detected-grid label > span,
.friendly-inputs label > span {
  display: grid;
  color: #a9b1bb;
  font-size: 9px;
}
.detected-grid label > span small,
.friendly-inputs label > span small {
  margin-top: 3px;
  color: #57616d;
  font-size: 7px;
}
.detected-grid label > div,
.friendly-inputs label > div {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #616b77;
}
.detected-grid input,
.friendly-inputs input {
  width: 70px;
  border: 0;
  outline: 0;
  background: transparent;
  color: #edf2f7;
  text-align: right;
  font-size: 14px;
  font-weight: 700;
}
.detected-grid b,
.friendly-inputs b {
  color: #626c77;
  font-size: 8px;
  font-weight: 600;
}
.warnings {
  margin-top: 12px;
  border: 1px solid #463b24;
  border-radius: 9px;
  background: #1d1910;
  overflow: hidden;
}
.warnings summary {
  padding: 9px 11px;
  cursor: pointer;
  color: #b7985a;
  font-size: 8px;
  font-weight: 700;
}
.warnings > div {
  padding: 0 11px 9px;
}
.warnings p {
  display: flex;
  gap: 6px;
  margin: 5px 0 0;
  color: #8e7952;
  font-size: 7px;
  line-height: 1.5;
}
.warnings p span {
  font-weight: 900;
  color: #d4ac5b;
}
.manual-file-note {
  margin-top: 12px;
  padding: 12px 14px;
  display: grid;
  gap: 4px;
  border: 1px solid #58451f;
  border-radius: 9px;
  background: #211b0f;
  color: #d7bb78;
  font-size: 12px;
  line-height: 1.45;
}
.manual-file-note b {
  color: #f0ce7d;
  font-size: 13px;
}
.manual-file-note span {
  color: #aa9567;
}
.section-title p b {
  color: #95c9bb;
  font-weight: 750;
}
.material-pills {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 7px;
}
.material-pills button {
  min-height: 52px;
  border: 1px solid #29303a;
  border-radius: 9px;
  background: #0d1116;
  color: #838c98;
  cursor: pointer;
  transition: 0.16s;
}
.material-pills button:hover {
  border-color: #3d4957;
}
.material-pills button.selected {
  border-color: #38a98b;
  background: #132a23;
  color: #b7eadc;
  box-shadow: inset 0 0 0 1px #35dfb017;
}
.material-pills b,
.material-pills small {
  display: block;
}
.material-pills b {
  font-size: 10px;
}
.material-pills small {
  margin-top: 3px;
  font-size: 6px;
  color: #626c77;
}
.material-pills .selected small {
  color: #6c9f91;
}
.advanced {
  padding: 0;
  overflow: hidden;
}
.advanced > summary {
  list-style: none;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 16px 19px;
  cursor: pointer;
}
.advanced > summary::-webkit-details-marker {
  display: none;
}
.advanced > summary .gear {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #181c23;
  color: #747e8a;
}
.advanced > summary > span:nth-child(2) {
  display: grid;
}
.advanced > summary b {
  font-size: 10px;
}
.advanced > summary small {
  margin-top: 3px;
  color: #5f6874;
  font-size: 7px;
}
.advanced > summary > i {
  margin-left: auto;
  color: #646e7a;
  font-style: normal;
  transition: 0.2s;
}
.advanced[open] > summary > i {
  transform: rotate(180deg);
}
.advanced-body {
  border-top: 1px solid #202630;
  padding: 15px 19px 18px;
}
.advanced-note {
  margin: 0 0 10px;
  color: #66707c;
  font-size: 8px;
}
.advanced-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 18px;
}
.advanced-grid label {
  min-height: 35px;
  border-bottom: 1px solid #1d2229;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #707986;
  font-size: 8px;
}
.advanced-grid label span {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #58626e;
}
.advanced-grid input {
  width: 58px;
  border: 1px solid #29303a;
  border-radius: 5px;
  background: #11161c;
  color: #d5dbe2;
  padding: 4px 5px;
  text-align: right;
  outline: 0;
  font-size: 8px;
}
.advanced-grid input:focus {
  border-color: #35dfb066;
}
.reset-button {
  margin-top: 12px;
  border: 0;
  background: transparent;
  color: #5f6874;
  padding: 0;
  text-decoration: underline;
  font-size: 7px;
  cursor: pointer;
}
.result-card {
  position: sticky;
  top: 18px;
  padding: 22px;
  transition: 0.2s;
}
.result-card.ready {
  border-color: #28483e;
  box-shadow:
    0 20px 55px #00000029,
    0 0 60px #35dfb00a;
}
.result-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.result-head > div {
  display: flex;
  gap: 11px;
  align-items: center;
}
.result-head h2 {
  margin: 0;
  font-size: 15px;
}
.result-head p {
  margin: 4px 0 0;
  color: #68727e;
  font-size: 8px;
}
.ready-chip {
  padding: 6px 8px;
  border-radius: 14px;
  background: #1a1e25;
  color: #6c7682;
  font-size: 6px;
  font-weight: 900;
  letter-spacing: 0.7px;
}
.ready .ready-chip {
  background: #123027;
  color: #5adab7;
}
.big-cost {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid #243931;
  border-radius: 12px;
  background: linear-gradient(135deg, #162721, #11171d);
}
.big-cost > span {
  display: block;
  color: #6c837a;
  font-size: 7px;
  letter-spacing: 1.4px;
  font-weight: 800;
}
.big-cost strong {
  display: block;
  margin: 4px 0 3px;
  font-size: 42px;
  letter-spacing: -2px;
}
.big-cost small {
  color: #65716d;
  font-size: 8px;
}
.waiting .big-cost {
  opacity: 0.55;
  filter: saturate(0.5);
}
.cost-list {
  display: grid;
  gap: 10px;
  margin-top: 17px;
}
.cost-list > div {
  display: grid;
  grid-template-columns: 105px 1fr 52px;
  gap: 9px;
  align-items: center;
}
.cost-name {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #8c95a1;
  font-size: 8px;
}
.cost-name i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
}
.cost-bar {
  height: 4px;
  border-radius: 5px;
  background: #20262e;
  overflow: hidden;
}
.cost-bar i {
  display: block;
  height: 100%;
  border-radius: 5px;
}
.cost-list b {
  text-align: right;
  font-size: 9px;
}
.sell-block {
  margin-top: 18px;
  padding: 15px;
  border: 1px solid #312c48;
  border-radius: 11px;
  background: linear-gradient(135deg, #1b1830, #11141c);
}
.sell-block > span {
  color: #756d93;
  letter-spacing: 1px;
  font-size: 7px;
  font-weight: 800;
}
.sell-price {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 9px;
}
.sell-price p {
  margin: 0;
  display: grid;
}
.sell-price p + p {
  border-left: 1px solid #302b44;
  padding-left: 14px;
}
.sell-price small {
  color: #777083;
  font-size: 7px;
}
.sell-price strong {
  margin-top: 2px;
  color: #c4b7f5;
  font-size: 20px;
}
.markup-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 13px;
  padding-top: 11px;
  border-top: 1px solid #2c283d;
}
.markup-row > span {
  color: #777083;
  font-size: 8px;
}
.markup-pills {
  display: flex;
  gap: 5px;
}
.markup-pills button {
  min-width: 38px;
  padding: 5px 7px;
  border: 1px solid #322f43;
  border-radius: 6px;
  background: #161521;
  color: #776f8d;
  font-size: 7px;
  cursor: pointer;
}
.markup-pills button.selected {
  border-color: #7562b3;
  background: #29223f;
  color: #c2b4f1;
}
.accuracy-tip {
  margin-top: 14px;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 11px;
  border-radius: 9px;
  background: #101820;
  border: 1px solid #1d2b35;
}
.accuracy-tip > span {
  color: #63a4c7;
}
.accuracy-tip p {
  margin: 0;
  color: #667784;
  font-size: 7px;
  line-height: 1.5;
}
.accuracy-tip b {
  display: block;
  margin-bottom: 2px;
  color: #8ba9b9;
}
.site-footer {
  width: min(1180px, calc(100% - 40px));
  margin: auto;
  padding: 0 0 28px;
  display: flex;
  justify-content: space-between;
  color: #4c5560;
  font-size: 8px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}
@media (max-width: 960px) {
  .hero {
    grid-template-columns: 1fr;
    gap: 26px;
  }
  .steps {
    justify-content: flex-start;
  }
  .workspace {
    grid-template-columns: 1fr;
  }
  .result-card {
    position: static;
  }
}
@media (max-width: 640px) {
  .site-header {
    height: 62px;
    padding: 0 16px;
  }
  .privacy-chip {
    font-size: 0;
    padding: 9px;
  }
  .page {
    width: calc(100% - 24px);
    padding: 32px 0 40px;
  }
  .hero {
    margin-bottom: 24px;
  }
  .hero h1 {
    font-size: 36px;
    letter-spacing: -1.8px;
  }
  .steps {
    overflow: hidden;
  }
  .steps > i {
    width: 20px;
  }
  .step small {
    display: none;
  }
  .upload-card,
  .card,
  .result-card {
    padding: 16px;
  }
  .material-pills {
    grid-template-columns: 1fr 1fr;
  }
  .detected-grid,
  .friendly-inputs,
  .advanced-grid {
    grid-template-columns: 1fr;
  }
  .file-name strong {
    max-width: 180px;
  }
  .confidence {
    display: none;
  }
  .big-cost strong {
    font-size: 36px;
  }
  .cost-list > div {
    grid-template-columns: 92px 1fr 45px;
  }
  .sell-price strong {
    font-size: 18px;
  }
  .markup-row {
    align-items: flex-start;
    flex-direction: column;
  }
  .site-footer {
    width: calc(100% - 24px);
  }
}

/* Readability pass: keep everyday controls comfortably legible without browser zoom. */
.brand small {
  font-size: 9px;
}
.privacy-chip {
  font-size: 12px;
}
.hero-kicker {
  font-size: 11px;
}
.hero > div > p {
  font-size: 16px;
}
.step > span {
  width: 32px;
  height: 32px;
  font-size: 12px;
}
.step b {
  font-size: 13px;
}
.step small {
  font-size: 10px;
}
.section-title h2,
.result-head h2 {
  font-size: 18px;
}
.section-title p,
.result-head p {
  font-size: 12px;
  line-height: 1.5;
}
.number,
.section-icon {
  width: 34px;
  height: 34px;
  flex-basis: 34px;
  font-size: 13px;
}
.link-button {
  font-size: 11px;
  padding: 6px;
}
.dropzone {
  min-height: 190px;
}
.upload-icon {
  width: 44px;
  height: 44px;
  font-size: 23px;
}
.dropzone strong {
  font-size: 16px;
}
.dropzone > span:not(.upload-icon) {
  font-size: 13px;
}
.dropzone small {
  font-size: 10px;
}
.example-button {
  font-size: 12px;
  padding: 5px;
}
.notice {
  font-size: 12px;
  line-height: 1.45;
}
.notice small {
  font-size: 10px;
}
.file-summary {
  min-height: 68px;
  padding: 13px 14px;
}
.file-badge {
  width: 50px;
  height: 42px;
  font-size: 9px;
}
.file-name strong {
  font-size: 13px;
}
.file-name small {
  font-size: 10px;
  line-height: 1.4;
}
.confidence {
  font-size: 9px;
  padding: 6px 9px;
}
.empty-state {
  height: 68px;
  font-size: 12px;
}
.detected-grid label,
.friendly-inputs label {
  min-height: 62px;
  padding: 13px 14px;
}
.detected-grid label > span,
.friendly-inputs label > span {
  font-size: 13px;
}
.detected-grid label > span small,
.friendly-inputs label > span small {
  font-size: 10px;
}
.detected-grid input,
.friendly-inputs input {
  width: 82px;
  font-size: 17px;
}
.detected-grid b,
.friendly-inputs b {
  font-size: 11px;
}
.warnings summary {
  font-size: 11px;
  padding: 11px 13px;
}
.warnings p {
  font-size: 10px;
}
.material-pills button {
  min-height: 64px;
}
.material-pills b {
  font-size: 13px;
}
.material-pills small {
  font-size: 10px;
}
.advanced > summary {
  padding: 18px 20px;
}
.advanced > summary .gear {
  width: 36px;
  height: 36px;
}
.advanced > summary b {
  font-size: 13px;
}
.advanced > summary small {
  font-size: 10px;
}
.advanced > summary > i {
  font-size: 15px;
}
.advanced-note {
  font-size: 11px;
  line-height: 1.5;
}
.advanced-grid label {
  min-height: 46px;
  font-size: 11px;
}
.advanced-grid label span {
  font-size: 11px;
}
.advanced-grid input {
  width: 68px;
  padding: 6px;
  font-size: 12px;
}
.reset-button {
  font-size: 10px;
  padding: 4px 0;
}
.ready-chip {
  font-size: 9px;
  padding: 7px 10px;
}
.big-cost {
  padding: 23px;
}
.big-cost > span {
  font-size: 10px;
}
.big-cost strong {
  font-size: 48px;
}
.big-cost small {
  font-size: 11px;
}
.cost-list {
  gap: 13px;
}
.cost-list > div {
  grid-template-columns: 125px 1fr 60px;
}
.cost-name {
  font-size: 11px;
}
.cost-name i {
  width: 8px;
  height: 8px;
}
.cost-bar {
  height: 6px;
}
.cost-list b {
  font-size: 12px;
}
.sell-block {
  padding: 18px;
}
.sell-block > span {
  font-size: 10px;
}
.sell-price small {
  font-size: 10px;
}
.sell-price strong {
  font-size: 24px;
}
.markup-row > span {
  font-size: 11px;
}
.markup-pills button {
  min-width: 44px;
  padding: 7px 9px;
  font-size: 10px;
}
.accuracy-tip {
  padding: 13px;
}
.accuracy-tip p {
  font-size: 10px;
  line-height: 1.55;
}
.accuracy-tip > span {
  font-size: 14px;
}
.site-footer {
  font-size: 10px;
}

/* Never rely on micro-text for information the user needs to operate the calculator. */
.brand small,
.dropzone small,
.file-name small,
.detected-grid label > span small,
.friendly-inputs label > span small,
.material-pills small,
.advanced > summary small {
  font-size: 11px;
}
.hero-kicker,
.step small,
.advanced-note,
.advanced-grid label,
.advanced-grid label span,
.big-cost > span,
.sell-block > span,
.sell-price small,
.markup-row > span,
.markup-pills button,
.accuracy-tip p,
.site-footer {
  font-size: 11px;
}
.big-cost small {
  font-size: 12px;
}
.cost-name {
  font-size: 12px;
}
.cost-list b {
  font-size: 13px;
}
.advanced-grid input {
  font-size: 13px;
}

@media (min-width: 1500px) {
  .site-header {
    max-width: 1600px;
  }
  .page,
  .site-footer {
    width: min(1540px, calc(100% - 80px));
  }
  .hero {
    grid-template-columns: 1fr 540px;
  }
  .workspace {
    grid-template-columns: minmax(0, 1.15fr) minmax(460px, 0.85fr);
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .privacy-chip {
    font-size: 11px;
    padding: 8px 10px;
  }
  .hero > div > p {
    font-size: 15px;
  }
  .step b {
    font-size: 12px;
  }
  .upload-card,
  .card,
  .result-card {
    padding: 18px;
  }
  .dropzone {
    min-height: 180px;
  }
  .cost-list > div {
    grid-template-columns: 112px 1fr 55px;
  }
  .big-cost strong {
    font-size: 42px;
  }
}

/* Desktop calculator controls: large enough to read at normal browser zoom. */
.section-title h2,
.result-head h2 {
  font-size: 20px;
}
.section-title p,
.result-head p {
  font-size: 14px;
}
.file-name strong {
  font-size: 15px;
}
.file-name small,
.confidence {
  font-size: 12px;
}
.detected-grid label,
.friendly-inputs label {
  min-height: 78px;
  padding: 16px 18px;
}
.detected-grid label > span,
.friendly-inputs label > span {
  font-size: 16px;
}
.detected-grid label > span small,
.friendly-inputs label > span small {
  margin-top: 5px;
  font-size: 12px;
}
.detected-grid input,
.friendly-inputs input {
  width: 110px;
  font-size: 20px;
}
.detected-grid b,
.friendly-inputs b {
  font-size: 13px;
}
.time-inputs {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
}
.time-part {
  display: flex;
  align-items: baseline;
  gap: 5px;
  padding: 0 10px;
  border-left: 1px solid #29313a;
}
.time-part:first-child {
  padding-left: 0;
  border-left: 0;
}
.time-part:last-child {
  padding-right: 0;
}
.time-part input {
  width: 48px !important;
  font-size: 20px !important;
}
.time-part b {
  font-size: 13px !important;
}
.material-pills button {
  min-height: 76px;
  padding: 10px 7px;
}
.material-pills b {
  font-size: 16px;
}
.material-pills small {
  margin-top: 5px;
  font-size: 12px;
  line-height: 1.25;
}
.profile-note {
  margin: 12px 1px 0;
  color: #7f8995;
  font-size: 13px;
  line-height: 1.5;
}
.profile-note b {
  color: #bac4ce;
}
.material-needed {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #59451f;
  border-radius: 9px;
  background: #211b0f;
  color: #d4b46e;
  font-size: 13px;
  line-height: 1.45;
}
.advanced > summary b {
  font-size: 15px;
}
.advanced > summary small {
  font-size: 12px;
}
.advanced-note {
  font-size: 13px;
}
.advanced-grid label,
.advanced-grid label span {
  font-size: 14px;
}
.advanced-grid label {
  min-height: 54px;
}
.advanced-grid input {
  width: 80px;
  padding: 7px;
  font-size: 16px;
}
.reset-button {
  font-size: 12px;
}
.big-cost small {
  font-size: 13px;
}
.cost-name,
.cost-list b {
  font-size: 14px;
}
.sell-price small,
.markup-row > span {
  font-size: 12px;
}
.markup-pills button {
  font-size: 12px;
}
.accuracy-tip p {
  font-size: 12px;
}

@media (max-width: 640px) {
  .section-title h2,
  .result-head h2 {
    font-size: 18px;
  }
  .section-title p,
  .result-head p {
    font-size: 13px;
  }
  .detected-grid label,
  .friendly-inputs label {
    min-height: 74px;
    padding: 14px 15px;
  }
  .detected-grid label > span,
  .friendly-inputs label > span {
    font-size: 15px;
  }
  .detected-grid input,
  .friendly-inputs input {
    font-size: 19px;
  }
  .material-pills button {
    min-height: 72px;
  }
  .advanced-grid label,
  .advanced-grid label span {
    font-size: 13px;
  }
  .time-part {
    padding: 0 7px;
  }
}

/* Simple / Advanced product view. Keep the calculator above the fold. */
.page {
  padding-top: 30px;
}
.compact-hero {
  grid-template-columns: minmax(0, 1fr) 440px;
  align-items: center;
  gap: 46px;
  margin-bottom: 22px;
}
.compact-hero h1 {
  max-width: 720px;
  margin: 7px 0 8px;
  font-size: clamp(30px, 3.3vw, 45px);
  line-height: 1.04;
  letter-spacing: -1.9px;
}
.compact-hero > div > p {
  max-width: 680px;
  font-size: 15px;
  line-height: 1.5;
}
.mode-box {
  padding: 12px;
  border: 1px solid #252d37;
  border-radius: 14px;
  background: #0d1117;
}
.mode-box > span {
  display: block;
  margin: 0 2px 8px;
  color: #68737f;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1.2px;
}
.mode-box > p {
  margin: 8px 3px 0 !important;
  color: #697480 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}
.mode-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}
.mode-switch button {
  min-height: 54px;
  padding: 8px 12px;
  border: 1px solid #29313a;
  border-radius: 10px;
  background: #11161c;
  color: #7f8995;
  text-align: left;
  cursor: pointer;
  transition: 0.16s;
}
.mode-switch button:hover {
  border-color: #3b4753;
}
.mode-switch button.selected {
  border-color: #3ca88d;
  background: #153129;
  color: #d6f5ec;
  box-shadow: inset 0 0 0 1px #35dfb016;
}
.mode-switch b,
.mode-switch small {
  display: block;
}
.mode-switch b {
  font-size: 14px;
}
.mode-switch small {
  margin-top: 3px;
  color: #697580;
  font-size: 11px;
}
.mode-switch .selected small {
  color: #75a99a;
}
.upload-card {
  padding: 19px 22px;
}
.upload-card .section-title {
  margin-bottom: 12px;
}
.dropzone {
  min-height: 145px;
}
.upload-icon {
  width: 40px;
  height: 40px;
  margin-bottom: 8px;
}
.dropzone small {
  margin-top: 8px;
}

.advanced-panel {
  padding: 0;
  overflow: hidden;
}
.advanced-title {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 18px 20px;
}
.advanced-title .gear {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: #181c23;
  color: #8a94a0;
}
.advanced-title > span:last-child {
  display: grid;
}
.advanced-title b {
  font-size: 15px;
}
.advanced-title small {
  margin-top: 3px;
  color: #68737f;
  font-size: 12px;
}
.advanced-panel .advanced-body {
  border-top: 1px solid #202630;
  padding: 17px 20px 20px;
}

.simple-breakdown {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 14px;
}
.simple-breakdown div {
  min-width: 0;
  padding: 13px 12px;
  border: 1px solid #242c35;
  border-radius: 10px;
  background: #0d1218;
}
.simple-breakdown span,
.simple-breakdown b {
  display: block;
}
.simple-breakdown span {
  color: #78838f;
  font-size: 12px;
  line-height: 1.25;
}
.simple-breakdown b {
  margin-top: 5px;
  color: #e7edf2;
  font-size: 16px;
}
.advanced-invite {
  width: 100%;
  margin-top: 14px;
  padding: 13px 14px;
  display: flex;
  align-items: center;
  gap: 11px;
  border: 1px solid #253440;
  border-radius: 10px;
  background: #101820;
  color: #7f9aaa;
  text-align: left;
  cursor: pointer;
}
.advanced-invite > span {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #15232d;
  color: #66a8c8;
}
.advanced-invite p {
  min-width: 0;
  margin: 0;
  display: grid;
  gap: 3px;
}
.advanced-invite b {
  color: #a9c2cf;
  font-size: 13px;
}
.advanced-invite small {
  color: #718491;
  font-size: 11px;
  line-height: 1.35;
}
.advanced-invite i {
  margin-left: auto;
  color: #68b3d5;
  font-style: normal;
  font-size: 18px;
}

@media (max-width: 960px) {
  .compact-hero {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .mode-box {
    max-width: 520px;
  }
}

@media (max-width: 640px) {
  .page {
    padding-top: 24px;
  }
  .compact-hero {
    margin-bottom: 18px;
  }
  .compact-hero h1 {
    font-size: 34px;
    letter-spacing: -1.3px;
  }
  .compact-hero > div > p {
    font-size: 14px;
  }
  .mode-box {
    padding: 10px;
  }
  .mode-switch button {
    min-height: 52px;
    padding: 8px 10px;
  }
  .upload-card {
    padding: 16px 18px;
  }
  .dropzone {
    min-height: 145px;
  }
  .simple-breakdown {
    grid-template-columns: 1fr;
  }
  .simple-breakdown div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
  }
  .simple-breakdown b {
    margin-top: 0;
  }
}

/* Local filament library */
.filament-library-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin-bottom: 12px;
}
.filament-select {
  min-height: 68px;
  padding: 10px 14px;
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  border: 1px solid #29313a;
  border-radius: 10px;
  background: #0d1116;
}
.filament-select > span {
  display: grid;
  color: #aeb7c1;
  font-size: 14px;
  font-weight: 700;
}
.filament-select > span small {
  margin-top: 4px;
  color: #64707c;
  font-size: 11px;
  font-weight: 400;
}
.filament-select select {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 36px 0 12px;
  border: 1px solid #303945;
  border-radius: 8px;
  outline: 0;
  background: #131920;
  color: #e5ebf0;
  font-size: 14px;
  cursor: pointer;
}
.filament-select select:focus {
  border-color: #42bc9c;
  box-shadow: 0 0 0 2px #35dfb012;
}
.add-filament-button {
  min-width: 145px;
  border: 1px solid #356858;
  border-radius: 10px;
  background: #153129;
  color: #8be2ca;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}
.add-filament-button:hover {
  border-color: #49b797;
  background: #183b31;
}
.selected-filament-card {
  min-height: 72px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid #2d4c42;
  border-radius: 10px;
  background: linear-gradient(120deg, #12241f, #0d1217);
}
.selected-filament-card > div {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}
.filament-material-badge {
  min-width: 50px;
  height: 38px;
  padding: 0 8px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #173c31;
  color: #59dfba;
  font-size: 11px;
  font-weight: 900;
}
.selected-filament-card p {
  min-width: 0;
  margin: 0;
  display: grid;
}
.selected-filament-card p b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
}
.selected-filament-card p small {
  margin-top: 4px;
  color: #78848f;
  font-size: 12px;
}
.selected-filament-card > button {
  flex: 0 0 auto;
  border: 1px solid #303a45;
  border-radius: 8px;
  background: #141a21;
  color: #a3aeba;
  padding: 8px 11px;
  font-size: 12px;
  cursor: pointer;
}
.selected-filament-card > button:hover {
  border-color: #465461;
  color: #d1d8df;
}

.filament-editor {
  margin-top: 12px;
  padding: 16px;
  border: 1px solid #365348;
  border-radius: 12px;
  background: #101820;
  box-shadow: 0 14px 32px #00000025;
}
.filament-editor-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 13px;
}
.filament-editor-head > div {
  display: grid;
}
.filament-editor-head b {
  font-size: 16px;
}
.filament-editor-head small {
  margin-top: 4px;
  color: #73808c;
  font-size: 12px;
}
.filament-editor-head > button {
  width: 30px;
  height: 30px;
  border: 1px solid #303944;
  border-radius: 8px;
  background: #151b22;
  color: #89949f;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
}
.filament-editor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.filament-editor-grid > label {
  min-height: 66px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid #29323d;
  border-radius: 9px;
  background: #0c1117;
}
.filament-editor-grid > label > span {
  display: grid;
  color: #a9b3bd;
  font-size: 13px;
}
.filament-editor-grid > label > span small {
  margin-top: 3px;
  color: #687480;
  font-size: 10px;
}
.filament-editor-grid input,
.filament-editor-grid select {
  width: 150px;
  max-width: 50%;
  height: 38px;
  padding: 0 9px;
  border: 1px solid #303a45;
  border-radius: 7px;
  outline: 0;
  background: #131920;
  color: #e8edf2;
  font-size: 15px;
  text-align: right;
}
.filament-editor-grid select {
  text-align: left;
  cursor: pointer;
}
.filament-editor-grid > label > div {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #74808b;
  font-size: 13px;
}
.filament-editor-grid > label > div input {
  max-width: none;
  width: 105px;
}
.filament-editor-grid input:focus,
.filament-editor-grid select:focus {
  border-color: #43b99a;
}
.filament-editor-error {
  margin: 10px 0 0;
  color: #e6a46a;
  font-size: 12px;
}
.filament-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 13px;
}
.filament-editor-actions button {
  min-height: 38px;
  padding: 0 15px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}
.cancel-filament {
  border: 1px solid #303945;
  background: #141a21;
  color: #87939f;
}
.save-filament {
  border: 1px solid #39a98b;
  background: #163a30;
  color: #9aead3;
}

/* Local printer library */
.printer-library-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  margin-bottom: 12px;
}
.printer-select {
  min-height: 68px;
  padding: 10px 14px;
  display: grid;
  grid-template-columns: 170px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  border: 1px solid #29313a;
  border-radius: 10px;
  background: #0d1116;
}
.printer-select > span {
  display: grid;
  color: #aeb7c1;
  font-size: 14px;
  font-weight: 700;
}
.printer-select > span small {
  margin-top: 4px;
  color: #64707c;
  font-size: 11px;
  font-weight: 400;
}
.printer-select select {
  width: 100%;
  min-width: 0;
  height: 42px;
  padding: 0 36px 0 12px;
  border: 1px solid #303945;
  border-radius: 8px;
  outline: 0;
  background: #131920;
  color: #e5ebf0;
  font-size: 14px;
  cursor: pointer;
}
.printer-select select:focus {
  border-color: #42bc9c;
  box-shadow: 0 0 0 2px #35dfb012;
}
.add-printer-button {
  min-width: 145px;
  border: 1px solid #356858;
  border-radius: 10px;
  background: #153129;
  color: #8be2ca;
  padding: 0 16px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}
.add-printer-button:hover {
  border-color: #49b797;
  background: #183b31;
}
.selected-printer-card {
  min-height: 70px;
  margin-bottom: 12px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid #2d4c42;
  border-radius: 10px;
  background: linear-gradient(120deg, #12241f, #0d1217);
}
.selected-printer-card > div {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}
.printer-icon {
  width: 42px;
  height: 38px;
  flex: 0 0 42px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #173c31;
  color: #59dfba;
  font-size: 16px;
}
.selected-printer-card p {
  min-width: 0;
  margin: 0;
  display: grid;
}
.selected-printer-card p b {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
}
.selected-printer-card p small {
  margin-top: 4px;
  color: #78848f;
  font-size: 12px;
}
.selected-printer-card > button {
  flex: 0 0 auto;
  border: 1px solid #303a45;
  border-radius: 8px;
  background: #141a21;
  color: #a3aeba;
  padding: 8px 11px;
  font-size: 12px;
  cursor: pointer;
}
.printer-editor {
  margin: 0 0 14px;
  padding: 16px;
  border: 1px solid #365348;
  border-radius: 12px;
  background: #101820;
  box-shadow: 0 14px 32px #00000025;
}
.printer-editor-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}
.printer-editor-grid > label {
  min-height: 66px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid #29323d;
  border-radius: 9px;
  background: #0c1117;
}
.printer-editor-grid > label > span {
  display: grid;
  color: #a9b3bd;
  font-size: 13px;
}
.printer-editor-grid > label > span small {
  margin-top: 3px;
  color: #687480;
  font-size: 10px;
}
.printer-editor-grid input {
  width: 150px;
  max-width: 50%;
  height: 38px;
  padding: 0 9px;
  border: 1px solid #303a45;
  border-radius: 7px;
  outline: 0;
  background: #131920;
  color: #e8edf2;
  font-size: 15px;
  text-align: right;
}
.printer-editor-grid > label > div {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #74808b;
  font-size: 13px;
}
.printer-editor-grid > label > div input {
  max-width: none;
  width: 105px;
}
.printer-editor-grid input:focus {
  border-color: #43b99a;
}
.advanced-note b {
  color: #b8c5cc;
}

@media (max-width: 640px) {
  .filament-library-row {
    grid-template-columns: 1fr;
  }
  .filament-select {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .add-filament-button {
    min-height: 48px;
  }
  .selected-filament-card {
    align-items: flex-start;
    flex-direction: column;
  }
  .filament-editor-grid {
    grid-template-columns: 1fr;
  }
  .filament-editor-grid input,
  .filament-editor-grid select {
    max-width: 55%;
  }
  .printer-library-row {
    grid-template-columns: 1fr;
  }
  .printer-select {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  .add-printer-button {
    min-height: 48px;
  }
  .selected-printer-card {
    align-items: flex-start;
    flex-direction: column;
  }
  .printer-editor-grid {
    grid-template-columns: 1fr;
  }
  .printer-editor-grid input {
    max-width: 55%;
  }
}
