/* [next]/internal/font/google/outfit_9a2ea4b7.module.css [app-client] (css) */
@font-face {
  font-family: Outfit;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/b2ea385cb5ae8625-s.866357a4.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Outfit;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/1b99372b3eaef0c8-s.p.758e15a8.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Outfit;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/b2ea385cb5ae8625-s.866357a4.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Outfit;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/1b99372b3eaef0c8-s.p.758e15a8.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Outfit;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../media/b2ea385cb5ae8625-s.866357a4.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Outfit;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../media/1b99372b3eaef0c8-s.p.758e15a8.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Outfit Fallback;
  src: local(Arial);
  ascent-override: 100.18%;
  descent-override: 26.05%;
  line-gap-override: 0.0%;
  size-adjust: 99.82%;
}

.outfit_9a2ea4b7-module__AnZFUa__className {
  font-family: Outfit, Outfit Fallback;
  font-style: normal;
}

.outfit_9a2ea4b7-module__AnZFUa__variable {
  --font-outfit: "Outfit", "Outfit Fallback";
}

/* [next]/internal/font/google/ibm_plex_sans_5d63e658.module.css [app-client] (css) */
@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/7fea77d1d19108bf-s.c949a514.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/1bcd0e671759a44c-s.a3ed597e.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/e15f58668ad64cb8-s.319fa961.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/90c51ce8fb754fe8-s.323431dc.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/57215795b8570f5c-s.0f2c7ba8.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/03fc1b4a8d284b5e-s.p.af4fcd24.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/7fea77d1d19108bf-s.c949a514.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/1bcd0e671759a44c-s.a3ed597e.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/e15f58668ad64cb8-s.319fa961.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/90c51ce8fb754fe8-s.323431dc.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/57215795b8570f5c-s.0f2c7ba8.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/03fc1b4a8d284b5e-s.p.af4fcd24.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/7fea77d1d19108bf-s.c949a514.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/1bcd0e671759a44c-s.a3ed597e.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/e15f58668ad64cb8-s.319fa961.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/90c51ce8fb754fe8-s.323431dc.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/57215795b8570f5c-s.0f2c7ba8.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/03fc1b4a8d284b5e-s.p.af4fcd24.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/7fea77d1d19108bf-s.c949a514.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/1bcd0e671759a44c-s.a3ed597e.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/e15f58668ad64cb8-s.319fa961.woff2") format("woff2");
  unicode-range: U+370-377, U+37A-37F, U+384-38A, U+38C, U+38E-3A1, U+3A3-3FF;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/90c51ce8fb754fe8-s.323431dc.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/57215795b8570f5c-s.0f2c7ba8.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Sans;
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/03fc1b4a8d284b5e-s.p.af4fcd24.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Sans Fallback;
  src: local(Arial);
  ascent-override: 101.32%;
  descent-override: 27.18%;
  line-gap-override: 0.0%;
  size-adjust: 101.17%;
}

.ibm_plex_sans_5d63e658-module__zHltkq__className {
  font-family: IBM Plex Sans, IBM Plex Sans Fallback;
  font-style: normal;
}

.ibm_plex_sans_5d63e658-module__zHltkq__variable {
  --font-plex-sans: "IBM Plex Sans", "IBM Plex Sans Fallback";
}

/* [next]/internal/font/google/ibm_plex_mono_3b75ac86.module.css [app-client] (css) */
@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/e390973e931a41c5-s.a82ecf4e.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/59b15b4bcd7b1eb5-s.afa48be3.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/e532fa1b9921e1cd-s.764b43eb.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/2fe89d53234c61d4-s.cb53f04b.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/99e609270109b47d-s.p.64b9304e.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/5e05ae5b48faa55e-s.6b5ea6af.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/a7afbb44bec2bb18-s.1dcddae6.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/02263ebadd758ea4-s.8da66e7f.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/68757d6cddeff913-s.e6cd1753.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/effe91970fc4db64-s.p.19510058.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/6ff74e33ebd7bca3-s.140490a3.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/1a69062cfe6f77f8-s.b36ae37c.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/9a4838fcda0d1bca-s.bf5f8a12.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/2e95a7d252b9825a-s.10086973.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/23b7a97ae3b5c134-s.p.2902b61f.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Mono Fallback;
  src: local(Arial);
  ascent-override: 76.16%;
  descent-override: 20.43%;
  line-gap-override: 0.0%;
  size-adjust: 134.59%;
}

.ibm_plex_mono_3b75ac86-module__OUPiVW__className {
  font-family: IBM Plex Mono, IBM Plex Mono Fallback;
  font-style: normal;
}

.ibm_plex_mono_3b75ac86-module__OUPiVW__variable {
  --font-plex-mono: "IBM Plex Mono", "IBM Plex Mono Fallback";
}

/* [next]/internal/font/google/geist_9c6cb61b.module.css [app-client] (css) */
@font-face {
  font-family: Geist;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/8a480f0b521d4e75-s.8e0177b5.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: Geist;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/7178b3e590c64307-s.b97b3418.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Geist;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/caa3a2e1cccd8315-s.p.853070df.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Geist Fallback;
  src: local(Arial);
  ascent-override: 95.94%;
  descent-override: 28.16%;
  line-gap-override: 0.0%;
  size-adjust: 104.76%;
}

.geist_9c6cb61b-module__8NX9hq__className {
  font-family: Geist, Geist Fallback;
  font-style: normal;
}

.geist_9c6cb61b-module__8NX9hq__variable {
  --font-geist: "Geist", "Geist Fallback";
}

/* [next]/internal/font/google/geist_mono_d6617093.module.css [app-client] (css) */
@font-face {
  font-family: Geist Mono;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/4fa387ec64143e14-s.c1fdd6c2.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: Geist Mono;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/bbc41e54d2fcbd21-s.799d8ef8.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Geist Mono;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/797e433ab948586e-s.p.dbea232f.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Geist Mono Fallback;
  src: local(Arial);
  ascent-override: 74.67%;
  descent-override: 21.92%;
  line-gap-override: 0.0%;
  size-adjust: 134.59%;
}

.geist_mono_d6617093-module__z61v7q__className {
  font-family: Geist Mono, Geist Mono Fallback;
  font-style: normal;
}

.geist_mono_d6617093-module__z61v7q__variable {
  --font-geist-mono: "Geist Mono", "Geist Mono Fallback";
}

/* [next]/internal/font/google/nunito_efd37666.module.css [app-client] (css) */
@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/224e262ef877bfa4-s.753dfc0d.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/7f11d98043fdedc9-s.317fa95e.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/e6d00ff86ef9e699-s.51ae28b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/d8cb5ab3660140cd-s.3379eac0.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/07454f8ad8aaac57-s.p.fc65572f.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../media/224e262ef877bfa4-s.753dfc0d.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../media/7f11d98043fdedc9-s.317fa95e.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../media/e6d00ff86ef9e699-s.51ae28b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../media/d8cb5ab3660140cd-s.3379eac0.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("../media/07454f8ad8aaac57-s.p.fc65572f.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../media/224e262ef877bfa4-s.753dfc0d.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../media/7f11d98043fdedc9-s.317fa95e.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../media/e6d00ff86ef9e699-s.51ae28b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../media/d8cb5ab3660140cd-s.3379eac0.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../media/07454f8ad8aaac57-s.p.fc65572f.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Nunito Fallback;
  src: local(Arial);
  ascent-override: 99.71%;
  descent-override: 34.82%;
  line-gap-override: 0.0%;
  size-adjust: 101.39%;
}

.nunito_efd37666-module__BcKkjq__className {
  font-family: Nunito, Nunito Fallback;
  font-style: normal;
}

.nunito_efd37666-module__BcKkjq__variable {
  --font-nunito: "Nunito", "Nunito Fallback";
}

/* [project]/app/globals.css [app-client] (css) */
:root {
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light;
  --font-body: var(--font-plex-sans), "Segoe UI", sans-serif;
  --font-display: var(--font-outfit), "Segoe UI", sans-serif;
  --font-mono: var(--font-plex-mono), "SFMono-Regular", monospace;
  --bg: #f6f0eb;
  --bg-soft: #fff9f6;
  --panel: #ffffffe6;
  --panel-strong: #fffffff5;
  --panel-border: #12130f1a;
  --text: #12130f;
  --muted: #63666f;
  --brand-red: #c93239;
  --brand-red-dark: #a3292f;
  --brand-red-soft: #c932391f;
  --brand-red-soft-strong: #c932392e;
  --brand-navy: #1d2638;
  --brand-shadow: 0 26px 60px #12130f1f;
  --success: #2f7c5c;
  --success-soft: #2f7c5c24;
  --danger: #851922;
  --danger-soft: #85192224;
  --radius: 28px;
  --radius-soft: 22px;
  --button-radius: 20px;
  font-family: var(--font-body);
}

* {
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: #a3292f57 #12130f14;
}

::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: #12130f0f;
  border-radius: 999px;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(#c93239b3, #a3292f85);
  border-radius: 999px;
}

html, body {
  min-height: 100%;
  color: var(--text);
  background: radial-gradient(circle at 88% 12%, #17212b0f, #0000 18%), linear-gradient(#fafcfd 0%, #eff4f7 62%, #e8eef2 100%);
  margin: 0;
}

body {
  font-family: var(--font-body);
  position: relative;
  overflow-x: hidden;
}

body:before, body:after {
  content: "";
  pointer-events: none;
  z-index: -1;
  position: fixed;
  inset: 0;
}

body:before {
  background: radial-gradient(circle at 24% 18%, #ffffffad, #0000 22%), linear-gradient(120deg, #ffffff4d, #0000 34%);
}

body:after {
  opacity: .18;
  background-color: #0000;
  background-image: linear-gradient(90deg, #ffffff1f 1px, #0000 1px), linear-gradient(#ffffff1f 1px, #0000 1px);
  background-position: 0 0, 0 0;
  background-repeat: repeat, repeat;
  background-size: 96px 96px;
  background-attachment: scroll, scroll;
  background-origin: padding-box, padding-box;
  background-clip: border-box, border-box;
  -webkit-mask-image: linear-gradient(#0003, #0000 76%);
  mask-image: linear-gradient(#0003, #0000 76%);
}

a {
  color: inherit;
}

button, input, textarea, select {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  max-width: 1920px;
  min-height: 100vh;
  margin: 0 auto;
  padding: 28px;
}

.configurator-shell {
  grid-template-rows: auto minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  max-width: none;
  height: 100vh;
  min-height: 100vh;
  margin: 0;
  padding: 6px;
  display: grid;
  overflow: hidden;
}

.workspace {
  grid-template-columns: minmax(320px, 360px) minmax(0, 1fr) minmax(330px, 390px);
  align-items: start;
  gap: 24px;
  min-height: calc(100vh - 56px);
  display: grid;
}

.configurator-shell .workspace {
  grid-template-columns: minmax(250px, 290px) minmax(0, 1fr) minmax(230px, 270px);
  align-items: stretch;
  gap: 12px;
  min-height: 0;
}

.configurator-shell .workspace.left-sidebar-collapsed {
  grid-template-columns: 56px minmax(0, 1fr) minmax(230px, 270px);
}

.configurator-shell .workspace.right-sidebar-collapsed {
  grid-template-columns: minmax(250px, 290px) minmax(0, 1fr) 56px;
}

.configurator-shell .workspace.left-sidebar-collapsed.right-sidebar-collapsed {
  grid-template-columns: 56px minmax(0, 1fr) 56px;
}

.panel {
  border-radius: var(--radius);
  border: 1px solid var(--panel-border);
  min-width: 0;
  box-shadow: var(--brand-shadow);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  background: linear-gradient(#fffffffa, #fdf8f5eb), linear-gradient(132deg, #c9323914, #0000 30%);
  animation: .68s cubic-bezier(.22, 1, .36, 1) both panel-reveal;
}

.configurator-shell .workspace > .panel {
  height: 100%;
}

.workspace > :first-child, .admin-page-grid > :first-child {
  animation-delay: 50ms;
}

.workspace > :nth-child(2), .admin-page-grid > :nth-child(2) {
  animation-delay: .14s;
}

.workspace > :nth-child(3) {
  animation-delay: .22s;
}

.configurator-topbar {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  min-height: 0;
  padding: 12px 16px;
  display: flex;
}

.configurator-brand {
  gap: 0;
  min-width: 0;
  display: grid;
}

.configurator-wordmark-wrap {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  min-width: 0;
  display: flex;
}

.configurator-wordmark {
  font-family: var(--font-display);
  letter-spacing: -.07em;
  text-transform: lowercase;
  color: #d91c24;
  font-size: clamp(3.2rem, 4.8vw, 4.6rem);
  font-weight: 800;
  line-height: .84;
}

.configurator-product-tag {
  font-family: var(--font-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #1d2638bd;
  background: #d91c2414;
  border: 1px solid #d91c242e;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: .68rem;
  font-weight: 600;
}

.configurator-title-block {
  gap: 4px;
  display: grid;
}

.configurator-brand h1 {
  font-family: var(--font-display);
  letter-spacing: -.04em;
  color: var(--brand-navy);
  margin: 0;
  font-size: clamp(1.9rem, 2.2vw, 2.5rem);
  line-height: .96;
}

.configurator-brand p {
  color: var(--muted);
  margin: 0;
  font-size: .95rem;
  line-height: 1.45;
}

.configurator-topbar-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  min-width: 0;
  margin-left: auto;
  display: flex;
}

.configurator-topbar-copy {
  gap: 2px;
  min-width: 0;
  max-width: 340px;
  display: grid;
}

.configurator-topbar-copy strong {
  font-family: var(--font-display);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--brand-red);
  font-size: .82rem;
}

.configurator-topbar-copy span {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.35;
}

.session-chip {
  background: linear-gradient(#fffffff5, #f4f7f9f0);
  border: 1px solid #12130f14;
  border-radius: 12px;
  gap: 2px;
  min-width: 0;
  padding: 8px 12px;
  display: inline-grid;
}

.session-chip strong {
  font-family: var(--font-display);
  font-size: .94rem;
  line-height: 1;
}

.session-chip-label {
  font-family: var(--font-mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  font-size: .64rem;
  font-weight: 700;
}

.session-logout-button {
  border-radius: 999px;
  min-height: 42px;
  padding: 0 16px;
}

.sidebar {
  align-content: start;
  gap: 18px;
  height: 100%;
  min-height: 0;
  padding: 22px;
  display: grid;
  overflow: hidden;
}

.sidebar-primary, .sidebar-secondary {
  grid-template-rows: auto minmax(0, 1fr) auto auto;
}

.configurator-shell .sidebar {
  gap: 10px;
  padding: 12px;
}

.configurator-shell .sidebar-primary, .configurator-shell .sidebar-secondary {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.configurator-shell .sidebar-primary {
  grid-template-rows: minmax(0, 1fr) auto;
}

.configurator-shell .sidebar-secondary {
  grid-template-rows: auto auto minmax(0, 1fr);
}

.catalog-sidebar, .runtime-sidebar {
  position: relative;
  overflow: hidden;
}

.catalog-sidebar-rail, .runtime-sidebar-rail {
  justify-content: center;
  align-items: stretch;
  padding: 8px;
  display: flex;
}

.workspace-pane-toggle {
  cursor: pointer;
  border: 0;
}

.workspace-pane-toggle--inline {
  width: 36px;
  height: 36px;
  font-family: var(--font-display);
  color: inherit;
  background: #1d26380a;
  border: 1px solid #12130f14;
  border-radius: 999px;
  flex: none;
  place-items: center;
  font-size: 1.02rem;
  font-weight: 800;
  line-height: 1;
  display: grid;
}

.workspace-pane-toggle--expand {
  background: none;
  border-radius: 10px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 14px;
  width: 100%;
  min-height: 0;
  display: flex;
}

.workspace-pane-toggle--expand span {
  writing-mode: vertical-rl;
  font-family: var(--font-mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: .72rem;
  font-weight: 700;
  transform: rotate(180deg);
}

.workspace-pane-toggle--expand strong {
  font-family: var(--font-display);
  font-size: 1.4rem;
  line-height: 1;
}

.sidebar-topbar {
  border-bottom: 1px solid #12130f14;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
  padding-bottom: 14px;
  display: flex;
}

.sidebar h1, .sidebar h2, .admin-header-panel h1, .admin-panel h2, .admin-home-card h2, .info-block h2 {
  font-family: var(--font-display);
  letter-spacing: -.04em;
  color: var(--brand-navy);
  margin: 0;
}

.sidebar h1 {
  font-size: clamp(2.35rem, 3vw, 3.5rem);
  line-height: .9;
}

.configurator-shell .sidebar h1 {
  font-size: clamp(1.9rem, 2.4vw, 2.6rem);
  line-height: .94;
}

.sidebar h1:before, .admin-header-panel h1:before {
  content: "UNIRIG";
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--brand-red);
  margin-bottom: 14px;
  font-size: .78rem;
  font-weight: 800;
  display: block;
}

.configurator-shell .sidebar h1:before {
  letter-spacing: .28em;
  margin-bottom: 10px;
  font-size: .68rem;
}

.sidebar p, .admin-header-panel p, .admin-home-card p, .info-block p, .selection-meta, .import-note, .import-message {
  color: var(--muted);
  margin: 0;
  line-height: 1.62;
}

.sidebar p {
  max-width: 28ch;
}

.configurator-shell .sidebar p {
  max-width: none;
  font-size: .93rem;
  line-height: 1.52;
}

.button-stack {
  gap: 12px;
  display: grid;
}

.action-button, .picker-button, .admin-link, .admin-nav-link {
  isolation: isolate;
  font-family: var(--font-display);
  letter-spacing: -.01em;
  font-weight: 700;
  transition: transform .18s, box-shadow .22s, border-color .22s, background-color .22s, color .22s;
  position: relative;
  overflow: hidden;
}

.action-button:before, .picker-button:before, .admin-link:before, .admin-nav-link:before {
  content: "";
  z-index: 0;
  background: linear-gradient(115deg, #0000 0% 34%, #ffffff6b 52%, #0000 68% 100%);
  transition: transform .62s cubic-bezier(.2, 1, .22, 1);
  position: absolute;
  inset: 0;
  transform: translateX(-135%);
}

.action-button:hover:before, .picker-button:hover:before, .admin-link:hover:before, .admin-nav-link:hover:before, .action-button:focus-visible:before, .picker-button:focus-visible:before, .admin-link:focus-visible:before, .admin-nav-link:focus-visible:before {
  transform: translateX(135%);
}

.action-button > *, .picker-button > *, .admin-link > *, .admin-nav-link > * {
  z-index: 1;
  position: relative;
}

.admin-link, .picker-button {
  color: #fff;
  white-space: nowrap;
  background: linear-gradient(258deg, #c93239 0%, #a3292f 100%);
  border: 1px solid #a3292f6b;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  text-decoration: none;
  display: inline-flex;
  box-shadow: 0 22px 38px #a3292f38;
}

.admin-link:hover, .picker-button:hover, .admin-nav-link:hover:not(.active), .action-button:hover:not(:disabled) {
  transform: translateY(-3px);
}

.admin-link:hover, .picker-button:hover {
  box-shadow: 0 28px 46px #a3292f47;
}

.action-button {
  border-radius: var(--button-radius);
  width: 100%;
  color: var(--text);
  text-align: left;
  background: linear-gradient(#fffffffa, #fff7f6f0), linear-gradient(150deg, #c932391a, #0000 38%);
  border: 1px solid #c9323929;
  padding: 14px 16px;
  box-shadow: inset 0 1px #ffffffb3, 0 14px 28px #12130f14;
}

.action-button:hover:not(:disabled) {
  border-color: #c932395c;
  box-shadow: inset 0 1px #ffffffb8, 0 20px 36px #a3292f26;
}

.action-button:focus-visible, .picker-button:focus-visible, .admin-link:focus-visible, .admin-nav-link:focus-visible, .text-input:focus-visible, .select-input:focus-visible, .textarea-input:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px #c9323924, 0 18px 34px #a3292f29;
}

.action-button:disabled {
  opacity: .48;
  cursor: not-allowed;
  filter: saturate(.7);
}

.action-button.active, .import-button, .admin-nav-link.active {
  color: #fff;
  background: linear-gradient(258deg, #c93239 0%, #a3292f 100%);
  border-color: #a3292f94;
  box-shadow: 0 24px 42px #a3292f3d;
}

.action-button.danger {
  color: #fff;
  background: linear-gradient(210deg, #821b24 0%, #551015 100%);
  border-color: #5a0f15b3;
  box-shadow: 0 22px 40px #55101538;
}

.button-label {
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  font-size: 1rem;
  display: flex;
}

.button-label > span:first-child {
  overflow-wrap: anywhere;
  flex: auto;
  align-items: center;
  gap: 9px;
  min-width: 0;
  display: inline-flex;
}

.button-label > span:first-child:after, .picker-button:after, .admin-link:after, .admin-nav-link:after {
  content: "i";
  border-radius: 999px;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 20px;
  height: 20px;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1;
  display: inline-flex;
}

.button-label > span:first-child:after, .admin-nav-link:after {
  color: var(--brand-red);
  background: #c932391c;
  border: 1px solid #c9323929;
}

.action-button.active .button-label > span:first-child:after, .action-button.danger .button-label > span:first-child:after, .import-button .button-label > span:first-child:after, .picker-button:after, .admin-link:after, .admin-nav-link.active:after {
  color: #fff;
  background: #ffffff2e;
  border: 1px solid #ffffff38;
}

.button-label > span + span {
  min-width: 38px;
  color: var(--brand-navy);
  white-space: nowrap;
  text-align: center;
  background: #12130f0a;
  border: 1px solid #12130f14;
  border-radius: 999px;
  flex: none;
  padding: 4px 10px;
  font-size: .88rem;
  line-height: 1.1;
}

.action-button.active .button-label > span + span, .import-button .button-label > span + span, .action-button.danger .button-label > span + span {
  color: #fff;
  background: #ffffff24;
  border-color: #fff3;
}

.button-meta {
  color: var(--muted);
  overflow-wrap: anywhere;
  margin-top: 6px;
  font-size: .88rem;
  line-height: 1.42;
  display: block;
}

.configurator-shell .action-button {
  border-radius: 18px;
  padding: 12px 13px;
}

.configurator-shell .button-label {
  gap: 10px;
  font-size: .94rem;
}

.configurator-shell .button-meta {
  margin-top: 4px;
  font-size: .78rem;
  line-height: 1.34;
}

.action-button.active .button-meta, .import-button .button-meta, .action-button.danger .button-meta {
  color: #fff5f5d1;
}

.viewport-panel {
  border-radius: calc(var(--radius)  + 2px);
  background: linear-gradient(#ffffffd1, #ffffff4d), radial-gradient(circle at top, #c932391a, #0000 34%);
  height: 100%;
  min-height: 0;
  position: relative;
  overflow: hidden;
}

.viewport-canvas {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.status-pill {
  width: fit-content;
  font-family: var(--font-display);
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--brand-navy);
  background: #1d26380f;
  border: 1px solid #1d263814;
  border-radius: 999px;
  align-items: center;
  gap: 10px;
  margin-bottom: 4px;
  padding: 10px 14px;
  font-size: .82rem;
  font-weight: 800;
  display: inline-flex;
}

.configurator-shell .status-pill {
  letter-spacing: .1em;
  flex: auto;
  width: auto;
  min-width: 0;
  margin-bottom: 0;
  padding: 8px 12px;
  font-size: .72rem;
}

.status-pill:before {
  content: "";
  background: currentColor;
  border-radius: 999px;
  width: 10px;
  height: 10px;
  animation: 1.8s infinite status-pulse;
  box-shadow: 0 0;
}

.status-pill.valid {
  background: var(--success-soft);
  color: var(--success);
}

.status-pill.invalid {
  background: var(--danger-soft);
  color: var(--danger);
}

.info-block, .admin-item-card, .admin-subsection, .admin-home-card {
  border-radius: var(--radius-soft);
  background: linear-gradient(#ffffffeb, #fcf7f4e6), linear-gradient(160deg, #c932390f, #0000 32%);
  border: 1px solid #12130f14;
  transition: transform .22s, box-shadow .22s, border-color .22s;
  animation: .72s cubic-bezier(.22, 1, .36, 1) both block-reveal;
  position: relative;
  box-shadow: inset 4px 0 #c93239f5, 0 14px 32px #12130f12;
}

.info-block:hover, .admin-item-card:hover, .admin-subsection:hover, .admin-home-card:hover {
  border-color: #c9323929;
  transform: translateY(-2px);
  box-shadow: inset 4px 0 #c93239f5, 0 20px 38px #a3292f1f;
}

.sidebar > .info-block:first-of-type {
  animation-delay: 80ms;
}

.sidebar > .info-block:nth-of-type(2) {
  animation-delay: .14s;
}

.sidebar > .info-block:nth-of-type(3) {
  animation-delay: .2s;
}

.sidebar > .info-block:nth-of-type(4) {
  animation-delay: .26s;
}

.sidebar > .info-block:nth-of-type(5) {
  animation-delay: .32s;
}

.info-block {
  margin: 0;
  padding: 16px;
}

.configurator-shell .info-block {
  border-radius: 20px;
  padding: 14px;
}

.info-block h2 {
  margin-bottom: 12px;
  font-size: clamp(1.45rem, 1.9vw, 2rem);
  line-height: 1;
}

.configurator-shell .info-block h2 {
  margin-bottom: 10px;
  font-size: 1.35rem;
}

.info-block h3 {
  font-family: var(--font-display);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--brand-red);
  margin: 0 0 10px;
  font-size: .8rem;
  font-weight: 800;
}

.configurator-shell .info-block h3 {
  letter-spacing: .16em;
  margin-bottom: 8px;
  font-size: .76rem;
}

.catalog-card-header {
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.catalog-card-actions, .sidebar-panel-topbar {
  align-items: center;
  gap: 10px;
  display: flex;
}

.sidebar-panel-topbar {
  justify-content: space-between;
}

.catalog-card-count {
  min-width: 28px;
  color: var(--brand-red);
  font-family: var(--font-display);
  text-align: center;
  background: #c932391f;
  border-radius: 999px;
  flex: none;
  padding: 4px 9px;
  font-size: .82rem;
  font-weight: 700;
}

.import-panel {
  gap: 12px;
  display: grid;
}

.field-label {
  font-family: var(--font-display);
  color: var(--brand-navy);
  letter-spacing: .01em;
  gap: 7px;
  font-size: .88rem;
  font-weight: 700;
  display: grid;
}

.text-input, .textarea-input, .select-input, .file-picker-name {
  width: 100%;
  color: var(--text);
  background: linear-gradient(#fffffffa, #fbf6f2f0), linear-gradient(140deg, #c932390f, #0000 26%);
  border: 1px solid #12130f1a;
  border-radius: 16px;
  padding: 12px 14px;
  transition: border-color .18s, box-shadow .18s, transform .18s;
  box-shadow: inset 0 1px #ffffffb8;
}

.text-input::placeholder {
  color: color-mix(in srgb, var(--muted) 78%, white);
}

.text-input:focus, .textarea-input:focus, .select-input:focus, .file-picker-name:focus {
  border-color: #c9323957;
  outline: none;
  transform: translateY(-1px);
  box-shadow: 0 0 0 4px #c932391f, 0 14px 28px #a3292f24;
}

.textarea-input {
  resize: vertical;
}

.file-input {
  display: none;
}

.file-picker-row {
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  display: grid;
}

.file-picker-name {
  white-space: normal;
  overflow-wrap: anywhere;
  min-width: 0;
  line-height: 1.45;
}

.catalog-filter-grid, .admin-form-grid {
  gap: 12px;
  display: grid;
}

.catalog-filter-grid {
  margin-bottom: 12px;
}

.configurator-shell .catalog-filter-grid {
  gap: 8px;
  margin-bottom: 8px;
}

.catalog-card {
  grid-template-rows: auto auto minmax(0, 1fr);
  min-height: 0;
  display: grid;
}

.catalog-results {
  align-content: start;
  gap: 10px;
  min-height: 0;
  padding-right: 4px;
  display: grid;
  overflow: auto;
}

.configurator-shell .catalog-results, .catalog-card-list {
  gap: 6px;
}

.catalog-category-card {
  background: linear-gradient(#fffffffa, #f9f3eff2), linear-gradient(145deg, #c932390f, #0000 34%);
  border: 1px solid #c932391f;
  border-radius: 20px;
  gap: 6px;
  padding: 6px;
  display: grid;
  box-shadow: inset 0 1px #ffffffa6;
}

.catalog-category-card.expanded {
  border-color: #c9323942;
  box-shadow: inset 0 1px #ffffffb3, 0 18px 30px #a3292f14;
}

.catalog-category-trigger {
  width: 100%;
  min-height: 36px;
  color: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 0;
  display: grid;
}

.catalog-category-main {
  min-width: 0;
}

.catalog-category-main strong {
  font-family: var(--font-display);
  color: var(--brand-navy);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: .88rem;
  font-weight: 700;
  line-height: 1.05;
  display: block;
  overflow: hidden;
}

.catalog-category-meta {
  align-items: center;
  gap: 6px;
  display: inline-flex;
}

.catalog-category-toggle {
  width: 28px;
  height: 28px;
  color: var(--brand-red);
  font-family: var(--font-display);
  background: #c9323914;
  border: 1px solid #c932391f;
  border-radius: 999px;
  place-items: center;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
  display: grid;
}

.catalog-category-items {
  gap: 6px;
  padding-top: 2px;
  display: grid;
}

.catalog-category-empty {
  max-width: none;
  padding: 4px 2px 0;
}

.catalog-list-item {
  width: 100%;
  color: inherit;
  text-align: left;
  background: linear-gradient(#fffffff5, #f8f2eeeb), linear-gradient(145deg, #c932390f, #0000 36%);
  border: 1px solid #12130f14;
  border-radius: 18px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 13px;
  transition: transform .16s, border-color .18s, box-shadow .18s, background-color .18s;
  display: grid;
  box-shadow: inset 0 1px #ffffffb3;
}

.catalog-list-item:hover {
  border-color: #c9323942;
  transform: translateY(-1px);
  box-shadow: 0 16px 26px #a3292f14;
}

.catalog-list-item.active {
  background: linear-gradient(#fff5f5fa, #ffecedf0), linear-gradient(258deg, #c9323924, #a3292f1a);
  border-color: #a3292f80;
  box-shadow: inset 0 0 0 1px #c932392e, 0 18px 32px #a3292f1f;
}

.catalog-list-main {
  gap: 5px;
  min-width: 0;
  display: grid;
}

.catalog-list-row {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  display: grid;
}

.catalog-list-name {
  min-width: 0;
  font-family: var(--font-display);
  color: var(--brand-navy);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: .84rem;
  font-weight: 700;
  line-height: 1.1;
  overflow: hidden;
}

.catalog-list-code {
  font-family: var(--font-mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
  flex: none;
  font-size: .68rem;
  font-weight: 700;
}

.catalog-list-main strong {
  font-family: var(--font-display);
  color: var(--brand-navy);
  overflow-wrap: anywhere;
  font-size: .98rem;
  line-height: 1.1;
}

.catalog-list-main small {
  color: var(--muted);
  overflow-wrap: anywhere;
  line-height: 1.4;
}

.catalog-list-meta {
  max-width: 108px;
  color: var(--brand-red);
  font-family: var(--font-display);
  text-align: center;
  background: #c9323917;
  border: 1px solid #c932391f;
  border-radius: 999px;
  flex: none;
  padding: 6px 10px;
  font-size: .76rem;
  font-weight: 700;
  line-height: 1.2;
}

.catalog-list-item.active .catalog-list-meta {
  color: #fff;
  background: linear-gradient(258deg, #c93239 0%, #a3292f 100%);
  border-color: #a3292f5c;
}

.catalog-list-item--compact {
  border-radius: 10px;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  min-height: 34px;
  padding: 7px 8px;
}

.catalog-part-card {
  background: linear-gradient(#fffffffa, #f9f3eff2), linear-gradient(145deg, #c932390f, #0000 34%);
  border: 1px solid #c932391f;
  border-radius: 20px;
  gap: 10px;
  padding: 10px;
  display: grid;
  box-shadow: inset 0 1px #ffffffa6;
}

.catalog-part-card.expanded {
  border-color: #c9323942;
  box-shadow: inset 0 1px #ffffffb3, 0 18px 30px #a3292f14;
}

.catalog-part-trigger {
  width: 100%;
  color: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 0;
  display: grid;
}

.catalog-part-trigger.active {
  color: var(--brand-navy);
}

.catalog-part-main {
  gap: 4px;
  min-width: 0;
  display: grid;
}

.catalog-part-main strong {
  font-family: var(--font-display);
  color: var(--brand-navy);
  overflow-wrap: anywhere;
  font-size: 1rem;
  line-height: 1.12;
}

.catalog-part-main small {
  color: var(--muted);
  overflow-wrap: anywhere;
  line-height: 1.45;
}

.catalog-part-count {
  min-width: 72px;
  color: var(--brand-red);
  font-family: var(--font-display);
  text-align: center;
  background: #c932391f;
  border-radius: 999px;
  flex: none;
  justify-content: center;
  align-items: center;
  padding: 6px 10px;
  font-size: .78rem;
  font-weight: 700;
  display: inline-flex;
}

.catalog-part-trigger.active .catalog-part-count {
  color: #fff;
  background: linear-gradient(258deg, #c93239 0%, #a3292f 100%);
}

.catalog-part-body {
  gap: 12px;
  display: grid;
}

.catalog-preview {
  background: linear-gradient(#fffffff5, #f3ede8f0);
  border: 1px solid #12130f14;
  border-radius: 18px;
  height: 188px;
  overflow: hidden;
}

.catalog-preview canvas {
  display: block;
}

.catalog-part-description {
  color: var(--muted);
  font-size: .88rem;
  line-height: 1.48;
}

.catalog-part-section {
  gap: 8px;
  display: grid;
}

.catalog-section-header {
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.catalog-section-header h4 {
  font-family: var(--font-display);
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--brand-navy);
  margin: 0;
  font-size: .82rem;
}

.catalog-section-header span {
  color: var(--muted);
  font-size: .78rem;
}

.catalog-chip-grid {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.catalog-chip {
  color: var(--text);
  font-family: var(--font-display);
  cursor: pointer;
  background: #ffffffdb;
  border: 1px solid #c9323924;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: .84rem;
  font-weight: 700;
  transition: transform .16s, border-color .16s, background-color .16s, color .16s, box-shadow .18s;
}

.catalog-chip:hover {
  border-color: #c9323952;
  transform: translateY(-1px);
}

.catalog-chip.active {
  color: #fff;
  background: linear-gradient(258deg, #c93239 0%, #a3292f 100%);
  border-color: #a3292f94;
  box-shadow: 0 14px 28px #a3292f2e;
}

.catalog-chip-grid.compact .catalog-chip {
  text-align: center;
  min-width: 58px;
}

.catalog-placement-status {
  color: var(--brand-navy);
  background: #c9323914;
  border-radius: 16px;
  align-items: baseline;
  gap: 8px;
  padding: 10px 12px;
  display: flex;
}

.catalog-placement-status strong {
  font-family: var(--font-display);
  font-size: 1.1rem;
}

.catalog-placement-status span {
  color: var(--muted);
  font-size: .84rem;
}

.quick-parts-card, .placement-card, .sidebar-actions {
  gap: 12px;
  display: grid;
}

.configurator-shell .sidebar-actions {
  gap: 8px;
}

.placement-card {
  align-content: start;
}

.configurator-shell .placement-card {
  gap: 10px;
}

.configurator-shell .sidebar-actions .button-meta {
  display: none;
}

.configurator-shell .sidebar-actions .action-button {
  padding: 11px 12px;
}

.compact-stack {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.compact-button {
  min-height: 0;
  padding: 12px;
}

.compact-button .button-label {
  gap: 10px;
  font-size: .92rem;
}

.compact-button .button-label > span:first-child {
  align-items: flex-start;
}

.compact-button .button-label > span:first-child:after {
  width: 18px;
  height: 18px;
  font-size: .68rem;
}

.compact-button .button-label > span + span {
  min-width: 32px;
  padding: 3px 8px;
  font-size: .8rem;
}

.import-button {
  margin-top: 4px;
}

.import-preview {
  background: linear-gradient(#c932391a, #c9323908), #ffffffb8;
  border: 1px solid #c9323929;
  border-radius: 18px;
  gap: 4px;
  padding: 12px 14px;
  display: grid;
}

.import-preview strong {
  font-family: var(--font-display);
  color: var(--brand-navy);
  font-size: 1rem;
}

.import-note, .import-message {
  font-size: .92rem;
}

.import-message {
  color: var(--success);
}

.bom-list {
  gap: 8px;
  min-height: 0;
  display: grid;
  overflow: auto;
}

.bom-row {
  background: linear-gradient(#ffffffeb, #f9f4f1e0), linear-gradient(135deg, #c9323914, #0000 36%);
  border: 1px solid #12130f0f;
  border-radius: 16px;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 12px;
  display: flex;
  box-shadow: inset 0 1px #ffffffa8;
}

.configurator-shell .bom-row {
  padding: 9px 10px;
}

.bom-row span {
  overflow-wrap: anywhere;
  flex: auto;
  min-width: 0;
}

.bom-row strong {
  color: var(--brand-navy);
  font-family: var(--font-display);
  flex: none;
  font-size: 1.05rem;
}

.error-list {
  color: var(--danger);
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  display: grid;
}

.json-preview {
  color: #fdebed;
  max-height: 240px;
  font-family: var(--font-mono);
  background: linear-gradient(#121a28, #1b2436), linear-gradient(145deg, #c9323924, #0000 32%);
  border: 1px solid #c9323924;
  border-radius: 18px;
  margin: 0;
  padding: 16px;
  font-size: .82rem;
  line-height: 1.5;
  overflow: auto;
  box-shadow: inset 0 1px #ffffff0a;
}

.selection-card {
  overflow-wrap: anywhere;
  background: linear-gradient(#c9323914, #ffffffc7), #ffffffd1;
  border: 1px solid #c9323929;
  border-radius: 18px;
  padding: 12px;
}

.configurator-shell .selection-card {
  padding: 10px;
}

.selection-card strong {
  font-family: var(--font-display);
  color: var(--brand-navy);
  margin-bottom: 6px;
  display: block;
}

.connector-rotation-widget {
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  pointer-events: auto;
  -webkit-user-select: none;
  user-select: none;
  background: linear-gradient(#fffffffa, #f8f1ebf5), linear-gradient(135deg, #c9323924, #0000 44%);
  border: 1px solid #c9323933;
  border-radius: 999px;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  display: inline-flex;
  box-shadow: 0 12px 22px #12130f1f, inset 0 1px #ffffffb8;
}

.connector-rotation-button {
  width: 34px;
  height: 34px;
  color: var(--brand-red);
  font-family: var(--font-display);
  cursor: pointer;
  background: radial-gradient(circle at 30% 30%, #fffffffa, #fdece3eb), linear-gradient(135deg, #c932392e, #0000 52%);
  border: 0;
  border-radius: 999px;
  place-items: center;
  font-size: 1.1rem;
  font-weight: 800;
  line-height: 1;
  transition: transform .15s, box-shadow .18s, filter .18s;
  display: grid;
}

.connector-rotation-button:hover {
  filter: saturate(1.08);
  transform: translateY(-1px)scale(1.04);
  box-shadow: 0 10px 18px #c9323929;
}

.connector-rotation-step {
  text-align: center;
  min-width: 46px;
  font-family: var(--font-display);
  letter-spacing: .04em;
  color: var(--brand-navy);
  font-size: .82rem;
  font-weight: 800;
}

.selection-meta {
  margin-top: 4px;
  font-size: .84rem;
  display: block;
}

.section-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  display: flex;
}

.section-header h4 {
  font-family: var(--font-display);
  color: var(--brand-navy);
  margin: 0;
}

.admin-shell {
  grid-auto-rows: max-content;
  align-content: start;
  align-items: start;
  gap: 20px;
  max-width: 1680px;
  padding: 20px;
  display: grid;
}

.admin-shell .panel {
  background: linear-gradient(#fffffffc, #f7f9fbf7), linear-gradient(120deg, #c932390a, #0000 30%);
  border: 1px solid #1118271f;
  border-radius: 14px;
  box-shadow: 0 10px 26px #1118270f;
}

.admin-header-panel {
  background: linear-gradient(#fffffffc, #f7f9fbf7), linear-gradient(90deg, #c932390f, #0000 28%);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px 18px;
  padding: 16px 20px;
  display: grid;
}

.admin-header-controls {
  justify-items: end;
  gap: 8px;
  display: grid;
}

.bom-card, .runtime-card {
  gap: 12px;
  min-height: 0;
  display: grid;
}

.bom-toggle-button {
  width: 100%;
  color: inherit;
  cursor: pointer;
  text-align: left;
  background: none;
  border: 0;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 0;
  display: flex;
}

.bom-toggle-main {
  gap: 3px;
  min-width: 0;
  display: grid;
}

.bom-toggle-label {
  font-family: var(--font-display);
  font-size: 1.55rem;
  line-height: 1;
}

.bom-toggle-meta {
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .74rem;
  font-weight: 700;
}

.bom-toggle-icon {
  width: 30px;
  height: 30px;
  font-family: var(--font-display);
  border-radius: 999px;
  place-items: center;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
  display: grid;
}

.configurator-shell .bom-card {
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.configurator-shell .bom-card.collapsed {
  grid-template-rows: auto;
}

.configurator-shell .bom-toggle-label {
  color: var(--config-text);
  font-size: 1.28rem;
}

.configurator-shell .bom-toggle-meta {
  color: var(--config-muted);
}

.configurator-shell .bom-toggle-icon {
  border: 1px solid var(--config-line);
  color: var(--config-text);
  background: linear-gradient(#121a23fa, #0e141bfa), linear-gradient(145deg, #7aa2f714, #0000 38%);
  box-shadow: inset 0 1px #ffffff08;
}

.configurator-shell .bom-toggle-button:hover .bom-toggle-icon {
  border-color: var(--config-line-strong);
}

.runtime-summary {
  gap: 14px;
  display: grid;
}

.configurator-shell .runtime-summary {
  gap: 12px;
}

.configurator-shell .runtime-summary > div {
  gap: 8px;
  display: grid;
}

.configurator-shell .runtime-card {
  align-content: start;
  overflow: auto;
}

.configurator-shell .sidebar-secondary {
  gap: 10px;
}

.configurator-shell .catalog-sidebar-rail, .configurator-shell .runtime-sidebar-rail {
  border-color: var(--config-line);
  background: linear-gradient(#111821fa, #0e141bfa), linear-gradient(145deg, #d91c240f, #0000 38%);
}

.configurator-shell .workspace-pane-toggle--inline {
  border: 1px solid var(--config-line);
  width: 30px;
  height: 30px;
  color: var(--config-text);
  box-shadow: none;
  background: linear-gradient(#121a23fa, #0e141bfa), linear-gradient(145deg, #7aa2f714, #0000 36%);
  border-radius: 8px;
}

.configurator-shell .workspace-pane-toggle--inline:hover, .configurator-shell .workspace-pane-toggle--expand:hover {
  border-color: var(--config-line-strong);
}

.configurator-shell .workspace-pane-toggle--expand {
  color: var(--config-text);
}

.configurator-shell .workspace-pane-toggle--expand span {
  color: var(--config-muted);
}

.configurator-shell .workspace-pane-toggle--expand strong {
  color: var(--config-accent);
}

.configurator-shell {
  --config-bg: #0b0f14;
  --config-panel: #10161e;
  --config-panel-alt: #121a23;
  --config-line: #203041;
  --config-line-strong: #2b4056;
  --config-text: #e6edf3;
  --config-muted: #93a4b7;
  --config-accent: #d91c24;
  --config-accent-soft: #d91c2424;
  --config-shadow: 0 10px 30px #0000003d;
  box-shadow: none;
  background: radial-gradient(1200px 720px at 14% 8%, #7aa2f70d, #0000 60%), radial-gradient(1100px 680px at 88% 92%, #7aa2f712, #0000 62%), linear-gradient(#0d1218 0%, #0b0f14 100%);
  border-radius: 0;
  position: relative;
}

.configurator-shell .panel {
  border: 1px solid var(--config-line);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  background: linear-gradient(#111821fa, #0e141bfa), linear-gradient(145deg, #d91c240a, #0000 38%);
  border-radius: 10px;
  box-shadow: 0 8px 20px #0000002e;
}

.configurator-shell .configurator-topbar {
  box-shadow: none;
  background: #ffffffeb;
  border-color: #11182714;
  border-radius: 8px;
  padding: 4px 10px;
}

.configurator-wordmark-wrap {
  gap: 8px;
}

.configurator-wordmark {
  font-size: clamp(2.6rem, 3.8vw, 3.7rem);
}

.configurator-shell .configurator-brand h1, .configurator-shell .info-block h2, .configurator-shell .catalog-list-main strong, .configurator-shell .selection-card strong {
  color: var(--config-text);
}

.configurator-shell .configurator-brand p, .configurator-shell .configurator-topbar-copy span, .configurator-shell .info-block p, .configurator-shell .selection-meta, .configurator-shell .button-meta, .configurator-shell .import-note, .configurator-shell .catalog-list-main small {
  color: var(--config-muted);
}

.configurator-shell .configurator-product-tag, .configurator-shell .configurator-topbar-copy strong, .configurator-shell .info-block h3, .configurator-shell .runtime-summary h4 {
  color: var(--config-accent);
}

.configurator-shell .configurator-product-tag {
  background: #d91c2414;
  border-color: #d91c2438;
}

.configurator-shell .info-block, .configurator-shell .selection-card {
  border: 1px solid var(--config-line);
  box-shadow: none;
  background: linear-gradient(#131b25fa, #10161ffa), linear-gradient(145deg, #7aa2f70d, #0000 36%);
  border-radius: 10px;
}

.configurator-shell .info-block:hover {
  border-color: var(--config-line-strong);
  box-shadow: none;
  transform: none;
}

.configurator-shell .catalog-card-count, .configurator-shell .catalog-list-meta {
  color: #c4d2e4;
  background: #7aa2f714;
  border-color: #2b4056e6;
}

.configurator-shell .catalog-card-count {
  display: none;
}

.configurator-shell .catalog-category-card {
  border: 1px solid var(--config-line);
  box-shadow: none;
  background: linear-gradient(#10171ffa, #0d131afa), linear-gradient(145deg, #7aa2f70a, #0000 36%);
  border-radius: 8px;
  gap: 4px;
  padding: 4px 6px;
}

.configurator-shell .catalog-category-card.expanded {
  box-shadow: none;
  border-color: #476480eb;
}

.configurator-shell .catalog-category-main strong {
  color: var(--config-text);
  letter-spacing: .02em;
  font-size: .78rem;
}

.configurator-shell .catalog-category-toggle {
  color: #c4d2e4;
  background: #7aa2f70f;
  border-color: #2b4056e6;
  border-radius: 6px;
  width: 24px;
  height: 24px;
  font-size: .8rem;
}

.configurator-shell .catalog-list-item {
  border: 1px solid var(--config-line);
  box-shadow: none;
  background: linear-gradient(#10171ffa, #0d131afa), linear-gradient(145deg, #7aa2f70a, #0000 36%);
  border-radius: 8px;
}

.configurator-shell .catalog-list-item:hover {
  box-shadow: none;
  border-color: #476480eb;
  transform: translateY(-1px);
}

.configurator-shell .catalog-list-item.active {
  box-shadow: inset 2px 0 0 var(--config-accent);
  background: linear-gradient(#1d1114fa, #13151dfa), linear-gradient(145deg, #d91c241f, #0000 44%);
  border-color: #d91c2485;
}

.configurator-shell .catalog-list-item.active .catalog-list-meta {
  color: #f7c4c7;
  background: #d91c242e;
  border-color: #d91c245c;
}

.configurator-shell .catalog-list-item--compact {
  border-radius: 7px;
  min-height: 28px;
  padding: 5px 7px;
}

.configurator-shell .catalog-list-name {
  color: var(--config-text);
  letter-spacing: .01em;
  font-size: .68rem;
  font-weight: 650;
}

.configurator-shell .catalog-list-code {
  color: var(--config-muted);
  letter-spacing: .09em;
  font-size: .64rem;
}

.configurator-shell .catalog-card-header, .configurator-shell .sidebar-panel-topbar {
  align-items: center;
  margin-bottom: 2px;
}

.configurator-shell .catalog-list-main small {
  font-size: .74rem;
  line-height: 1.45;
}

.configurator-shell .catalog-card-header, .configurator-shell .sidebar-panel-topbar {
  margin-bottom: 2px;
}

.configurator-shell .text-input, .configurator-shell .textarea-input, .configurator-shell .select-input, .configurator-shell .file-picker-name {
  border: 1px solid var(--config-line);
  color: var(--config-text);
  box-shadow: none;
  background: linear-gradient(#0d131afa, #0a0f15fa), linear-gradient(145deg, #7aa2f70a, #0000 32%);
  border-radius: 8px;
}

.configurator-shell .text-input::placeholder {
  color: #93a4b7d1;
}

.configurator-shell .text-input:focus, .configurator-shell .textarea-input:focus, .configurator-shell .select-input:focus, .configurator-shell .file-picker-name:focus {
  border-color: #d91c2480;
  box-shadow: 0 0 0 3px #d91c2424, 0 10px 18px #00000029;
}

.configurator-shell .action-button {
  border: 1px solid var(--config-line);
  color: var(--config-text);
  box-shadow: none;
  background: linear-gradient(#111821fa, #0d131afa), linear-gradient(145deg, #7aa2f70d, #0000 38%);
  border-radius: 8px;
}

.configurator-shell .action-button:hover:not(:disabled) {
  border-color: var(--config-line-strong);
  box-shadow: none;
}

.configurator-shell .action-button.danger, .configurator-shell .admin-link {
  color: #fff;
  box-shadow: none;
  background: linear-gradient(#d91c24 0%, #a8161d 100%);
  border-color: #d91c247a;
}

.configurator-shell .button-label > span:first-child:after {
  color: #9fb4ca;
  background: #7aa2f714;
  border-color: #2b4056e6;
}

.configurator-shell .action-button.active .button-label > span:first-child:after, .configurator-shell .action-button.danger .button-label > span:first-child:after, .configurator-shell .admin-link:after {
  color: #fff;
  background: #ffffff2e;
  border-color: #ffffff2e;
}

.configurator-shell .button-label > span + span {
  color: #d6e0ea;
  background: #7aa2f714;
  border-color: #2b4056cc;
}

.configurator-shell .status-pill {
  border-color: var(--config-line);
  color: #c7d6e8;
  background: #7aa2f714;
  border-radius: 10px;
}

.configurator-shell .status-pill.valid {
  color: #8bd1af;
  background: #29604638;
}

.configurator-shell .status-pill.invalid {
  color: #f1b1b6;
  background: #8519223d;
}

.configurator-shell .viewport-panel {
  background: linear-gradient(#10161ffa, #0b1016fa), radial-gradient(circle at top, #7aa2f714, #0000 36%);
}

.configurator-shell .bom-row {
  box-shadow: none;
  background: linear-gradient(#141c25fa, #10171ffa), linear-gradient(145deg, #7aa2f70a, #0000 36%);
  border-color: #2b4056b3;
  border-radius: 8px;
}

.configurator-shell .action-button:before, .configurator-shell .picker-button:before, .configurator-shell .admin-link:before, .configurator-shell .admin-nav-link:before, .admin-shell .action-button:before, .admin-shell .picker-button:before, .admin-shell .admin-link:before, .admin-shell .admin-nav-link:before {
  display: none;
}

.configurator-shell .button-label > span:first-child:after, .configurator-shell .picker-button:after, .configurator-shell .admin-link:after, .configurator-shell .admin-nav-link:after, .admin-shell .button-label > span:first-child:after, .admin-shell .picker-button:after, .admin-shell .admin-link:after, .admin-shell .admin-nav-link:after {
  content: none;
  display: none;
}

.runtime-summary h4 {
  font-family: var(--font-display);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--brand-red);
  margin: 0 0 8px;
  font-size: .84rem;
}

.configurator-shell .error-list {
  gap: 8px;
  padding-left: 16px;
  font-size: .88rem;
  line-height: 1.48;
}

.json-details {
  align-self: end;
}

.json-details summary {
  cursor: pointer;
  font-family: var(--font-display);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--brand-red);
  font-size: .84rem;
  font-weight: 800;
  list-style: none;
}

.json-details summary::-webkit-details-marker {
  display: none;
}

.json-details[open] summary {
  margin-bottom: 12px;
}

.admin-header-panel h1 {
  font-size: clamp(2.45rem, 2.7vw, 3rem);
  line-height: .94;
}

.admin-nav {
  flex-wrap: wrap;
  gap: 6px;
  display: flex;
}

.admin-nav-link {
  color: var(--brand-navy);
  box-shadow: none;
  background: #fafbfcf5;
  border: 1px solid #1118271a;
  border-radius: 10px;
  align-items: center;
  gap: 10px;
  padding: 9px 13px;
  text-decoration: none;
  display: inline-flex;
}

.admin-nav-link.active {
  color: #fff;
  box-shadow: none;
  background: linear-gradient(#17202b 0%, #10171e 100%);
  border-color: #16202c;
}

.admin-home-grid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
  display: grid;
}

.admin-home-layout {
  gap: 18px;
  display: grid;
}

.admin-home-intro {
  background: linear-gradient(#fffffffc, #f7f9fbf7), linear-gradient(90deg, #c932390f, #0000 28%);
  gap: 8px;
  padding: 18px 20px;
  display: grid;
}

.admin-home-intro h2 {
  color: var(--brand-navy);
  margin: 0;
  font-size: clamp(1.7rem, 2.4vw, 2.3rem);
  line-height: 1.02;
}

.admin-home-intro p {
  max-width: 76ch;
  margin: 0;
}

.admin-home-card {
  color: var(--text);
  gap: 8px;
  padding: 18px 20px;
  text-decoration: none;
  display: grid;
}

.admin-home-card h2 {
  font-size: 1.7rem;
}

.admin-page-grid {
  grid-template-columns: minmax(300px, .94fr) minmax(460px, 1.26fr);
  align-items: start;
  gap: 24px;
  display: grid;
}

.mounting-studio {
  gap: 14px;
  display: grid;
}

.mounting-studio-grid {
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  align-items: stretch;
  gap: 12px;
  display: grid;
}

.mounting-studio-preview {
  background: linear-gradient(#fffffffc, #f5f8faf7), linear-gradient(120deg, #c932390a, #0000 28%);
  border: 1px solid #1118271a;
  border-radius: 12px;
  height: 460px;
  min-height: 460px;
  overflow: hidden;
}

.mounting-studio-preview > div, .mounting-preview-canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.mounting-studio-sidebar {
  align-content: start;
  gap: 10px;
  height: 460px;
  max-height: 460px;
  padding-right: 4px;
  display: grid;
  overflow: auto;
}

.mounting-suggestion-group {
  background: linear-gradient(#fffffffc, #f7f9fbf7), linear-gradient(120deg, #c932390a, #0000 30%);
  border: 1px solid #1118271a;
  border-radius: 12px;
  gap: 10px;
  padding: 12px;
  display: grid;
}

.mounting-suggestion-header {
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.mounting-suggestion-group h5 {
  font-family: var(--font-display);
  color: var(--brand-navy);
  overflow-wrap: anywhere;
  margin: 0;
  font-size: .92rem;
}

.mounting-suggestion-count {
  min-width: 26px;
  color: var(--brand-red);
  font-family: var(--font-display);
  text-align: center;
  background: #c932391f;
  border-radius: 999px;
  flex: none;
  padding: 4px 8px;
  font-size: .78rem;
  font-weight: 700;
}

.mounting-suggestion-list {
  gap: 8px;
  display: grid;
}

.mounting-suggestion-row {
  background: linear-gradient(#fffffffc, #f7f9fbf7), linear-gradient(120deg, #c9323908, #0000 26%);
  border: 1px solid #1118271a;
  border-radius: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  display: grid;
}

.mounting-suggestion-row .action-button {
  width: auto;
  min-width: 108px;
}

.mounting-suggestion-row strong {
  color: var(--brand-navy);
  margin-bottom: 3px;
  display: block;
}

.mounting-suggestion-row span {
  color: var(--muted);
  overflow-wrap: anywhere;
  font-size: .82rem;
  display: block;
}

.mounting-preview-empty {
  color: var(--muted);
  background: #f7f9fbf0;
  border: 1px dashed #1118272e;
  border-radius: 12px;
  padding: 14px;
}

.admin-panel {
  gap: 16px;
  padding: 18px 20px;
  display: grid;
}

.admin-inline-note {
  background: linear-gradient(#fffffffc, #f7f9fbf5), linear-gradient(90deg, #c932390d, #0000 32%);
  border: 1px solid #1118271a;
  border-radius: 12px;
  gap: 4px;
  padding: 12px 14px;
  display: grid;
}

.admin-inline-note strong {
  color: var(--brand-navy);
  font-family: var(--font-display);
}

.admin-inline-note span {
  color: var(--muted);
  line-height: 1.45;
}

.admin-actions-inline {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 8px;
  display: flex;
}

.admin-actions-inline .action-button {
  width: auto;
}

.admin-card-list, .admin-list-toolbar {
  gap: 10px;
  display: grid;
}

.admin-search-field {
  max-width: 420px;
}

.admin-object-row {
  grid-template-columns: minmax(0, 1.4fr) auto auto;
  align-items: center;
  gap: 14px;
  display: grid;
}

.admin-object-row-main {
  min-width: 0;
}

.admin-object-row-main strong {
  display: block;
}

.admin-object-row-main .import-note {
  overflow-wrap: anywhere;
}

.admin-object-row-meta {
  text-align: right;
  color: var(--muted);
  justify-items: end;
  gap: 4px;
  font-size: .82rem;
  display: grid;
}

.admin-body-editor-panel {
  max-width: 1480px;
}

.admin-editor-header {
  align-items: center;
}

.admin-item-card, .admin-subsection {
  padding: 14px;
}

.admin-inline-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  display: grid;
}

.admin-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}

.admin-form-grid.compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.admin-field-full {
  grid-column: 1 / -1;
}

.admin-item-card, .admin-subsection, .admin-home-card {
  box-shadow: none;
  background: linear-gradient(#fffffffc, #f7f9fbf7), linear-gradient(120deg, #c932390a, #0000 30%);
  border: 1px solid #1118271a;
  border-radius: 12px;
}

.admin-item-card:hover, .admin-subsection:hover, .admin-home-card:hover {
  border-color: #c9323933;
  transform: none;
  box-shadow: 0 10px 24px #1118270f;
}

.admin-shell .action-button, .admin-shell .picker-button {
  color: #16202c;
  box-shadow: none;
  background: linear-gradient(#fffffffc, #f4f6f8f7), linear-gradient(120deg, #c9323908, #0000 28%);
  border: 1px solid #1118271f;
  border-radius: 10px;
  padding: 10px 14px;
}

.admin-shell .action-button:hover:not(:disabled), .admin-shell .picker-button:hover {
  border-color: #c932393d;
  transform: none;
  box-shadow: 0 8px 18px #1118270d;
}

.admin-shell .picker-button, .admin-shell .action-button.active, .admin-shell .import-button {
  color: #fff;
  box-shadow: none;
  background: linear-gradient(#17202b 0%, #10171e 100%);
  border-color: #16202c;
}

.admin-shell .action-button.danger {
  color: #fff;
  box-shadow: none;
  background: linear-gradient(#981a23 0%, #75131a 100%);
  border-color: #8d1820;
}

.admin-shell .text-input, .admin-shell .textarea-input, .admin-shell .select-input, .admin-shell .file-picker-name {
  color: #16202c;
  box-shadow: none;
  background: linear-gradient(#fffffffc, #f7f9fbf7), linear-gradient(120deg, #c9323908, #0000 24%);
  border: 1px solid #1118271f;
  border-radius: 10px;
}

.admin-shell .text-input:focus, .admin-shell .textarea-input:focus, .admin-shell .select-input:focus, .admin-shell .file-picker-name:focus {
  border-color: #c932394d;
  transform: none;
  box-shadow: 0 0 0 3px #c9323914;
}

.admin-shell .file-picker-name {
  align-items: center;
  min-height: 44px;
  display: flex;
}

.configurator-shell, .admin-shell {
  --unirig-red-start: #ef3b36;
  --unirig-red-end: #b5121b;
  --unirig-red-soft: #d91c241a;
  --unirig-ink: #17212b;
  --unirig-ink-soft: #5d6b77;
  --unirig-login-dark-0: #2b3239;
  --unirig-login-dark-1: #1c2227;
  --unirig-login-dark-2: #151b1f;
  --unirig-steel-0: #fcfdfe;
  --unirig-steel-1: #f3f6f8;
  --unirig-steel-2: #e4eaef;
  --unirig-steel-dark-0: #566068;
  --unirig-steel-dark-1: #434c53;
  --unirig-steel-dark-2: #30373d;
  --unirig-steel-dark-3: #22282d;
  --unirig-line: #d3dce3;
  --unirig-line-strong: #bfcad3;
}

.configurator-shell {
  --config-line: var(--unirig-line);
  --config-line-strong: var(--unirig-line-strong);
  --config-text: var(--unirig-ink);
  --config-muted: var(--unirig-ink-soft);
  --config-accent: #d91c24;
  background: radial-gradient(circle at 0 0, #d91c2424, #0000 28%), radial-gradient(circle at 100% 100%, #17212b1a, #0000 30%), linear-gradient(#f8fafb 0%, #edf2f5 100%);
}

.configurator-shell .panel, .configurator-shell .info-block, .configurator-shell .selection-card, .configurator-shell .catalog-category-card, .configurator-shell .catalog-list-item, .configurator-shell .text-input, .configurator-shell .textarea-input, .configurator-shell .select-input, .configurator-shell .file-picker-name, .configurator-shell .bom-row {
  border-color: var(--unirig-line);
  color: var(--unirig-ink);
  background: linear-gradient(#fffffffa, #f3f6f8f5);
  box-shadow: 0 12px 24px #17212b0f;
}

.configurator-shell .configurator-topbar {
  background: linear-gradient(#fffffffa, #f4f8faf0);
  border-color: #11182714;
  border-radius: 5px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 0 8px;
  display: grid;
}

.configurator-shell .configurator-wordmark {
  color: #df1d25;
  font-size: clamp(1.78rem, 2.4vw, 2.4rem);
}

.configurator-shell .configurator-product-tag {
  background: linear-gradient(135deg, var(--unirig-red-start) 0%, var(--unirig-red-end) 100%);
  color: #fff;
  letter-spacing: .12em;
  border-color: #0000;
  padding: 2px 7px;
  font-size: .5rem;
  box-shadow: 0 6px 12px #b5121b1f;
}

.configurator-shell .admin-link, .admin-shell .action-button.active, .admin-shell .import-button, .admin-shell .admin-nav-link.active {
  background: linear-gradient(135deg, var(--unirig-red-start) 0%, var(--unirig-red-end) 100%);
  color: #fff;
  border-color: #0000;
  box-shadow: 0 12px 24px #b5121b24;
}

.configurator-shell .configurator-topbar .admin-link {
  border-radius: 999px;
  flex: none;
  min-height: 30px;
  padding: 0 10px;
  font-size: .78rem;
}

.configurator-shell .session-chip, .admin-shell .session-chip {
  color: var(--unirig-ink);
  background: linear-gradient(#fffffffa, #f1f5f7f0);
  border-color: #434c5333;
}

.configurator-shell .configurator-topbar-actions {
  flex-wrap: nowrap;
  justify-content: flex-end;
  justify-self: end;
  align-items: center;
  gap: 6px;
  min-width: max-content;
  margin-left: 0;
  display: flex;
}

.configurator-shell .configurator-topbar-actions > * {
  flex: none;
}

.configurator-shell .session-chip {
  white-space: nowrap;
  border-radius: 999px;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 0 8px;
  display: inline-flex;
}

.configurator-shell .session-chip-label {
  display: none;
}

.configurator-shell .session-chip strong, .admin-shell .session-chip strong {
  color: var(--unirig-ink);
}

.configurator-shell .session-chip strong {
  white-space: nowrap;
  font-size: .76rem;
}

.configurator-shell .session-chip-label, .admin-shell .session-chip-label {
  color: #61707b;
}

.configurator-shell .session-logout-button, .admin-shell .session-logout-button {
  color: var(--unirig-ink);
  background: linear-gradient(#fffffffa, #f1f5f7f5);
  border-color: #30373d33;
  box-shadow: 0 8px 18px #17212b0f;
}

.configurator-shell .session-logout-button {
  flex: none;
  width: auto;
  min-height: 30px;
  padding: 0 10px;
  font-size: .78rem;
}

.configurator-shell .session-logout-button:hover:not(:disabled), .admin-shell .session-logout-button:hover:not(:disabled) {
  border-color: #d91c2447;
}

.configurator-shell .catalog-sidebar, .configurator-shell .runtime-sidebar, .configurator-shell .catalog-sidebar-rail, .configurator-shell .runtime-sidebar-rail {
  color: #f5f7f9;
  background: linear-gradient(#2b3239fa, #1c2227fa), radial-gradient(circle at 0 0, #ef3b361f, #0000 26%);
  border-color: #ffffff14;
  box-shadow: 0 16px 30px #17212b24;
}

.configurator-shell .catalog-sidebar .info-block, .configurator-shell .runtime-sidebar .info-block {
  color: #f5f7f9;
  box-shadow: none;
  background: linear-gradient(#ffffff0f, #ffffff08);
  border-color: #ffffff14;
}

.configurator-shell .catalog-sidebar h3, .configurator-shell .catalog-sidebar h4, .configurator-shell .runtime-sidebar h3, .configurator-shell .runtime-sidebar h4, .configurator-shell .runtime-sidebar .bom-toggle-label, .configurator-shell .catalog-sidebar .catalog-list-name, .configurator-shell .catalog-sidebar .catalog-category-main strong, .configurator-shell .runtime-sidebar .selection-card strong {
  color: #f5f7f9;
}

.configurator-shell .catalog-sidebar .import-note, .configurator-shell .catalog-sidebar .button-meta, .configurator-shell .catalog-sidebar .catalog-list-code, .configurator-shell .runtime-sidebar .import-note, .configurator-shell .runtime-sidebar p, .configurator-shell .runtime-sidebar .selection-meta, .configurator-shell .runtime-sidebar .bom-toggle-meta {
  color: #f5f7f9b8;
}

.configurator-shell .catalog-sidebar .text-input, .configurator-shell .catalog-sidebar .textarea-input, .configurator-shell .catalog-sidebar .select-input, .configurator-shell .runtime-sidebar .selection-card, .configurator-shell .runtime-sidebar .bom-row {
  color: #f5f7f9;
  box-shadow: none;
  background: linear-gradient(#ffffff14, #ffffff0a);
  border-color: #ffffff14;
}

.configurator-shell .catalog-sidebar .text-input::placeholder {
  color: #f5f7f96b;
}

.configurator-shell .catalog-sidebar .catalog-category-card, .configurator-shell .catalog-sidebar .catalog-list-item {
  box-shadow: none;
  background: linear-gradient(#ffffff0f, #ffffff08);
  border-color: #ffffff14;
}

.configurator-shell .catalog-sidebar .catalog-category-card.expanded, .configurator-shell .catalog-sidebar .catalog-list-item:hover {
  border-color: #ef3b3638;
}

.configurator-shell .catalog-sidebar .catalog-list-item.active {
  background: linear-gradient(#ef3b3624, #b5121b14), linear-gradient(#ffffff14, #ffffff0a);
  border-color: #ef3b3657;
  box-shadow: inset 2px 0 #ef3b36;
}

.configurator-shell .catalog-sidebar .catalog-category-toggle, .configurator-shell .runtime-sidebar .workspace-pane-toggle--inline, .configurator-shell .runtime-sidebar .bom-toggle-icon, .configurator-shell .catalog-sidebar .workspace-pane-toggle--inline {
  color: #f5f7f9;
  background: linear-gradient(#566068f5, #30373dfa);
  border-color: #ffffff14;
  box-shadow: inset 0 1px #ffffff14;
}

.configurator-shell .runtime-sidebar .status-pill {
  color: #f5f7f9;
  background: linear-gradient(#566068f5, #30373dfa);
  border-color: #ffffff14;
}

.configurator-shell .runtime-sidebar .status-pill.valid {
  color: #d9eee3;
  background: linear-gradient(#515f56fa, #343f38fa);
  border-color: #5a72647a;
}

.configurator-shell .runtime-sidebar .status-pill.invalid {
  color: #ffe4e6;
  background: linear-gradient(#6e4a4efa, #4f3438fa);
  border-color: #7d434766;
}

.login-shell {
  background: radial-gradient(circle at 0 0, #d91c2424, #0000 30%), radial-gradient(circle at 100% 100%, #17212b1a, #0000 32%), linear-gradient(#f8fafb 0%, #edf2f5 100%);
  place-items: center;
  min-height: 100vh;
  padding: 28px;
  display: grid;
}

.login-frame {
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  background: #ffffffc7;
  border: 1px solid #30373d24;
  border-radius: 22px;
  grid-template-columns: minmax(360px, 1.06fr) minmax(300px, .82fr);
  width: min(1020px, 100%);
  min-height: min(620px, 100vh - 56px);
  display: grid;
  overflow: hidden;
  box-shadow: 0 28px 64px #17212b1f;
}

.login-brand-panel {
  color: #f5f7f9;
  background: linear-gradient(#2b3239fa, #1c2227fa), radial-gradient(circle at 0 0, #ef3b3629, #0000 28%);
  align-content: space-between;
  gap: 22px;
  padding: 38px;
  display: grid;
  position: relative;
}

.login-brand-panel:after {
  content: "";
  pointer-events: none;
  background: linear-gradient(135deg, #ef3b3614, #0000 38%), linear-gradient(#0000 0%, #ffffff08 100%);
  position: absolute;
  inset: 0;
}

.login-brand-lockup, .login-brand-copy, .login-brand-notes {
  z-index: 1;
  position: relative;
}

.login-brand-lockup {
  justify-content: start;
  gap: 10px;
  display: grid;
}

.login-wordmark {
  font-family: var(--font-display);
  letter-spacing: -.08em;
  text-transform: lowercase;
  color: #ef242d;
  font-size: clamp(3.2rem, 6.2vw, 4.9rem);
  font-weight: 800;
  line-height: .82;
}

.login-product-tag {
  color: #fff;
  width: fit-content;
  font-family: var(--font-mono);
  letter-spacing: .16em;
  text-transform: uppercase;
  background: linear-gradient(135deg, #ef3b36 0%, #b5121b 100%);
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 6px 12px;
  font-size: .64rem;
  font-weight: 700;
  display: inline-flex;
}

.login-brand-copy {
  gap: 12px;
  max-width: 34ch;
  display: grid;
}

.login-eyebrow {
  font-family: var(--font-mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #ffffffb3;
  font-size: .68rem;
  font-weight: 700;
}

.login-brand-copy h1 {
  font-family: var(--font-display);
  letter-spacing: -.05em;
  margin: 0;
  font-size: clamp(2rem, 3vw, 2.9rem);
  line-height: .94;
}

.login-brand-copy p, .login-note-card p, .login-card-heading p, .login-hint, .login-footer-note {
  margin: 0;
  line-height: 1.6;
}

.login-brand-copy p {
  color: #f5f7f9cc;
}

.login-brand-notes {
  gap: 12px;
  display: grid;
}

.login-note-card {
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  background: linear-gradient(#ffffff0f, #ffffff08);
  border: 1px solid #ffffff14;
  border-radius: 14px;
  padding: 13px 14px;
}

.login-note-card strong {
  font-family: var(--font-display);
  margin-bottom: 6px;
  font-size: .92rem;
  display: block;
}

.login-note-card p {
  color: #f5f7f9bd;
  font-size: .84rem;
}

.login-card-panel {
  background: linear-gradient(#fffffffa, #f2f6f8f5), radial-gradient(circle at 100% 0, #ef3b3614, #0000 28%);
  place-items: center;
  padding: 22px;
  display: grid;
}

.login-card {
  gap: 15px;
  width: min(332px, 100%);
  display: grid;
}

.login-card-heading {
  gap: 7px;
  display: grid;
}

.login-card-kicker {
  font-family: var(--font-mono);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #c91d25;
  font-size: .58rem;
  font-weight: 700;
}

.login-card-heading h2 {
  font-family: var(--font-display);
  letter-spacing: -.05em;
  color: #17212b;
  margin: 0;
  font-size: clamp(1.34rem, 1.95vw, 1.82rem);
  line-height: .98;
}

.login-card-heading p, .login-hint, .login-footer-note {
  color: #5d6b77;
  font-size: .82rem;
  line-height: 1.44;
}

.login-form {
  gap: 12px;
  display: grid;
}

.login-field {
  gap: 5px;
  display: grid;
}

.login-field span {
  font-family: var(--font-mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #4b5862;
  font-size: .58rem;
  font-weight: 700;
}

.login-field input {
  color: #17212b;
  background: linear-gradient(#fffffffa, #f2f6f8fa);
  border: 1px solid #30373d29;
  border-radius: 11px;
  min-height: 44px;
  padding: 0 12px;
  font-size: .86rem;
  transition: border-color .18s, box-shadow .18s, transform .18s;
}

.login-field input::placeholder {
  color: #91a0ac;
}

.login-field input:focus {
  border-color: #d91c2466;
  outline: none;
  box-shadow: 0 0 0 4px #d91c241f;
}

.login-submit, .login-google-button {
  min-height: 44px;
  font-family: var(--font-display);
  letter-spacing: -.01em;
  border: 0;
  border-radius: 12px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  font-size: .86rem;
  font-weight: 700;
  display: inline-flex;
}

.login-submit {
  color: #fff;
  background: linear-gradient(135deg, #ef3b36 0%, #b5121b 100%);
  box-shadow: 0 14px 28px #b5121b2e;
}

.login-submit:disabled {
  opacity: .7;
  cursor: wait;
}

.login-divider {
  justify-content: center;
  align-items: center;
  min-height: 20px;
  display: flex;
  position: relative;
}

.login-divider:before {
  content: "";
  border-top: 1px solid #30373d1f;
  position: absolute;
  inset: 50% 0 auto;
}

.login-divider span {
  font-family: var(--font-mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #6a7883;
  background: #f7fafb;
  padding: 0 12px;
  font-size: .56rem;
  font-weight: 700;
  position: relative;
}

.login-google-button {
  color: #46525b;
  cursor: not-allowed;
  background: linear-gradient(#fffffffa, #f2f6f8fa);
  border: 1px solid #30373d1f;
  justify-content: space-between;
}

.login-google-icon {
  color: #c91d25;
  width: 20px;
  height: 20px;
  font-family: var(--font-display);
  background: #d91c241a;
  border-radius: 999px;
  place-items: center;
  font-size: .72rem;
  font-weight: 800;
  display: inline-grid;
}

.login-placeholder-badge {
  font-family: var(--font-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  background: #17212b14;
  border-radius: 999px;
  padding: 4px 7px;
  font-size: .54rem;
  font-weight: 700;
}

.login-error {
  color: #9f141c;
  background: #b5121b14;
  border: 1px solid #b5121b2e;
  border-radius: 10px;
  margin: 0;
  padding: 10px 12px;
  font-size: .78rem;
}

.login-switch-copy {
  color: #5d6b77;
  text-align: center;
  margin: 0;
  font-size: .8rem;
  line-height: 1.4;
}

.login-switch-copy a {
  color: #c91d25;
  font-weight: 700;
  text-decoration: none;
}

.login-switch-copy a:hover {
  text-decoration: underline;
}

.configurator-shell .action-button.danger, .admin-shell .action-button.danger {
  color: #fff;
  background: linear-gradient(135deg, #bf1a22 0%, #7f1017 100%);
  border-color: #0000;
  box-shadow: 0 12px 24px #7f101724;
}

.configurator-shell .action-button, .admin-shell .action-button, .configurator-shell .catalog-category-toggle, .configurator-shell .workspace-pane-toggle--inline {
  color: var(--unirig-ink);
}

.configurator-shell .action-button, .admin-shell .action-button, .admin-shell .picker-button {
  border-color: var(--unirig-line);
  background: linear-gradient(#fffffffc, #f1f5f7f7);
  box-shadow: 0 10px 18px #17212b0d;
}

.configurator-shell .action-button:hover:not(:disabled), .admin-shell .action-button:hover:not(:disabled), .admin-shell .picker-button:hover, .configurator-shell .catalog-list-item:hover, .configurator-shell .catalog-category-card.expanded {
  border-color: #d91c2442;
  box-shadow: 0 14px 26px #17212b14;
}

.admin-shell .picker-button {
  background: linear-gradient(135deg, var(--unirig-red-start) 0%, var(--unirig-red-end) 100%);
  color: #fff;
  border-color: #0000;
  box-shadow: 0 12px 24px #b5121b24;
}

.configurator-shell .workspace-pane-toggle--inline, .configurator-shell .bom-toggle-icon {
  background: linear-gradient(180deg, var(--unirig-steel-dark-0) 0%, var(--unirig-steel-dark-1) 38%, var(--unirig-steel-dark-2) 100%);
  color: #f6f8fa;
  border-color: #30373d8f;
  box-shadow: inset 0 1px #ffffff14;
}

.configurator-shell .catalog-category-toggle {
  color: #f4f7f9;
  background: linear-gradient(#566068f5 0%, #30373dfa 100%);
  border-color: #30373d7a;
}

.configurator-shell .catalog-list-item.active {
  background: linear-gradient(#fffffffc, #f2f6f8f7);
  border-color: #d91c2442;
  box-shadow: inset 3px 0 #d91c24, 0 12px 22px #17212b14;
}

.configurator-shell .catalog-list-name, .configurator-shell .catalog-category-main strong, .configurator-shell .configurator-brand h1, .configurator-shell .selection-card strong, .configurator-shell .info-block h2 {
  color: var(--unirig-ink);
}

.configurator-shell .catalog-list-code, .configurator-shell .button-meta, .configurator-shell .selection-meta, .configurator-shell .info-block p, .configurator-shell .import-note, .configurator-shell .runtime-summary p {
  color: var(--unirig-ink-soft);
}

.configurator-shell .info-block h3, .configurator-shell .runtime-summary h4, .admin-shell .configurator-kicker, .admin-shell .admin-inline-note strong {
  color: #c91d25;
}

.configurator-shell .status-pill {
  color: #eef3f6;
  background: linear-gradient(#566068f5 0%, #30373dfa 100%);
  border-color: #30373d8f;
}

.configurator-shell .status-pill.valid {
  color: #d9eee3;
  background: linear-gradient(#515f56fa, #343f38fa);
  border-color: #45605161;
}

.configurator-shell .status-pill.invalid {
  color: #ffe4e6;
  background: linear-gradient(#6e4a4efa, #4f3438fa);
  border-color: #7d434766;
}

.configurator-shell .viewport-panel {
  box-shadow: none;
  background: none;
  border-color: #0000;
}

.configurator-shell .viewport-canvas {
  background: #eef4f2;
  border-radius: 0;
  overflow: hidden;
}

.admin-shell .panel, .admin-item-card, .admin-subsection, .admin-home-card, .mounting-studio-preview, .mounting-suggestion-group, .mounting-suggestion-row, .mounting-preview-empty, .admin-inline-note, .admin-shell .text-input, .admin-shell .textarea-input, .admin-shell .select-input, .admin-shell .file-picker-name {
  border-color: var(--unirig-line);
  color: var(--unirig-ink);
  background: linear-gradient(#fffffffc, #f4f7f9f7);
}

.admin-header-panel {
  background: linear-gradient(#fffffffc, #f4f7f9fa);
  border-color: #11182714;
}

.admin-shell .panel, .admin-item-card:hover, .admin-subsection:hover, .admin-home-card:hover {
  box-shadow: 0 14px 28px #17212b14;
}

.admin-nav-link {
  border-color: var(--unirig-line);
  color: var(--unirig-ink);
  background: linear-gradient(#fffffffc, #f2f6f8f7);
}

.admin-nav-link:hover:not(.active) {
  background: linear-gradient(#fff, #f5f8fafa);
  border-color: #d91c243d;
}

@keyframes panel-reveal {
  from {
    opacity: 0;
    transform: translateY(20px)scale(.985);
  }

  to {
    opacity: 1;
    transform: translateY(0)scale(1);
  }
}

@keyframes block-reveal {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes status-pulse {
  0% {
    box-shadow: 0 0;
  }

  70% {
    box-shadow: 0 0 0 10px #0000;
  }

  100% {
    box-shadow: 0 0 #0000;
  }
}

@keyframes header-float {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-3px);
  }
}

@media (max-width: 1320px) {
  .workspace {
    grid-template-columns: minmax(300px, 330px) minmax(0, 1fr) minmax(300px, 340px);
  }

  .configurator-shell .workspace {
    grid-template-columns: minmax(240px, 280px) minmax(0, 1fr) minmax(230px, 270px);
  }

  .configurator-shell .workspace.left-sidebar-collapsed {
    grid-template-columns: 56px minmax(0, 1fr) minmax(230px, 270px);
  }

  .configurator-shell .workspace.right-sidebar-collapsed {
    grid-template-columns: minmax(240px, 280px) minmax(0, 1fr) 56px;
  }

  .configurator-shell .workspace.left-sidebar-collapsed.right-sidebar-collapsed {
    grid-template-columns: 56px minmax(0, 1fr) 56px;
  }
}

@media (max-width: 1180px) {
  .configurator-shell .workspace {
    grid-template-columns: minmax(220px, 250px) minmax(0, 1fr) minmax(205px, 225px);
  }

  .configurator-shell .workspace.left-sidebar-collapsed {
    grid-template-columns: 56px minmax(0, 1fr) minmax(205px, 225px);
  }

  .configurator-shell .workspace.right-sidebar-collapsed {
    grid-template-columns: minmax(220px, 250px) minmax(0, 1fr) 56px;
  }

  .configurator-shell .workspace.left-sidebar-collapsed.right-sidebar-collapsed {
    grid-template-columns: 56px minmax(0, 1fr) 56px;
  }

  .configurator-topbar {
    padding: 14px 16px;
  }

  .configurator-topbar-copy {
    display: none;
  }
}

@media (max-width: 980px) {
  .workspace {
    grid-template-columns: 1fr;
  }

  .configurator-shell {
    grid-template-rows: auto auto;
    height: auto;
    overflow: visible;
  }

  .configurator-shell .workspace {
    grid-template-columns: 1fr;
    height: auto;
  }

  .configurator-shell .workspace.left-sidebar-collapsed, .configurator-shell .workspace.right-sidebar-collapsed, .configurator-shell .workspace.left-sidebar-collapsed.right-sidebar-collapsed {
    grid-template-columns: 1fr;
  }

  .sidebar, .viewport-panel {
    height: auto;
    max-height: none;
    position: relative;
    top: auto;
    overflow: visible;
  }

  .viewport-panel {
    height: 72vh;
    min-height: 500px;
  }

  .viewport-panel, .viewport-canvas {
    min-height: 420px;
  }

  .sidebar-topbar, .section-header, .admin-actions-inline, .file-picker-row {
    flex-direction: column;
  }

  .configurator-topbar {
    grid-template-columns: 1fr;
    align-items: center;
  }

  .configurator-topbar-actions {
    flex-wrap: wrap;
    justify-content: flex-start;
    justify-self: stretch;
    min-width: 0;
    margin-left: 0;
  }

  .workspace-pane-toggle--expand {
    flex-direction: row;
    gap: 10px;
    min-height: 40px;
  }

  .workspace-pane-toggle--expand span {
    writing-mode: initial;
    transform: none;
  }

  .file-picker-row {
    grid-template-columns: 1fr;
    display: grid;
  }

  .mounting-studio-grid {
    grid-template-columns: 1fr;
  }

  .mounting-studio-preview, .mounting-studio-sidebar {
    height: auto;
    min-height: 340px;
    max-height: none;
  }

  .admin-page-grid, .admin-form-grid, .admin-inline-grid, .admin-object-row {
    grid-template-columns: 1fr;
  }

  .admin-object-row-meta {
    text-align: left;
    justify-items: start;
  }

  .compact-stack {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .app-shell {
    padding: 16px;
  }

  .configurator-shell {
    padding: 14px;
  }

  .workspace, .admin-shell, .admin-home-grid, .admin-page-grid {
    gap: 16px;
  }

  .sidebar, .admin-panel, .admin-header-panel, .info-block, .admin-home-card, .admin-item-card, .admin-subsection {
    padding: 16px;
  }

  .sidebar-topbar {
    gap: 14px;
  }

  .sidebar h1 {
    font-size: 2.5rem;
  }

  .admin-link, .picker-button, .admin-nav-link {
    justify-content: center;
    width: 100%;
  }

  .configurator-topbar-actions {
    flex-direction: row;
    align-items: center;
    width: auto;
  }

  .configurator-topbar .admin-link {
    width: auto;
  }

  .status-pill {
    justify-content: center;
    width: 100%;
  }

  .login-shell {
    padding: 16px;
  }

  .login-frame {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .login-brand-panel, .login-card-panel {
    padding: 24px;
  }

  .login-card {
    width: 100%;
  }
}

.configurator-reference-shell {
  --cfg-bg: #1a1d24;
  --cfg-card: #23272f;
  --cfg-card-muted: #2d323c;
  --cfg-border: #3a3f4a;
  --cfg-text: #fff;
  --cfg-muted: #8b9099;
  --cfg-accent: #c44442;
  --cfg-success: #22c55e;
  --cfg-warning: #eab308;
  background: var(--cfg-bg);
  max-width: none;
  height: 100vh;
  min-height: 100vh;
  color: var(--cfg-text);
  font-family: var(--font-geist), var(--font-body), sans-serif;
  isolation: isolate;
  grid-template-rows: 52px minmax(0, 1fr);
  gap: 0;
  margin: 0;
  padding: 0;
  display: grid;
  position: relative;
  overflow: hidden;
}

.configurator-reference-shell .cfg-header {
  border-bottom: 1px solid var(--cfg-border);
  background: var(--cfg-card);
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  height: 52px;
  padding: 0 18px;
  display: flex;
}

.configurator-reference-shell .cfg-brand, .configurator-reference-shell .cfg-header-actions {
  min-width: 0;
}

.configurator-reference-shell .cfg-header-brand-lockup {
  align-items: center;
  gap: 12px;
  min-width: 0;
  display: flex;
}

.configurator-reference-shell .cfg-header .login-wordmark {
  font-size: clamp(2.45rem, 2.2vw, 2.95rem);
  line-height: .86;
}

.configurator-reference-shell .cfg-header .login-product-tag {
  flex: none;
  padding: 5px 10px;
  font-size: .54rem;
}

.configurator-reference-shell .cfg-header-actions {
  flex: none;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  display: flex;
}

.configurator-reference-shell .cfg-inline-icon, .configurator-reference-shell .cfg-icon-12, .configurator-reference-shell .cfg-icon-14, .configurator-reference-shell .cfg-icon-16, .configurator-reference-shell .cfg-icon-24, .configurator-reference-shell .cfg-rail-glyph {
  flex: none;
}

.configurator-reference-shell .cfg-inline-icon, .configurator-reference-shell .cfg-icon-16 {
  width: 16px;
  height: 16px;
}

.configurator-reference-shell .cfg-icon-14 {
  width: 14px;
  height: 14px;
}

.configurator-reference-shell .cfg-icon-12 {
  width: 12px;
  height: 12px;
}

.configurator-reference-shell .cfg-icon-24 {
  width: 24px;
  height: 24px;
}

.configurator-reference-shell .cfg-user-chip, .configurator-reference-shell .cfg-header-link, .configurator-reference-shell .cfg-header-button {
  border: 1px solid var(--cfg-border);
  height: 30px;
  color: var(--cfg-text);
  white-space: nowrap;
  background: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 0 11px;
  font-size: .82rem;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
}

.configurator-reference-shell .cfg-user-chip {
  color: var(--cfg-muted);
}

.configurator-reference-shell .cfg-user-chip strong {
  color: var(--cfg-text);
  text-overflow: ellipsis;
  max-width: 10ch;
  font-weight: 600;
  overflow: hidden;
}

.configurator-reference-shell .cfg-header-link {
  color: #f2d9d7;
  background: #c444421f;
  border-color: #c444428c;
}

.configurator-reference-shell .cfg-header-button {
  cursor: pointer;
}

.configurator-reference-shell .cfg-header-button:hover, .configurator-reference-shell .cfg-header-link:hover, .configurator-reference-shell .cfg-icon-button:hover, .configurator-reference-shell .cfg-category-trigger:hover, .configurator-reference-shell .cfg-part-row:hover, .configurator-reference-shell .cfg-action-button:hover {
  filter: brightness(1.04);
}

.configurator-reference-shell .cfg-workspace {
  grid-template-columns: 320px minmax(0, 1fr) 384px;
  min-height: 0;
  display: grid;
  overflow: hidden;
}

.configurator-reference-shell .cfg-workspace.is-left-collapsed {
  grid-template-columns: 56px minmax(0, 1fr) 384px;
}

.configurator-reference-shell .cfg-workspace.is-right-collapsed {
  grid-template-columns: 320px minmax(0, 1fr) 56px;
}

.configurator-reference-shell .cfg-workspace.is-left-collapsed.is-right-collapsed {
  grid-template-columns: 56px minmax(0, 1fr) 56px;
}

.configurator-reference-shell .cfg-sidebar, .configurator-reference-shell .cfg-rail {
  background: var(--cfg-card);
  min-height: 0;
}

.configurator-reference-shell .cfg-sidebar-left, .configurator-reference-shell .cfg-rail-left {
  border-right: 1px solid var(--cfg-border);
}

.configurator-reference-shell .cfg-sidebar-right, .configurator-reference-shell .cfg-rail-right {
  border-left: 1px solid var(--cfg-border);
}

.configurator-reference-shell .cfg-sidebar {
  flex-direction: column;
  display: flex;
  overflow: hidden;
}

.configurator-reference-shell .cfg-sidebar-header, .configurator-reference-shell .cfg-status-banner-wrap {
  border-bottom: 1px solid var(--cfg-border);
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 16px 16px 12px;
  display: flex;
}

.configurator-reference-shell .cfg-sidebar-heading {
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cfg-muted);
  align-items: center;
  gap: 8px;
  font-size: .72rem;
  font-weight: 700;
  display: flex;
}

.configurator-reference-shell .cfg-sidebar-heading-icon {
  width: 16px;
  height: 16px;
  color: var(--cfg-accent);
}

.configurator-reference-shell .cfg-icon-button {
  border: 1px solid var(--cfg-border);
  background: var(--cfg-card-muted);
  width: 32px;
  height: 32px;
  color: var(--cfg-muted);
  cursor: pointer;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.configurator-reference-shell .cfg-search-field {
  padding: 16px;
  position: relative;
}

.configurator-reference-shell .cfg-search-icon {
  color: var(--cfg-muted);
  position: absolute;
  top: 50%;
  left: 28px;
  transform: translateY(-50%);
}

.configurator-reference-shell .cfg-search-input, .configurator-reference-shell .cfg-select {
  border: 1px solid var(--cfg-border);
  background: var(--cfg-card-muted);
  width: 100%;
  height: 42px;
  color: var(--cfg-text);
  border-radius: 8px;
  font-family: inherit;
  font-size: .92rem;
}

.configurator-reference-shell .cfg-search-input {
  padding: 0 14px 0 40px;
}

.configurator-reference-shell .cfg-search-input::placeholder {
  color: var(--cfg-muted);
}

.configurator-reference-shell .cfg-search-input:focus, .configurator-reference-shell .cfg-select:focus {
  border-color: #c4444299;
  outline: none;
  box-shadow: 0 0 0 3px #c4444229;
}

.configurator-reference-shell .cfg-select {
  padding: 0 12px;
}

.configurator-reference-shell .cfg-sidebar-scroll {
  flex-direction: column;
  flex: 1;
  gap: 12px;
  padding: 0 12px 16px;
  display: flex;
  overflow: auto;
}

.configurator-reference-shell .cfg-category-list {
  gap: 8px;
  display: grid;
}

.configurator-reference-shell .cfg-category-card {
  background: none;
  border: 1px solid #0000;
  border-radius: 8px;
}

.configurator-reference-shell .cfg-category-card.is-open {
  border-color: var(--cfg-border);
  background: var(--cfg-card-muted);
}

.configurator-reference-shell .cfg-category-trigger {
  width: 100%;
  color: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px;
  display: flex;
}

.configurator-reference-shell .cfg-category-main {
  align-items: center;
  gap: 10px;
  min-width: 0;
  display: flex;
}

.configurator-reference-shell .cfg-category-main strong, .configurator-reference-shell .cfg-part-name {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  overflow: hidden;
}

.configurator-reference-shell .cfg-category-main strong {
  font-size: .96rem;
  font-weight: 600;
}

.configurator-reference-shell .cfg-category-glyph {
  color: var(--cfg-muted);
}

.configurator-reference-shell .cfg-category-toggle, .configurator-reference-shell .cfg-part-action, .configurator-reference-shell .cfg-bom-toggle-icon {
  border: 1px solid var(--cfg-border);
  width: 28px;
  height: 28px;
  color: var(--cfg-text);
  background: #ffffff08;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.configurator-reference-shell .cfg-part-list {
  gap: 6px;
  padding: 0 12px 12px;
  display: grid;
}

.configurator-reference-shell .cfg-part-row {
  width: 100%;
  color: inherit;
  cursor: pointer;
  text-align: left;
  background: #ffffff08;
  border: 1px solid #0000;
  border-radius: 8px;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  display: flex;
}

.configurator-reference-shell .cfg-part-row.is-active {
  background: #c444421f;
  border-color: #c4444280;
}

.configurator-reference-shell .cfg-part-copy {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.configurator-reference-shell .cfg-part-name {
  font-size: .9rem;
  font-weight: 500;
}

.configurator-reference-shell .cfg-part-code {
  color: var(--cfg-muted);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-size: .72rem;
}

.configurator-reference-shell .cfg-card {
  border: 1px solid var(--cfg-border);
  background: var(--cfg-card-muted);
  border-radius: 10px;
  gap: 12px;
  padding: 14px;
  display: grid;
}

.configurator-reference-shell .cfg-card-header-line, .configurator-reference-shell .cfg-card-section-header {
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.configurator-reference-shell .cfg-card-section-header {
  justify-content: flex-start;
}

.configurator-reference-shell .cfg-card-eyebrow {
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--cfg-accent);
  font-size: .72rem;
  font-weight: 700;
}

.configurator-reference-shell .cfg-card-meta, .configurator-reference-shell .cfg-panel-note, .configurator-reference-shell .cfg-card-copy, .configurator-reference-shell .cfg-empty-copy, .configurator-reference-shell .cfg-selection-meta-list small {
  color: var(--cfg-muted);
}

.configurator-reference-shell .cfg-panel-note, .configurator-reference-shell .cfg-card-copy, .configurator-reference-shell .cfg-empty-copy, .configurator-reference-shell .cfg-selection-meta-list small {
  margin: 0;
  font-size: .84rem;
  line-height: 1.6;
}

.configurator-reference-shell .cfg-panel-note-inline {
  padding: 0 12px 12px;
}

.configurator-reference-shell .cfg-action-button {
  border: 1px solid var(--cfg-border);
  width: 100%;
  height: 40px;
  color: var(--cfg-text);
  cursor: pointer;
  background: none;
  border-radius: 8px;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  padding: 0 12px;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 500;
  display: inline-flex;
}

.configurator-reference-shell .cfg-action-button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.configurator-reference-shell .cfg-action-button.is-danger {
  background: #c4444229;
  border-color: #c4444266;
}

.configurator-reference-shell .cfg-status-banner {
  border: 1px solid var(--cfg-border);
  background: var(--cfg-card-muted);
  border-radius: 10px;
  flex: 1;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 12px;
  display: flex;
}

.configurator-reference-shell .cfg-status-banner.valid {
  border-color: #22c55e42;
}

.configurator-reference-shell .cfg-status-banner.invalid {
  border-color: #eab3084d;
}

.configurator-reference-shell .cfg-status-icon {
  width: 36px;
  height: 36px;
  color: var(--cfg-accent);
  background: #ffffff0a;
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.configurator-reference-shell .cfg-status-banner.valid .cfg-status-icon {
  color: var(--cfg-success);
}

.configurator-reference-shell .cfg-status-banner.invalid .cfg-status-icon {
  color: var(--cfg-warning);
}

.configurator-reference-shell .cfg-status-copy {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.configurator-reference-shell .cfg-status-copy span, .configurator-reference-shell .cfg-empty-kicker {
  letter-spacing: .16em;
  text-transform: uppercase;
  font-size: .72rem;
  font-weight: 700;
}

.configurator-reference-shell .cfg-status-copy span {
  color: var(--cfg-muted);
}

.configurator-reference-shell .cfg-status-copy strong {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  font-size: .96rem;
  overflow: hidden;
}

.configurator-reference-shell .cfg-bom-card {
  gap: 14px;
}

.configurator-reference-shell .cfg-bom-toggle {
  width: 100%;
  color: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 0;
  display: flex;
}

.configurator-reference-shell .cfg-bom-heading {
  gap: 4px;
  min-width: 0;
  display: grid;
}

.configurator-reference-shell .cfg-bom-title-row {
  align-items: center;
  gap: 8px;
  font-size: 1.02rem;
  font-weight: 600;
  display: flex;
}

.configurator-reference-shell .cfg-bom-meta {
  color: var(--cfg-muted);
  letter-spacing: .16em;
  text-transform: uppercase;
  font-size: .72rem;
  font-weight: 700;
}

.configurator-reference-shell .cfg-bom-list {
  gap: 8px;
  display: grid;
}

.configurator-reference-shell .cfg-bom-row {
  background: var(--cfg-bg);
  border-radius: 8px;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  display: flex;
}

.configurator-reference-shell .cfg-empty-state {
  text-align: center;
  justify-items: center;
  gap: 8px;
  padding: 16px 8px 4px;
  display: grid;
}

.configurator-reference-shell .cfg-empty-icon {
  background: var(--cfg-bg);
  width: 64px;
  height: 64px;
  color: var(--cfg-muted);
  border-radius: 14px;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.configurator-reference-shell .cfg-card-dot {
  background: var(--cfg-accent);
  border-radius: 999px;
  width: 6px;
  height: 6px;
}

.configurator-reference-shell .cfg-card-title {
  margin: 0 0 8px;
  font-size: .96rem;
  font-weight: 600;
}

.configurator-reference-shell .cfg-error-list {
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  font-size: .84rem;
  line-height: 1.55;
  display: grid;
}

.configurator-reference-shell .cfg-selection-title {
  font-size: .98rem;
  font-weight: 600;
}

.configurator-reference-shell .cfg-selection-meta-list {
  gap: 6px;
  display: grid;
}

.configurator-reference-shell .cfg-export-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  display: grid;
}

.configurator-reference-shell .cfg-export-button {
  border: 1px solid var(--cfg-border);
  height: 38px;
  color: var(--cfg-text);
  cursor: pointer;
  background: none;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  font-family: inherit;
  font-size: .84rem;
  font-weight: 500;
  display: inline-flex;
}

.configurator-reference-shell .cfg-export-button:hover, .configurator-reference-shell .cfg-export-button:focus-visible {
  filter: brightness(1.04);
  outline: none;
}

.configurator-reference-shell .cfg-build-area {
  background: var(--cfg-bg);
  min-width: 0;
  min-height: 0;
  position: relative;
}

.configurator-reference-shell .cfg-build-canvas {
  background: radial-gradient(circle at 50% 18%, #ffffff09, #0000 28%), linear-gradient(#1b1f26 0%, #171b21 100%);
  width: 100%;
  height: 100%;
  min-height: 0;
  position: relative;
  overflow: hidden;
}

.configurator-reference-shell .cfg-build-canvas:before, .configurator-reference-shell .cfg-build-canvas:after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
}

.configurator-reference-shell .cfg-build-canvas:before {
  z-index: 0;
  transform-origin: bottom;
  opacity: .55;
  background-color: #0000;
  background-image: linear-gradient(#ffffff05 1px, #0000 1px), linear-gradient(90deg, #ffffff05 1px, #0000 1px);
  background-position: 0 0, 0 0;
  background-repeat: repeat, repeat;
  background-size: 38px 38px;
  background-attachment: scroll, scroll;
  background-origin: padding-box, padding-box;
  background-clip: border-box, border-box;
  transform: perspective(1200px)rotateX(77deg)translateY(22%);
}

.configurator-reference-shell .cfg-build-canvas:after {
  z-index: 0;
  background: radial-gradient(circle at 50% 59%, #c444422e, #0000 1.2%), linear-gradient(#00000014, #0000 22%);
}

.configurator-reference-shell .cfg-build-stage {
  z-index: 1;
  position: absolute;
  inset: 0;
}

.configurator-reference-shell .cfg-build-stage > div, .configurator-reference-shell .cfg-build-stage canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.configurator-reference-shell .cfg-build-toolbar, .configurator-reference-shell .cfg-build-zoom, .configurator-reference-shell .cfg-build-fullscreen, .configurator-reference-shell .cfg-build-selection-indicator, .configurator-reference-shell .cfg-build-coordinates {
  z-index: 3;
  position: absolute;
}

.configurator-reference-shell .cfg-build-toolbar, .configurator-reference-shell .cfg-build-zoom, .configurator-reference-shell .cfg-build-fullscreen {
  pointer-events: auto;
}

.configurator-reference-shell .cfg-build-toolbar {
  border: 1px solid var(--cfg-border);
  background: #23272ff5;
  border-radius: 10px;
  align-items: center;
  gap: 4px;
  padding: 4px;
  display: flex;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
}

.configurator-reference-shell .cfg-build-tool-divider {
  background: #8b909957;
  width: 1px;
  height: 22px;
  margin: 0 4px;
}

.configurator-reference-shell .cfg-build-zoom {
  border: 1px solid var(--cfg-border);
  background: #23272ff5;
  border-radius: 10px;
  justify-items: center;
  gap: 6px;
  padding: 4px;
  display: grid;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
}

.configurator-reference-shell .cfg-build-fullscreen {
  bottom: 16px;
  right: 16px;
}

.configurator-reference-shell .cfg-build-tool {
  width: 32px;
  height: 32px;
  color: var(--cfg-muted);
  appearance: none;
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.configurator-reference-shell .cfg-build-tool.is-active {
  background: var(--cfg-card-muted);
  color: var(--cfg-accent);
}

.configurator-reference-shell .cfg-build-tool:hover, .configurator-reference-shell .cfg-build-tool:focus-visible {
  color: #d5dbe4;
  background: #ffffff0f;
  outline: none;
}

.configurator-reference-shell .cfg-build-tool.is-active:hover, .configurator-reference-shell .cfg-build-tool.is-active:focus-visible {
  background: var(--cfg-card-muted);
  color: var(--cfg-accent);
}

.configurator-reference-shell .cfg-build-zoom-bar {
  background: var(--cfg-card-muted);
  cursor: ns-resize;
  border-radius: 999px;
  width: 10px;
  height: 64px;
  display: block;
  position: relative;
  overflow: hidden;
}

.configurator-reference-shell .cfg-build-zoom-fill {
  border-radius: inherit;
  background: var(--cfg-accent);
  width: 100%;
  height: 50%;
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
}

.configurator-reference-shell .cfg-build-selection-indicator {
  color: var(--cfg-accent);
  background: #23272ff5;
  border: 1px solid #c4444273;
  border-radius: 10px;
  padding: 10px 16px;
  font-size: .9rem;
  font-weight: 500;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
}

.configurator-reference-shell .cfg-build-coordinates {
  border: 1px solid var(--cfg-border);
  color: var(--cfg-muted);
  background: #23272ff5;
  border-radius: 10px;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  font-size: .76rem;
  display: inline-flex;
  bottom: 16px;
  left: 16px;
}

.configurator-reference-shell .cfg-rail {
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 18px;
  padding: 16px 0;
  display: flex;
}

.configurator-reference-shell .cfg-rail-toggle {
  border: 1px solid var(--cfg-border);
  background: var(--cfg-card-muted);
  width: 32px;
  height: 32px;
  color: var(--cfg-muted);
  cursor: pointer;
  border-radius: 8px;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.configurator-reference-shell .cfg-rail-icons {
  gap: 10px;
  display: grid;
}

.configurator-reference-shell .cfg-rail-icon {
  background: var(--cfg-card-muted);
  width: 40px;
  height: 40px;
  color: var(--cfg-muted);
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.configurator-reference-shell .cfg-rail-icon-status:before {
  content: "";
  background: var(--cfg-success);
  border-radius: 999px;
  width: 10px;
  height: 10px;
}

.configurator-reference-shell .catalog-preview {
  border: 1px solid var(--cfg-border);
  background: var(--cfg-bg);
  border-radius: 10px;
  height: 170px;
  overflow: hidden;
}

.configurator-reference-shell .catalog-preview canvas {
  display: block;
}

.configurator-reference-shell .cfg-build-canvas.is-grid-hidden:before, .configurator-reference-shell .cfg-build-canvas.is-grid-hidden:after {
  opacity: 0;
}

@media (max-width: 1280px) {
  .configurator-reference-shell .cfg-workspace {
    grid-template-columns: 290px minmax(0, 1fr) 340px;
  }

  .configurator-reference-shell .cfg-workspace.is-left-collapsed {
    grid-template-columns: 56px minmax(0, 1fr) 340px;
  }

  .configurator-reference-shell .cfg-workspace.is-right-collapsed {
    grid-template-columns: 290px minmax(0, 1fr) 56px;
  }
}

@media (max-width: 980px) {
  .configurator-reference-shell {
    grid-template-rows: auto auto;
    height: auto;
    min-height: 100vh;
    overflow: visible;
  }

  .configurator-reference-shell .cfg-header {
    flex-wrap: wrap;
    height: auto;
    padding: 12px 16px;
  }

  .configurator-reference-shell .cfg-header-brand-lockup {
    flex-wrap: wrap;
    gap: 10px;
  }

  .configurator-reference-shell .cfg-workspace, .configurator-reference-shell .cfg-workspace.is-left-collapsed, .configurator-reference-shell .cfg-workspace.is-right-collapsed, .configurator-reference-shell .cfg-workspace.is-left-collapsed.is-right-collapsed {
    grid-template-rows: auto minmax(440px, 62vh) auto;
    grid-template-columns: 1fr;
    overflow: visible;
  }

  .configurator-reference-shell .cfg-rail {
    display: none;
  }

  .configurator-reference-shell .cfg-build-area {
    min-height: 440px;
  }

  .configurator-reference-shell .cfg-export-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, :before, :after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }

  body:after {
    display: none;
  }
}

/*# sourceMappingURL=%5Broot-of-the-server%5D__6b029be6._.css.map*/