@font-face {
  font-family: 'BabelStoneModern';
  src: url("../fonts/BabelStoneModern.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  width: 100%;
  max-width: 100vw;
  min-width: 100vw;
  overflow-x: hidden;
}

body {
  width: 100%;
  max-width: 100vw;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

input,
select,
textarea,
button {
  font-size: 16px !important;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

select.rn-select {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  outline: none;
}

select.rn-select::-ms-expand {
  display: none;
}


.rn-pop {
  position: fixed;
  z-index: 100000;
}


:root {

  --clr-bg-body: #151515;
  --clr-text: #f4f4f4;
  --clr-primary: #b58335;
  --clr-primary-dark: #1f1f1f;
  --clr-secondary-dark: #414141;
  --clr-mid-dark: #8e8e8e;
  --clr-primary-light: #f4f4f4;
  --clr-secondary-light: #b7b7b7;
  --clr-inactivep-light: #737373;
  --clr-accent: #d69134;
  --clr-nav-bg: #222;
  --clr-nav-text: #eaeaea;
  --clr-dc-text: #5a3f00;
  --clr-catcolor-Surface: #55F978;
  --clr-catcolor-screws: #B3DDDC;
  --clr-catcolor-coping: #A75CFF;
  --clr-catcolor-finish: #3EA3FF;
  --clr-catcolor-foundation: #7c7c7c;
  --clr-catcolor-structure: #d74f22;
  --clr-catcolor-generic: #d2d2d28b;
  --clr-catcolor-downloads: #393939cb;

    --clr-preview-accent: #00f7ffcb;

  --font-body: "Inter", sans-serif;
  --font-h1: "Inter", sans-serif;
  --font-heading: 'BabelStoneModern', sans-serif;

  --radius: .5rem;
  --gutter-header: 1.5rem;
  --gutter-content: 4rem;
  --max-width: 960px;
  --section-space: 10rem;
  --header-height: 82px;

  --clr-bg-app: #2a2a2a;
  --glass-50: rgba(42, 42, 42, 0.5);
  --glass-70: rgba(37, 36, 34, 0.797);
  --slider-track: rgba(83, 83, 83, 0.9);
  --shadow-35: rgba(0, 0, 0, 0.55);

  --font-heading: 'BabelStoneModern', sans-serif;
  --font-mono: 'Roboto Mono', ui-monospace, SFMono-Regular, Menlo, monospace;


  --fs-body: .8rem;
  --lh-body: 1.55;
  --fs-small: .65rem;


  --fw-regular: 400;
  --fw-bold: 700;
  --fw-body: var(--fw-regular);
  --fw-body-bold: var(--fw-bold);
  --fw-small: var(--fw-regular);
  --fw-small-bold: var(--fw-bold);


  --ls-uc: .12em;
  --ls-uc-tight: .08em;

  --table-mt: 1.25rem;
  --table-mb: 2.25rem;
  --dl-btn-width: 22rem;
}

@media (max-width: 640px) {
  :root {


    --table-mt: 1.25rem;
    --table-mb: 2.25rem;
    --dl-btn-width: 22rem;
    --fs-body: .7rem;
    --lh-body: 1.55;
    --fs-small: .65rem;
    --table-mt: 0.70rem;
    --table-mb: 1.25rem;
    --dl-btn-width: 22rem;



  }
}


.times {
  color: var(--clr-accent);
}

.substep-content,
.coping-table,
.cutout-substep .coping-table .bottom-text-row .substep-text,
.cutout-substep .bottom-text-row .substep-text {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Roboto Mono', monospace;
}

.bottom-text-row .substep-text-small,
.cutout-substep .bottom-text-row .substep-text-small {
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  text-transform: none;
  letter-spacing: 0;
  font-family: 'Roboto Mono', monospace;
}

html,
body {
  height: auto !important;
  min-height: 0 !important;
  overflow-y: auto;
  touch-action: pan-y;
}

body {
  font-family: 'BabelStoneModern', sans-serif;
  background: var(--clr-bg-app);
  color: var(--clr-secondary-light);
  margin: 0;
  padding: 0 2rem 2rem;
  background-image: url('https://rampnerd.s3.us-east-1.amazonaws.com/productimg/rampnerd_bglogo.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-attachment: fixed;
  background-size: contain;
  text-transform: uppercase;
}


html {
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

.substep-content.img-text {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  align-items: flex-start;
}


.substep-content.img-text.tpl-img-above .rn-img,
.snav-content.img-text.tpl-img-above .rn-img {
  width: 100%;
  max-width: var(--img-max, 100%);
  flex: 0 0 auto;
  margin-left: auto;
  margin-right: auto;
}


.substep-content.tpl-img-above .substep-text,
.snav-content.tpl-img-above .snav-text {
  width: 100%;
}


.subcontainer-header,
.substep-title,
.cutout-substep .table-title,
.cutout-substep .table-label,
.cutout-substep .units-label,
.legend-grid .lg-label,
.filter-meta,
.category-header,
table th,
.lg-label,
.lg-val {
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: var(--ls-uc);
}


.legend-grid {
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

.legend-grid .lg-label {
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: var(--ls-uc);
}

.legend-grid .lg-val {
  font-family: var(--font-mono);
  letter-spacing: 0;
  text-transform: none;
  font-weight: var(--fw-body);
}


.substep-content,
.coping-table,
.cutout-substep .coping-table,
.bottom-text-row .substep-text,
.cutout-substep .bottom-text-row .substep-text,
#flatLegend .lg-val {
  font-family: var(--font-mono);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  letter-spacing: 0;
  text-transform: none;
  font-weight: var(--fw-body);
  color: inherit;
}

.bottom-text-row .substep-text-small,
.cutout-substep .bottom-text-row .substep-text-small {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  letter-spacing: 0;
  text-transform: none;
  font-weight: var(--fw-small);
  color: inherit;
}


.text-body {
  font-family: var(--font-mono);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-weight: var(--fw-body);
}

.text-body--bold {
  font-family: var(--font-mono);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  font-weight: var(--fw-body-bold);
}

.text-small {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  font-weight: var(--fw-small);
}

.text-small--bold {
  font-family: var(--font-mono);
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  font-weight: var(--fw-small-bold);
}

.text-heading-uc {
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: var(--ls-uc);
}

.text-heading-uc-tight {
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: var(--ls-uc-tight);
}




body {
  padding-top: 0 !important;
}

body>.shared-container:first-of-type,
body>.top-category:first-of-type,
body>.category:first-of-type {
  margin-top: 0 !important;
}


.header-container {
  max-width: 960px;
  margin: 1.rem auto 2.5rem auto;
  background: transparent;

}

.shared-container,
.par-container {
  max-width: 960px;
  width: auto;
  margin: 0 auto;
  border-radius: 16px;
  background: var(--glass-70);
  box-shadow: 0 12px 60px var(--shadow-35);
  overflow: hidden;
  position: relative;
}

.shared-container.nav-container {
  overflow: visible;
  padding: 1rem 1.25rem 1.25rem;
}

.nav-container.is-gated {
  display: flex !important;
  align-items: center;
  justify-content: center !important;
  min-height: 80px;
}

.nav-container.is-gated .nav-grid,
.nav-container.is-gated .actions,
.nav-container.is-gated .dl-actions {
  display: none !important;
}

.nav-grid {
  display: grid;
  grid-template-rows: auto auto;
  row-gap: 1.75rem;
  padding-inline: 1.25rem;
}


.filter-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.filter-icon {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: inline-block;
  opacity: .85;
  background-color: var(--clr-secondary-light);
  -webkit-mask: url("/webicons/filter_icon.svg") no-repeat center / contain;
  mask: url("/webicons/filter_icon.svg") no-repeat center / contain;
}



.footer-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cutout-substep .table-title {
  font-family: 'BabelStoneModern', sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--clr-primary-light);
  margin-bottom: .4rem;
}

.cutout-substep .table-label {
  font-family: 'BabelStoneModern', sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--clr-secondary-light);
  margin-bottom: .4rem;
}

.cutout-substep .coping-od-row {
  padding-top: .5rem;
  border-top: 1px dashed rgba(255, 255, 255, .12);
  text-align: center;
  font-family: 'BabelStoneModern', sans-serif;
  letter-spacing: .08em;
}

.cutout-substep .units-label,
.cutout-substep>.substep-title {
  font-family: 'BabelStoneModern', sans-serif;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--clr-primary-light);
}

.filter-meta {
  font-family: 'BabelStoneModern', sans-serif;
  letter-spacing: .16em;
  color: var(--clr-secondary-light);
  font-size: 1.6rem;

  opacity: .28;
  user-select: none;
}

.shared-container {
  margin-bottom: 2rem;
}

.par-container {
  margin-bottom: 0rem;
}


.top-category {
  margin-top: 0rem;
}

.category {
  margin-top: 0rem;
}

.parent-container h1 {
  font-size: 2rem;

  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  text-align: center;
}


.nav-container.is-gated
.actions 
 .filter-row #gateMsg {
  display: flex !important;
  align-items: center;
  gap: .5rem;
}

.nav-container:not(.is-gated) .filter-row #gateMsg {
  display: none !important;
}

.nav-container.is-gated #navMsg {
  display: block !important;
}

.nav-container:not(.is-gated) #navMsg {
  display: none !important;
}


.nav-msg {
  display: none;
  align-items: center;
  justify-content: center;
  min-width: 20rem;
  height: 2.8rem;
  padding: 0 1.25rem;
  border-radius: .5rem;
  background: var(--glass-70);
  color: var(--clr-inactivep-light);
  box-shadow: 0 4px 12px var(--shadow-35);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 600;
  user-select: none;
  pointer-events: none;
}

.button-group {
  position: absolute;
  top: 1rem;
  right: 1rem;
  display: flex;
  gap: 2.2rem;
}

.share-button,
.print-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 30%;
  border: none;
  cursor: pointer;
  background: var(--glass-70);
  box-shadow: 0 4px 12px var(--shadow-35);
  backdrop-filter: blur(4px) saturate(100%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
  transition: background 0.4s ease, transform 0.4s ease;
  padding: 0;
}

.share-button img,
.print-button img {
  width: 1.2rem;
  height: 1.2rem;
  display: block;
}

.share-button:hover img,
.print-button:hover img {
  filter: brightness(0) invert(1);
}


.category-header {
  color: var(--clr-bg-body);
  padding: 0.75rem 2.5rem;
  font-size: 1.5rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  background: var(--cat-color);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.Surface {
  --cat-color: var(--clr-catcolor-Surface);
}

.frame-platform {
  --cat-color: var(--clr-catcolor-structure);
}

.screws {
  --cat-color: var(--clr-catcolor-screws);
}

.finish {
  --cat-color: var(--clr-catcolor-finish);
}

.coping {
  --cat-color: var(--clr-catcolor-coping);
}

.foundation {
  --cat-color: var(--clr-catcolor-foundation);
}

.downloadcontainer {
  --cat-color: var(--clr-secondary-light);
}

.generic {
  --cat-color: var(--clr-catcolor-generic);
}

.downloads {
  --cat-color: var(--clr-catcolor-downloads);
}


table {
  width: 100%;
  background: transparent;
  border-collapse: collapse;
  box-shadow: none;
 margin: var(--table-mt) auto var(--table-mb);
}

.subcontainer-content>table.cut-table {
  margin-block: 1.25rem 2.25rem !important;
}



table th,
table td {
  padding: .5rem .5rem;
  text-align: left;
}

table th {
  font-size: .9rem;
  text-transform: uppercase;
  color: var(--clr-secondary-light);
  letter-spacing: 0.15em;
}

table td img {
  width: 90px;
  border-radius: 10px;
  z-index: 0;
  display: block;
}

table .product-name {
  font-weight: bold;
  margin-bottom: 0.25rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

table .product-tag,
.product-tag {
  display: inline-block;
  background: var(--clr-secondary-dark);
  color: var(--cat-color, var(--clr-catcolor-generic));
  font-size: .75rem;
  padding: .2rem .5rem;
  border-radius: 8px;
  margin-bottom: .4rem;
  text-transform: uppercase;
  letter-spacing: .12em;
}





.user-cur {
  font-size: 0.55em;
  margin-right: 4px;
  color: var(--clr-primary);
  text-align: right;
}


.finish-img-wrap {
  position: relative;
  display: inline-block;
  border-radius: 12px;
}

.finish-img-wrap .paint-plane {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  z-index: 1;
}

.finish-img-wrap img {
  position: relative;
  z-index: 2;
  display: block;
  width: 100%;
  height: auto;
  border-radius: inherit;
}

table td .finish-img-wrap {
  width: 90px;
}

.step-number {
  position: relative;
  display: inline-block;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--cat-color, transparent);
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  text-shadow: none !important;

  vertical-align: middle;
}

.step-number::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translate(-50%, -50%);

  display: block;
  background-color: var(--clr-primary-dark);


  -webkit-mask-image: var(--step-icon);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: 50% 50%;
  -webkit-mask-size: contain;
  mask-image: var(--step-icon);
  mask-repeat: no-repeat;
  mask-position: 50% 50%;
  mask-size: contain;
}


.step-number.icon-screw {
  --step-icon: url('/build/buildmedia/screw_icon.svg');
}

.step-number.icon-assembly {
  --step-icon: url('/webicons/ASSEMBLY_icon.svg');
}

.step-number.icon-bom {
  --step-icon: url('/webicons/bom_icon.svg');
}

.step-number.icon-cutlist {
  --step-icon: url('/webicons/cutlist_icon.svg');
}

.step-number.icon-download {
  --step-icon: url('/webicons/download_icon.svg');
}

.step-number {
  --step-icon: none;
}

.subcontainer[isBOM] .step-number,
.subcontainer[isbom] .step-number,
.subcontainer[IsBom] .step-number {
  --step-icon: url("/webicons/bom_icon.svg");
}

.subcontainer[IsCutList] .step-number,
.subcontainer[iscutlist] .step-number,
.subcontainer[isCutList] .step-number {
  --step-icon: url("/webicons/cutlist_icon.svg");
}

.subcontainer[IsDownLoad] .step-number,
.subcontainer[isdownload] .step-number,
.subcontainer[isdown] .step-number {
  --step-icon: url("/webicons/download_icon.svg");
}


.subcontainer {
  width: auto;
  margin: 1rem 0.5rem;
  background: var(--glass-70);
  border-radius: 8px;
  padding: 1rem 1.5rem;
  box-shadow: 0 4px 20px var(--shadow-35);
  position: relative;
}

.subcontainer-header {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: .6rem;
  cursor: pointer;
  font-family: 'BabelStoneModern', sans-serif;
  font-size: 1.2rem;
  text-transform: uppercase;
  color: var(--clr-primary-light);
}

.subcontainer-header img {
  width: 1rem;
  height: 1rem;
  margin-left: auto;
  transition: transform 0.3s ease;
}

.subcontainer.collapsed>.subcontainer-content {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
  content-visibility: hidden;
}

.shared-container.cat-collapsible.is-cat-collapsed>.cat-body[hidden] {
  display: none !important;
}

.cat-preview {
  max-height: 220px;
  overflow: hidden;
}

.cat-preview svg,
.cat-preview img {
  display: block;
  width: 100%;
  height: auto;
}


.subcontainer.collapsed .subcontainer-header img {
  transform: rotate(180deg);
}


.substep-value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Roboto Mono', monospace;
  font-weight: 400;
  font-size: 1rem;
  background: var(--clr-primary-dark);
  color: var(--clr-primary-light);
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
}

.substep {
  margin-bottom: 1rem;
}

.substep-header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin-bottom: 0.8rem;
}

.substep-title {
  font-family: 'BabelStoneModern', sans-serif;
  font-size: 1rem;
  color: var(--clr-primary-light);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.substep-content,
.solostep-content {
  font-family: 'Roboto Mono', monospace;
  padding: 1rem 1.5rem;
  font-size: 0.85rem;
  color: var(--clr-primary-light);
  line-height: 1.65;
  margin-bottom: 1rem;
}

.spacer {
  height: 1.5rem;
}

.lspacer {
  height: 3rem;
}

.substep-content.img-text {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  text-transform: none;
}

.substep-image img {
  width: 200px;
  border-radius: 8px;
  box-shadow: 0 4px 20px var(--shadow-35);
}

.substep-text {
  flex: 1;
}

.embedded-layout {
  width: 100%;
  border: none;
  display: block;
  min-height: 400px;
}

.svgembedded-layout {
  max-width: 100%;
}

.svgembedded-layout svg {
  display: block;
  width: 100%;
  height: auto;
}


#svg-sidepanel-A.svgembedded-layout,
#svg-sidepanel-B.svgembedded-layout {

  padding: 24px 24px 24px 24px;
  padding-bottom: clamp(0px, 4vh, 50px);
}

#flatbottomInline,
#flatbottomImg {
  padding: 24px;
  padding-bottom: 48px;
}

.svgembedded-layout svg {
  display: block;
}

.image-table-row {
  gap: clamp(16px, 2.4vw, 28px);
}


.switch {
  position: relative;
  display: inline-block;
  width: 3rem;
  height: 1.6rem;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.switch .slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--slider-track);
  border-radius: 0.66rem;
  border: none;
  transition: background 0.3s;
}

.switch .slider::before {
  content: 'OFF';
  position: absolute;
  left: 0;
  top: 0;
  width: 52%;
  height: 104%;
  border-radius: 30%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'BabelStoneModern', sans-serif;
  font-size: 0.5rem;
  background: var(--clr-secondary-light);
  color: var(--clr-bg-body);
  box-shadow: 0 4px 12px var(--shadow-35);
  backdrop-filter: blur(4px) saturate(100%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
  transition: background 0.4s ease, transform 0.4s ease, opacity 0.3s;
}

.switch .slider::after {
  content: 'ON';
  position: absolute;
  right: 0;
  top: 0;
  width: 52%;
  height: 104%;
  border-radius: 30%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'BabelStoneModern', sans-serif;
  font-size: 0.6rem;
  background: var(--clr-nav-bg);
  color: var(--clr-primary-light);
  box-shadow: 0 4px 12px var(--shadow-35);
  backdrop-filter: blur(4px) saturate(100%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
  transition: background 0.4s ease, transform 0.4s ease;
  opacity: 0;
  transition: opacity 0.3s;
}

.switch--mode .slider::before {
  content: 'MAN';
}

.switch--mode .slider::after {
  content: 'CNC';
}

.switch input:checked+.slider {
  background: var(--clr-accent);
}

.switch input:checked+.slider::before {
  opacity: 0;
}

.switch input:checked+.slider::after {
  opacity: 1;
}


.appbar {
  max-width: var(--max-width);
  margin: 0 auto 1rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .75rem 1rem;
  background: var(--glass-70);
  border-radius: 12px;
  box-shadow: 0 8px 28px var(--shadow-35);
}

.appbar .proj-info {
  display: flex;
  gap: 1.5rem;
  align-items: center;
}

.appbar .proj-line strong {
  font-size: .55rem;
  color: var(--clr-secondary-light);
  letter-spacing: .1em;
  display: block;
}

.appbar .proj-line span {
  color: var(--clr-nav-text);
  letter-spacing: .12em;
}

.mode-wrap {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.mode-label {
  font-family: 'BabelStoneModern', sans-serif;
  font-size: 1.05rem;
  color: var(--clr-primary-light);
  letter-spacing: .12em;
}

.actions {
  display: flex;
  align-items: left;
  gap: 1.5rem;
}

.actions .act {
  width: 9.3rem;
  height: 2.8rem;
  border: 0;
  border-radius: .5rem;
  background: var(--clr-catcolor-coping);
  color: var(--clr-mid-dark);
  cursor: pointer;
  font-size: 1rem;
  font-family: inherit;
}

.actions .download {
  width: 90%;
  height: 2.8rem;
  border: 0;
  border-radius: .5rem;
  background: var(--clr-catcolor-coping);
  color: var(--clr-mid-dark);
  cursor: pointer;
}

.dl-btn .share-button,
.print-button,
.actions .act {
  border: none;
  cursor: pointer;
  background: var(--glass-70);
  box-shadow: 0 4px 12px var(--shadow-35);
  backdrop-filter: blur(4px) saturate(100%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
  transition: background 0.4s ease, transform 0.4s ease;
  font-family: inherit;
}

.actions .act:hover,
.share-button:hover,
.print-button:hover {
  box-shadow: 0 8px 24px var(--shadow-35);
  transform: scale(1.1);
}

.share-button:hover img,
.print-button:hover img,
.actions .act:hover img {
  filter: brightness(0) invert(1);
}

.actions .act.active {
  background: var(--clr-nav-bg);
  box-shadow: 0 8px 24px var(--shadow-35);
  color: var(--clr-accent);
}

.dl-actions {
  flex-direction: column;
  align-items: left;
  gap: 2.25rem;
}


.dl-actions .dl-btn {
  width: var(--dl-btn-width);
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  text-align: left;
  gap: .6rem;
  padding: .9rem 1rem;
  white-space: nowrap;
}

.dl-actions .dl-btn img {
  flex: 0 0 auto;
  width: 1.1rem;
  height: 1.1rem;
}

.dl-actions .dl-btn span {
  flex: 1 1 auto;
  text-align: left;
}

.dl-actions .dl-btn.is-disabled {
  opacity: .55;
  pointer-events: none;
}


.nav-container .actions .act {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.6rem;
  text-align: left;
  padding-inline: 1rem;
}

.nav-container .actions .act::before {
  content: "";
  display: inline-block;
  width: 2.5rem;
  height: 2.5rem;
  flex: 0 0 1.2rem;
  background-color: currentColor;
  -webkit-mask: var(--icon) no-repeat center/contain;
  mask: var(--icon) no-repeat center/contain;
}

#filterShowAll {
  --icon: url("/webicons/expandall_icon.svg");
}

#filterAssembly {
  --icon: url("/webicons/ASSEMBLY_icon.svg");
}

#filterBOM {
  --icon: url("/webicons/bom_icon.svg");
}

#filterCutList {
  --icon: url("/webicons/cutlist_icon.svg");
}

#filterDOWN {
  --icon: url("/webicons/download_icon.svg");
}



.act--wide img {
  width: 18px;
  height: 18px;
  filter: brightness(0) invert(1);
  opacity: .95;
}

#page {

  display: grid;
  grid-template-rows: auto auto auto;
  gap: 1rem;
  min-height: 0;
}

#page {
  padding-top: 2.25rem;
}

#content {
  min-height: auto;
  overflow: visible;
}


#content iframe::-webkit-scrollbar {
  display: none;
}

.category-header.miframe-header {
  background-color: var(--clr-bg-app);
  color: var(--clr-secondary-light);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.category-header .miframe-header {
  color: var(--clr-primary-light);
  text-transform: inherit;
  letter-spacing: inherit;
  font: inherit;
  white-space: nowrap;
}

.category-header.miframe-header .grand-wrap {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 16px;
}

.grand-label {
  color: var(--clr-secondary-light);
  text-transform: inherit;
  letter-spacing: inherit;
  font: inherit;
  font-size: 0.6em;
  white-space: nowrap;
}

.category-header.miframe-header .grand-pill {
  min-width: 180px;
  padding: 10px 16px;
  border: none;
  border-radius: .5rem;
  color: var(--clr-primary-light);
  font-size: 0.8em;
  letter-spacing: .05em;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  font-family: inherit;
}

.grand-pill {
  background: var(--clr-nav-bg);
}

#buildHeader .project-info {
  --val-size: 1.1rem;
  --val-lh: 1.1;
  --val-pad-y: 1.0em;
  flex: 2;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .6rem 2rem;
  padding-left: 1.5rem;
  margin-top: .2rem;
}

#buildHeader .project-info .info-row {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}

#buildHeader .project-info .info-row>strong {
  font-size: .85rem;
  color: var(--clr-secondary-light);
  letter-spacing: .1em;
}

#buildHeader .project-info .info-row>span,
#buildHeader .project-info .info-row>.rn-select {
  font-family: 'BabelStoneModern', sans-serif;
  font-size: var(--val-size);
  line-height: var(--val-lh);
  letter-spacing: .1em;
  text-transform: uppercase;
  display: inline-block;
  vertical-align: baseline;
  padding-block: var(--val-pad-y);
}

#buildHeader #projUser,
#buildHeader #projUid2 {
  color: var(--clr-accent);
}


#buildHeader .rn-select {
  padding: var(--val-pad-y) 2.2em var(--val-pad-y) 1em;
  border: none;
  border-radius: var(--radius);
  background: var(--glass-70);
  box-shadow: 0 4px 12px var(--shadow-35);
  backdrop-filter: blur(4px) saturate(100%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
  appearance: none;
  -webkit-appearance: none;
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='%23b7b7b7'><path d='M7 10l5 5 5-5z'/></svg>");
  background-repeat: no-repeat;
  background-position: right .9em center;
  background-size: 1.1em 1.1em;
}

#buildHeader .rn-select.rn-select--accent,
#buildHeader .rn-select.rn-option--accent {
  color: var(--clr-accent);
}

.rn-select--mode,
.rn-option--mode {
  color: var(--clr-secondary-light);
}

#buildHeader .rn-select:hover {
  transform: translateZ(0) scale(1.03);
  box-shadow: 0 8px 24px var(--shadow-35);
}

#buildHeader .rn-select:focus {
  outline: 0;
}

#buildHeader .rn-select option {
  background: var(--clr-bg-app);
  color: inherit;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.rn-cselect {
  position: relative;
  display: inline-block;
}

.rn-cselect select {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}

.rn-menu {
  position: absolute;
  top: calc(100% + .35rem);
  left: 0;
  min-width: max(220px, var(--trigger-w, 0px));
  padding: .35rem;
  border-radius: var(--radius);
  background: var(--clr-nav-bg);
  color: var(--clr-primary-light);
  box-shadow: 0 12px 40px var(--shadow-35);
  display: none;
  z-index: 1000;
}

.rn-cselect.is-open .rn-menu {
  display: block;
}

.rn-option {
  list-style: none;
  padding: .6rem .9rem;
  margin: .1rem 0;
  border-radius: .4rem;
  font-family: 'BabelStoneModern', sans-serif;
  text-transform: uppercase;
  letter-spacing: .12em;
  line-height: 1.1;
  cursor: pointer;
  user-select: none;
  outline: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.rn-option:hover,
.rn-option[aria-current="true"] {
  background: var(--glass-70);
}

.rn-option[aria-selected="true"]::after {
  content: "•";
  opacity: .9;
}

.rn-pop .item[data-status="final"]   { color: var(--clr-primary) !important; }
.rn-pop .item[data-status="active"]  { color: var(--clr-mid-dark) !important; }
.rn-pop .item[data-status="preview"] { color: var(--clr-preview-accent) !important; }
.rn-pop .item:not([data-status])     { color: inherit; }


select#projSelect option[data-status="final"]   { color: var(--clr-primary); }
select#projSelect option[data-status="active"]  { color: var(--clr-mid-dark); }
select#projSelect option[data-status="preview"],
select#projSelect option[value^="DEMO:"]        { color: var(--clr-preview-accent); }

/* AFTER */
#buildHeader #projSelect[data-status="final"]   { color: var(--clr-primary) !important; }
#buildHeader #projSelect[data-status="active"],
#buildHeader #projSelect:not([data-status])     { color: var(--clr-mid-dark) !important; }
#buildHeader #projSelect[data-status="preview"] { color: var(--clr-preview-accent) !important; }




#buildHeader #projSelect.rn-select--accent {
  color: inherit !important;
}

#buildHeader.par-container {
  overflow: visible;
}

.rn-pop {
  position: fixed;
  left: 0;
  top: 0;
  transform: translate(var(--x, 0), var(--y, 0));
  min-width: var(--w, 220px);
  padding: .35rem;
  border-radius: var(--radius);
  background: var(--clr-nav-bg);
  box-shadow: 0 12px 40px var(--shadow-35);
  display: none;
  z-index: 100000;
  pointer-events: auto;
}




.rn-pop.open {
  display: block;
}

.rn-pop .item {
  padding: .6rem .9rem;
  margin: .1rem 0;
  border-radius: .4rem;
  cursor: pointer;
  user-select: none;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .12em;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.rn-pop .item:hover,
.rn-pop .item[aria-current="true"] {
  background: var(--glass-70);
}

.rn-pop .item[aria-selected="true"]::after {
  content: "•";
  opacity: .9;
}


.shared-container.cat-collapsible.is-cat-collapsed .subcontainer-content {
  display: none !important;
}

.category-header .cat-toggle {
  margin-left: auto;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 30%;
  border: 0;
  color: var(--clr-primary-light);
  background: var(--glass-70);
  box-shadow: 0 4px 12px var(--shadow-35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform .3s ease;
}

.cat-collapsible .cat-preview {
  display: none;
  padding: 1rem 1.5rem;
}

.cat-collapsible.is-cat-collapsed .cat-body {
  display: none !important;
}

.cat-collapsible.is-cat-collapsed .cat-preview {
  display: block !important;
}

.cat-preview-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.cat-thumb {
  width: 180px;
  max-width: 35%;
  border-radius: 8px;
  overflow: hidden;
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cat-thumb img {
  display: block;
  width: 100%;
  height: auto;
}

.shared-container .category-header .cat-toggle {
  margin-left: auto;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 0;
  border-radius: 30%;
  line-height: 0;
  cursor: pointer;
  color: var(--clr-primary-light);
  background: var(--glass-70);
  box-shadow: 0 4px 12px var(--shadow-35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .3s ease;
}



.shared-container .category-header .cat-toggle svg {
  width: 22px;
  height: 22px;
  display: block;
}

.shared-container .category-header .cat-toggle svg path {
  fill: currentColor;
  stroke: none;
}

.shared-container.is-cat-collapsed .category-header .cat-toggle {
  transform: rotate(0deg);
}

.shared-container:not(.is-cat-collapsed) .category-header .cat-toggle {
  transform: rotate(180deg);
}




svg[data-scope="sides"] .marker text:not(.marker-text) {
  fill: #2a2a2a;
  font-size: 72px;
  text-anchor: middle;
  dominant-baseline: middle;
}

svg[data-scope="sides"] .marker .marker-text {
  fill: #2a2a2a;
  font-size: 28px;
  text-anchor: middle;
  dominant-baseline: middle;
}

svg[data-scope="sides"] .marker.m1 text:not(.marker-text) {
  fill: #2a2a2a;
}

svg[data-scope="sides"] .marker.m2 text:not(.marker-text) {
  fill: #2a2a2a;
}

svg[data-scope="sides"] .marker.m3 text:not(.marker-text) {
  fill: #2a2a2a;
}


.os-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 30%;
  border: none;
  background: var(--clr-secondary-dark);
  color: var(--clr-secondary-light);
  font-family: 'BabelStoneModern', sans-serif;
  font-size: 1.2rem;
  line-height: 1;
  user-select: none;
}

.os-badge.os-badge--label {
  width: auto;
  height: 1.8rem;
  padding: 0 .75rem;
  border-radius: 12px;
  font-size: .75rem;
  letter-spacing: .12em;
}

.os-cut-table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--table-mt) 0 var(--table-mb);
}

.os-cut-table th,
.os-cut-table td {
  padding: .65rem .75rem;
}

.os-cut-table th {
  text-align: left;
  color: var(--clr-primary-light);
  letter-spacing: .12em;
}

.os-cut-table td {
  text-align: left;
  text-transform: none;
  letter-spacing: 0;
  color: var(--clr-primary-light);
}


.os-cut-table td:nth-child(2) {
  min-width: 6ch;
}

.os-cut-table td:nth-child(3) {
  width: 42px;
  opacity: .9;
}

.os-cut-table td:nth-child(5) {
  min-width: 4ch;
}

.os-cut-table td::before,
.os-cut-table td::after {
  content: none !important;
}



.has-units {
  max-width: 520px;
  margin: 0 auto 2rem !important;
  border-collapse: separate;
  border-spacing: 0 .5rem;
  margin: var(--table-mt) 0 var(--table-mb);
}



.has-units tbody tr {
  position: relative;
}

.has-units tbody tr::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 14px;
  background: var(--glass-70);
  box-shadow: 0 6px 16px var(--shadow-35);
  backdrop-filter: blur(4px) saturate(100%);
  -webkit-backdrop-filter: blur(4px) saturate(120%);
  pointer-events: none;
  z-index: 0;
}

.has-units td:nth-child(2) {
  min-width: 7ch;
}

.has-units td:nth-child(4) {
  min-width: 3ch;
}


.has-units th,
.has-units td {
  padding: .40rem .60rem;
  position: relative;
  z-index: 1;
}


.th {
  text-align: center;
  color: var(--clr-primary-light);
  letter-spacing: .12em;
}

.td {
  text-align: center;
  font-family: 'BabelStoneModern', sans-serif;
  font-size: 1.2rem;
  line-height: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--clr-primary-light);
}


.cut-table.has-units th:nth-child(1),
.cut-table.has-units td:nth-child(1) {
  text-align: center;
}

.cut-table.has-units th:nth-child(2),
.cut-table.has-units td:nth-child(2) {
  text-align: center;
  width: 40px;
  opacity: .9;
}

.cut-table.has-units th:nth-child(3),
.cut-table.has-units td:nth-child(3) {
  text-align: center;
}

.cut-table.has-units {
  max-width: 380px;
  margin: 0 auto 2rem !important;
  table-layout: fixed;
}

.par-container {
  max-width: 960px;
  width: 100%;
  margin: 0 auto;
}


#buildHeader.par-container {
  padding: 1.25rem 2.5rem;
}

#buildHeader .project-info {
  padding-left: 0;
}



@media (max-width: 640px) {

  .par-container,
  .shared-container {
    width: calc(100vw - 2rem);
    max-width: calc(100vw - 2rem);
    margin-inline: auto;
    box-sizing: border-box;

  }

  #buildHeader.par-container,
  .shared-container.nav-container {
    padding-inline: 1.5rem;
  }


  .shared-container.nav-container {
    padding: .75rem 0 1rem;
  }



  html {
    font-size: 16px;
  }

  body {
    padding: 0 1rem 1.25rem;
  }

  .category-header {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .subcontainer {
    margin: 1rem 0.5rem;
    padding: 0.9rem 1rem;
  }

  .substep-content,
  .solostep-content {
    padding: 0.9rem 1rem;
  }

  .appbar {
    padding: .6rem .75rem;
  }

  .nav-grid {
    padding-inline: 0.75rem;
  }


  #buildHeader .project-info {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .substep-content.img-text {
    flex-direction: column;
  }

  .substep-image img {
    width: 100%;
    max-width: 100%;
  }

  .nav-grid {
    padding-inline: 1.5rem;
    row-gap: 1rem;
  }

  .filter-row {
    display: flex;
    align-items: center;
    gap: .75rem;
  }

  .filter-icon {
    flex: 0 0 22px;
  }

  .filter-row {
    position: relative;
    --icon-w: 22px;
    --icon-gap: 1.6rem;
    align-items: center;
    gap: 1.0rem;
  }


  .nav-msg {
    min-width: 0;
    width: 100%;
  }

  .dl-actions {
    width: 100%;
  }

  .dl-actions .dl-btn {
    width: 100%;
  }

  #buildHeader.par-container {
    padding: .75rem 0 1.25rem;
  }

  #buildHeader .project-info {
    padding: 0 1.5rem;
  }

  .nav-container .actions {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0;
  }

  .nav-container .actions .act {
    position: relative;
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 12px;
    display: block;
    overflow: visible;
    font-size: 0 !important;
    color: inherit;
  }

  .nav-container .actions .act::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 22px;
    height: 22px;
    display: block;

    background-color: currentColor;
    -webkit-mask: var(--icon) no-repeat center / contain;
    mask: var(--icon) no-repeat center / contain;
  }

  .nav-container .actions .act.active {
    background: var(--clr-nav-bg);
    color: var(--clr-accent);
    box-shadow: 0 8px 24px var(--shadow-35);
  }



  .substep-title {
    font-size: 0.7rem;
  }

  .subcontainer-header {
    font-size: 1.0rem;
  }


.has-units,
.cut-table.has-units {
  display:table;
  width:100%;
  max-width:100%;
  overflow:visible;
  table-layout:auto;

}

  .has-units thead,
  .cut-table.has-units thead {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--bg, transparent);
  }

  table th,
  table td,
  .has-units th,
  .has-units td {
    padding: .4rem .5rem;
  }


  .cut-table.has-units th,
  .cut-table.has-units td {
    white-space: nowrap;
  }


  table td img {
    width: 64px;
    border-radius: 10px;
    display: block;
  }


  table .product-name {
    font-size: .9rem;
  }

  .product-tag,
  .product-name{
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .bom-table thead {
    display: none;
    margin: 0rem;
  }
  .bom-table{
  margin: var(--table-mt) 0 var(--table-mb) !important;  
}

  .bom-table tbody tr {
    display: grid;
  grid-template-columns: 56px 1fr 1fr;
    grid-template-areas:
      "tag name  qty"
      "img name  price"
      "img specs price"
      "img unit  price";
    gap: .2rem .5rem;
    padding: .6rem .6rem 0.7rem;
    border-radius: 7px;
  }



  .bom-table td {
    padding: 0 !important;
    text-align: left;
    border: 0;
  }

  .bom-table td:first-child {
    display: contents;
  }

  .bom-table td:first-child img {
    grid-area: img;
    width: 56px;
    height: auto;
    border-radius: 7px;
    display: block;
  }

  .bom-table td:first-child .product-tag {
    grid-area: tag;
    align-self: start;
    justify-self: start;
    margin: 0;
    font-size: .58rem;
    padding: .12rem .4rem;
    max-width: 56px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .bom-table td:first-child .product-name {
    grid-area: name;
    font-size: .82rem;
    margin: 0 0 .1rem;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
  }


  .bom-table td:nth-child(2) {
    grid-area: specs;
    font-size: 0.6rem;
  }

  .bom-table td:nth-child(4) {
    grid-area: unit;
    font-size: 0.6rem;
  }

  .bom-table td:nth-child(5) {
    grid-area: qty;
    text-align: right;
    color: var(--clr-accent);
  }

  .bom-table td:nth-child(7) {
    grid-area: price;
    text-align: right;
    
  }


  .bom-table td:nth-child(3),
  .bom-table td:nth-child(6),
  .bom-table .user-cur {
    display: none;
  }


  .bom-table .product-name {
    font-size: .8rem;
    margin: 0 0 .15rem;
  }


  .bom-table .product-tag {
    margin: 0 0 .35rem;
    font-size: .5rem;
    padding: .15rem .45rem;
  }

  .bom-table td:nth-child(2) {
    line-height: 1.25;
    opacity: .9;

  }
  .bom-table td:nth-child(7){
  text-align: right;
  
}
.bom-table td:nth-child(4)::before{
  content: "Unit";
  display: block;
  text-align: left;
  font-family: var(--font-heading);
  font-size: .58rem;
  letter-spacing: var(--ls-uc-tight);
  color: var(--clr-secondary-light);
  opacity: .85;
  margin: 0 0 .15rem;
}

.bom-table td:nth-child(5){
  text-align: right;
    display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.bom-table td:nth-child(5)::before{
  content: "Qty";
  display: block;
  text-align: right;
  font-family: var(--font-heading);
  font-size: .58rem;
  letter-spacing: var(--ls-uc-tight);
  color: var(--clr-accent);
  opacity: .85;
  margin: 0 0 .15rem;
}

.bom-table td:nth-child(7){
   text-align: right;
    display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.bom-table td:nth-child(7)::before{
  content: "Est Price";
  display: block;
  text-align: right;
  font-family: var(--font-heading);
  font-size: .58rem;
  letter-spacing: var(--ls-uc-tight);
  color: var(--clr-secondary-light);
  opacity: .85;
  margin: 0 0 .15rem;
}

  .bom-table td:nth-child(7) {
    font-size: 0.58rem;
    letter-spacing: .04em;
  }

 table[data-export="cut"]{
    display: table;        /* not block */
    width: 100%;
    overflow: visible;     /* no scroll strip */
    border-collapse: separate;
  }
  
  table[data-export="cut"] th,
  table[data-export="cut"] td{
    padding:.4rem .4rem;
    white-space:nowrap;      
    text-align:center;       
  }

  table[data-export="cut"].has-units tbody tr::before{
    border-radius:14px;
  }

.has-units th,
.has-units td,
table[data-export="cut"] th,
table[data-export="cut"] td{
  font-size:.75rem !important;
  line-height:1.3;
}
 .has-units tbody tr::before{
    inset: .125rem .5rem;      /* top/bottom, left/right insets */
    border-radius:14px;
  }



  
}