.rsc-configurator { position: relative; margin-top: 18px; padding: 16px; border: 1px solid var(--rsh-border); border-radius: 14px; background: #fff; box-shadow: none; }
.rsc-configurator__heading { display: flex; margin-bottom: 13px; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rsc-configurator__heading h2 { margin: 2px 0 0; font-family: inherit; font-size: 1.18rem; }
.rsc-kicker { color: var(--rsh-text-muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.rsc-step-header { display:grid; margin:14px 0 8px; scroll-margin-top:calc(var(--rs-sticky-offset,126px) + 12px); gap:2px; }
.rsc-step-counter { margin:0; color:var(--rsh-text-muted); font-size:.72rem; font-weight:700; }
.rsc-step-name { width:max-content; max-width:100%; color:var(--rsh-green-dark); font-size:1.08rem; line-height:1.35; }
.rsc-step-name:focus-visible { border-radius:4px; outline:2px solid var(--rsh-green); outline-offset:3px; }
.rsc-progress { height:3px; margin:7px 0 0; overflow:hidden; border-radius:99px; background:var(--rsh-surface-muted); }
.rsc-progress span { display: block; width: 25%; height: 100%; border-radius: inherit; background: var(--rsh-green); transition: width 240ms ease; }
.rsc-step-selection { display:flex; margin:0 0 10px; padding:8px 10px; align-items:center; justify-content:space-between; border:1px solid #b8d6f4; border-radius:9px; background:#f3f8ff; color:var(--rsh-green-dark); gap:10px; font-size:.78rem; }
.rsc-step-selection button { min-height:32px; border:0; background:transparent; color:var(--rsh-green); padding:3px 5px; font:inherit; font-weight:800; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.rsc-product-note { display:flex; margin:0 0 12px; padding:10px 12px; align-items:center; border:1px solid var(--rsh-border); border-radius:9px; background:var(--rsh-surface-soft); color:var(--rsh-text-muted); font-size:.76rem; gap:8px; }
.rsc-product-note svg { width:17px; min-width:17px; height:17px; fill:none; stroke:var(--rsh-green); stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.rsc-prerequisite { display:grid; margin-bottom:14px; padding:13px; border:1px solid var(--rsh-border); border-radius:11px; background:var(--rsh-surface-soft); gap:11px; }
.rsc-prerequisite__heading { display:grid; gap:2px; }
.rsc-prerequisite__heading h3,.rsc-prerequisite__heading p { margin:0; }
.rsc-prerequisite__heading h3 { font-size:1rem; }
.rsc-prerequisite__heading p { color:var(--rsh-text-muted); font-size:.75rem; }
.rsc-accordion { display:flex; margin:0; padding:0 0 8px; overflow:visible; border-bottom:1px solid var(--rsh-border); flex-wrap:wrap; gap:6px 12px; list-style:none; }
.rsc-accordion > li { flex:0 1 auto; }
.rsc-accordion > li > button { display:inline-flex; min-height:26px; padding:2px 0; align-items:center; border:0; border-bottom:1px solid transparent; background:transparent; color:var(--rsh-text-muted); font-size:.72rem; font-weight:650; white-space:nowrap; cursor:pointer; }
.rsc-accordion > li.is-active > button { border-bottom-color:var(--rsh-green); color:var(--rsh-green-dark); font-weight:800; }
.rsc-accordion > li.is-complete > button { color:var(--rsh-green); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.rsc-accordion > li.is-complete > button::after { margin-left:4px; content:"✓"; text-decoration:none; }
.rsc-accordion > li > button:disabled { color:#8a94a6; cursor:not-allowed; opacity:.7; }
.rsc-panels,.rs-builder__steps { min-width:0; }
.rsc-panel,.rs-builder__step { display:none; min-height:0; padding:13px 0 0; }
.rsc-panel.is-active:not([hidden]),.rs-builder__step.is-active:not([hidden]) { display:block; }
.rsc-panel[hidden],.rs-builder__step[hidden] { display:none !important; }
.rsc-panel h3 { margin-bottom:12px; font-family:Inter,ui-sans-serif,system-ui,sans-serif; font-size:1.08rem; font-weight:800; }
.rsc-panel__intro { margin: -6px 0 13px; color: var(--rsh-text-muted); font-size: .78rem; }
.rsc-dimensions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.rsc-configurator label { display: grid; margin: 0; color: var(--rsh-text); font-size: .82rem; font-weight: 700; gap: 7px; }
.rsc-configurator input:not([type="radio"]), .rsc-configurator select { width: 100%; min-height: 44px; border: 1px solid #d9e1ee; border-radius: 9px; background: #fff; padding: 9px 11px; box-shadow: none; }
.rsc-configurator input:focus, .rsc-configurator select:focus { border-color: var(--rsh-green); outline: 2px solid rgba(0,102,215,.18); outline-offset: 1px; }
.rsc-number { display: grid; overflow: hidden; border: 1px solid #d9e1ee; border-radius: 9px; grid-template-columns: 40px minmax(0,1fr) 40px; }
.rsc-number input { min-width: 0; border: 0 !important; border-inline: 1px solid #d9e1ee !important; border-radius: 0 !important; text-align: center; -moz-appearance: textfield; }
.rsc-number input::-webkit-inner-spin-button { appearance: none; }
.rsc-number button { border: 0; background: var(--rsh-surface-soft); color: var(--rsh-green-dark); font-size: 1.15rem; cursor: pointer; }
.rsc-number button:hover { background: var(--rsh-green-light); }
.rsc-field-error, .rsc-error { color: var(--rsh-error); font-size: .76rem; }
.rsc-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.rsc-option { position: relative; display: grid !important; min-height: 72px; margin: 0 !important; padding: 11px; align-items: center; border: 1px solid var(--rsh-border); border-radius: 10px; background: #fff; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; cursor: pointer; }
.rsc-option:hover { border-color: #8eb9ed; }
.rsc-option:has(input:checked) { border-color: var(--rsh-green); box-shadow: inset 0 0 0 1px var(--rsh-green); background: var(--rsh-green-light); }
.rsc-option input[type="radio"], .rsc-option input[type="checkbox"] { position: absolute; opacity: 0; }
.rsc-swatch { display: block; width: 36px; height: 36px; border: 1px solid #b8c5d9; border-radius: 8px; background: var(--swatch,#eaf3ff); grid-row: 1 / 3; }
.rsc-option > span:not(.rsc-swatch) { display: grid; min-width: 0; gap: 3px; }
.rsc-option strong { align-self: end; font-size: .83rem; }
.rsc-option small, .rsc-option > span:not(.rsc-swatch) { align-self: start; color: var(--rsh-text-muted); font-size: .72rem; }
.rsc-actions { display: flex; margin-top: 16px; justify-content: space-between; gap: 12px; }
.rsc-actions button, .rsc-prev, .rsc-next { min-height: 44px; border: 1px solid var(--rsh-green); border-radius: 10px; background: transparent; color: var(--rsh-green-dark); padding: 9px 20px; font-weight: 750; cursor: pointer; }
.rsc-actions .rsc-next { margin-left: auto; background: var(--rsh-green); color: #fff; }
.rsc-actions button:disabled { border-color: #d9e1ee; background: #f0f4fa; color: #7a879e; cursor: not-allowed; }
.rsc-summary { margin-top: 14px; padding: 14px; border: 1px solid var(--rsh-border); border-radius: 11px; background: var(--rsh-surface-soft); }
.rsc-summary__label { display: block; margin-bottom: 4px; color: var(--rsh-text-muted); font-size: .69rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.rsc-price { display: flex; min-height:30px; margin: 0 0 8px; align-items:center; color: var(--rsh-green-dark); font-size: 1.22rem; font-weight: 850; gap:9px; }
.rsc-summary__shipping { display:flex; margin:-4px 0 10px; align-items:baseline; flex-wrap:wrap; color:var(--rsh-text-muted); font-size:.76rem; line-height:1.4; gap:3px 8px; }
.rsc-summary__shipping > span { display:inline-flex; align-items:baseline; flex-wrap:wrap; gap:4px; }
.rsc-summary__shipping strong { color:var(--rsh-green-dark); font-size:.84rem; font-weight:850; white-space:nowrap; }
.rsc-summary__shipping-tax { color:var(--rsh-text-muted); font-size:.7rem; font-style:normal; }
.rsc-summary__shipping small { color:var(--rsh-text-muted); font-size:.7rem; }
.rsc-price-loader { display:inline-block; width:17px; height:17px; border:2px solid #b8d6f4; border-top-color:var(--rsh-green); border-radius:50%; animation:rsc-price-spin .7s linear infinite; }
.rsc-price-unavailable { margin:8px 0 0; color:#744600; font-size:.8rem; font-weight:750; }
@keyframes rsc-price-spin { to { rotate:360deg; } }
.rsc-summary-text { color: var(--rsh-text-muted); font-size: .82rem; }
.rsc-price-details { margin: 14px 0; border-block: 1px solid var(--rsh-border); padding-block: 12px; }
.rsc-price-details summary { color: var(--rsh-green-dark); font-size: .78rem; font-weight: 800; cursor: pointer; }
.rsc-breakdown { display: grid; margin: 12px 0 0; grid-template-columns: 1fr auto; gap: 7px 14px; font-size: .76rem; }
.rsc-breakdown dt, .rsc-breakdown dd { margin: 0; }
.rsc-breakdown dd { font-weight: 800; text-align: right; }
.rsc-add-to-cart, .rsc-quote-link { width: 100%; min-height: 50px !important; }
.rsc-quote-link { margin-top: 10px; }
.rsc-warning { display: grid; margin-top: 14px; border: 1px solid #efcc91; border-radius: 10px; background: #fff8ec; color: #744600; padding: 12px; gap: 3px; }
.rsc-warning span { font-size: .78rem; }
.rsc-express-payments { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--rsh-border); }
@media (max-width: 520px) { .rsc-configurator { margin-inline: -6px; padding: 16px; } .rsc-configurator__heading { flex-direction: column; } .rsc-dimensions, .rsc-options { grid-template-columns: 1fr; } .rsc-actions button { flex: 1; } }
@media (prefers-reduced-motion:reduce) { .rsc-progress span { transition:none; } }
