.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.v31-carousel{position:relative;background:#0c1925;touch-action:pan-y}.v31-slide{position:relative;min-height:600px;aspect-ratio:2.65;isolation:isolate}.v31-slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.v31-slide:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#07121dcc,transparent 75%);z-index:-1}.v31-slide.light:after{background:linear-gradient(90deg,#f3f1e9ed,transparent 76%)}.slide-copy{padding:100px max(40px,calc((100% - 1360px)/2));max-width:950px;color:#fff}.slide-copy>span{font-size:15px;letter-spacing:.15em}.v31-slide h1,.v31-slide h2{font-size:clamp(36px,3.2vw,58px);line-height:1.23;max-width:660px;margin:20px 0}.v31-slide p{font-size:18px;color:#e0e7ec;max-width:500px}.v31-slide small{font-size:13px;color:#c0cdd6}.v31-slide .v3-button{background:white;border-color:white;color:#123b58!important}.v31-slide .v3-outline{background:transparent;color:white!important;border-color:#c0d3de}.v31-slide.light .slide-copy,.v31-slide.light p{color:#162e40}.v31-slide.light small{color:#4b6170}.v31-slide.light .v3-button{background:#15577f;color:white!important;border-color:#15577f}.v31-slide.light .v3-outline{background:transparent;color:#15577f!important}.carousel-controls{display:flex;align-items:center;gap:24px;justify-content:space-between;padding:15px max(40px,calc((100% - 1360px)/2));background:#112c40;color:white}.carousel-controls button{background:transparent;color:white;border:1px solid #668090;min-height:44px;padding:9px 16px}.carousel-controls>div:first-child{display:flex;gap:8px}.carousel-dots{display:flex;gap:12px}.carousel-dots button{border:0;border-bottom:2px solid transparent;font-size:14px}.carousel-dots button[aria-current=true]{border-bottom-color:white}.carousel-dots span{opacity:.6;margin-right:12px}.v31-video{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:center;margin:40px auto 80px}.video-poster{position:relative;background:#10293c;min-height:300px;isolation:isolate}.video-poster>img{width:100%;height:100%;min-height:340px;object-fit:cover;filter:brightness(.4)}.video-poster>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;color:white}.video-symbol{font-size:52px;line-height:1;border:1px solid #c6d6e2;border-radius:50%;width:85px;height:85px;display:grid;place-items:center;margin-bottom:22px}.video-poster strong{font-size:24px}.video-poster p{color:#d9e4ec}.v31-video button{padding:10px 20px;background:#e5eaed;color:#667683;border:1px solid #b9c8d2;cursor:not-allowed}.v31-kicker{font-size:12px;letter-spacing:.15em;color:#53758c}.v3-card>div{padding:22px}.v3-card img,.v3-category img{object-fit:cover}.v3-card h3{font-size:20px}.v3-themes{margin-top:20px}.v3-theme img{min-height:280px}.v3-solution-grid img{aspect-ratio:1.45;object-fit:cover}
.unified-config-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:20px 0 28px}.unified-config-intro h3{font-size:30px;margin:8px 0}.unified-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:32px;align-items:start}.unified-config-form{min-width:0}.platform-chooser{border:1px solid #c9d8e2;padding:24px;margin:0 0 18px;background:#f7fafc}.platform-chooser legend{font-size:18px;font-weight:600;padding:0 8px}.platform-chooser>div{display:grid;grid-template-columns:1fr 1fr;gap:16px}.platform-choice{text-align:left;padding:20px;border:1px solid #beced9;background:white;border-radius:4px;color:#193e58}.platform-choice[aria-pressed=true]{border:2px solid #12699d;background:#eff8fc;padding:19px}.platform-choice>span,.platform-choice>strong,.platform-choice>small{display:block}.platform-choice>span{font-size:18px;font-weight:600}.platform-choice>strong{font-size:27px;margin:8px 0}.platform-choice>small{font-size:13px}.platform-chooser p{font-size:14px;margin-bottom:0}.unified-group{margin:0 0 16px;border:1px solid #d0dde6;border-radius:4px;background:white;min-width:0}.unified-group>summary{padding:20px 24px;display:flex;align-items:center;gap:16px;list-style:none;font-size:18px;background:#f2f7fa;min-height:70px;cursor:pointer;color:#183d58}.unified-group>summary:before{content:'＋';font-weight:400;flex:none}.unified-group[open]>summary:before{content:'−'}.unified-group>summary>span{font-weight:600}.unified-group>summary .group-selection{margin-left:auto;font-weight:400;font-size:13px;color:#607989;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.parameter-grid{display:grid;gap:14px;padding:20px}.parameter-card{border:1px solid #cfdce5;border-radius:4px;background:#fff;padding:20px;min-width:0;overflow-wrap:anywhere}.parameter-card.is-selected{border:2px solid #176da1;background:#f5fafd;padding:19px}.parameter-heading{display:flex;justify-content:space-between;gap:24px;align-items:start}.parameter-heading>div{display:flex;align-items:start;gap:12px}.selection-mark{display:grid;place-items:center;flex-shrink:0;border-radius:50%;width:26px;height:26px;border:1px solid #a1b8c8;color:#28769f;font-size:18px}.is-selected .selection-mark{color:white;background:#176da1;border-color:#176da1}.parameter-card h4{font-size:16px;line-height:1.55;margin:0;font-weight:600;color:#1c3a50}.parameter-price{font-size:20px;line-height:1.5;white-space:nowrap;color:#125c87;text-align:right}.parameter-price small{display:block;font-size:12px;color:#5c7485;white-space:normal}.parameter-specs{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.parameter-specs span{background:#eef3f6;border:1px solid #e2eaef;padding:4px 9px;border-radius:3px;font-size:13px;color:#496576}.parameter-more summary{font-size:13px;min-height:32px;color:#245e80}.parameter-caution{font-size:13px!important;margin:12px 0}.parameter-actions{display:flex;align-items:center;gap:12px;border-top:1px solid #e3ebf0;padding-top:15px;margin-top:12px}.parameter-source{display:none!important}.parameter-actions>[data-pick]{min-height:44px;padding:9px 16px;border:1px solid #8aa9bf;border-radius:3px;background:white;color:#1b5478;font-weight:600}.parameter-actions>[data-pick][aria-pressed=true]{background:#176da1;color:white;border-color:#176da1}.quantity-stepper{display:flex;align-items:stretch;border:1px solid #b6c9d6;border-radius:3px;overflow:hidden;margin-left:auto}.quantity-stepper button{width:38px;min-height:44px;border:0;background:#edf3f7;color:#193c55;font-size:19px}.quantity-stepper label{display:block;min-width:0}.quantity-stepper input{width:52px;height:44px;border:0;border-left:1px solid #ccd9e2;border-right:1px solid #ccd9e2;text-align:center;padding:5px;appearance:textfield;-moz-appearance:textfield}.quantity-stepper input::-webkit-inner-spin-button{appearance:none}.quantity-stepper button:disabled,.quantity-stepper input:disabled{opacity:.45;background:#f1f4f6}.parameter-actions>small{font-size:12px;color:#60788a}.unified-summary{position:sticky;top:20px;padding:26px;border:1px solid #bccfdd;border-top:4px solid #176da1;background:#fff;box-shadow:0 8px 25px #163c5310;min-width:0}.summary-heading{border-bottom:1px solid #dce5eb;margin-bottom:20px}.summary-heading span{font-size:11px;letter-spacing:.15em;color:#5c8097}.summary-heading h3{font-size:26px;margin:7px 0 18px}.unified-summary dl{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:14px}.unified-summary dd{margin:0}.price-caption{font-size:14px;display:block;color:#536d7f;margin-top:18px}.config-unit-price{display:block;font-size:34px;font-weight:600;color:#135e8a;line-height:1.6}.server-quantity{display:flex;align-items:center;gap:12px;font-size:14px;border-top:1px solid #dce5eb;padding-top:18px;margin:16px 0}.server-quantity input{width:80px;min-height:44px;padding:8px;border:1px solid #9cb5c6}.unified-summary #r760-order{background:#f0f6fa;margin:18px -10px;padding:16px 10px}.unified-summary #r760-order span{font-size:14px;display:block}.unified-summary #r760-order strong{display:block;font-size:29px;color:#123f5a}.summary-disclaimer{font-size:13px;line-height:1.7}.selected-details summary{min-height:44px;padding:10px 0;border-bottom:1px solid #d9e4eb;font-weight:600}.selected-details summary span{float:right;font-size:13px}.selected-component{display:grid;grid-template-columns:1fr auto;gap:7px;padding:14px 0;border-bottom:1px solid #e0e8ee;font-size:13px}.selected-component strong{font-weight:500}.selected-component small{display:block;color:#5c778a}.selected-component button{grid-column:2;font-size:13px;min-height:32px;border:0;background:white;color:#245b7e}.unified-summary>.v3-button{width:100%;margin-top:20px}.export-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.export-buttons button,.save-draft{min-height:44px;border:1px solid #adc4d4;background:white;color:#174969;border-radius:3px}.save-draft{width:100%;margin-top:10px}.unified-summary [role=status]{font-size:14px}.demand-inner{padding:22px}.demand-inner textarea{width:100%;font:inherit;padding:12px;border:1px solid #abc1d0;margin-top:10px}.unified-config-form .parameter-card{margin:14px}.parameter-grid .parameter-card{margin:0}.unified-config-form .config-group summary small:not(.group-selection){display:none}
@media(min-width:1700px){.v31-slide{min-height:660px}.slide-copy{padding-top:130px}}
@media(max-width:1100px){.unified-layout{grid-template-columns:minmax(0,1fr) 310px;gap:20px}.parameter-heading{flex-direction:column;gap:8px}.parameter-price{text-align:left;margin-left:38px}.parameter-actions{flex-wrap:wrap}.parameter-actions>small{display:none}.v31-slide{min-height:540px;aspect-ratio:auto}.slide-copy{padding:80px 40px;max-width:700px}.carousel-dots button{font-size:12px}.v31-video{gap:30px}}
@media(max-width:800px){.unified-layout{grid-template-columns:1fr}.unified-summary{position:static}.unified-config-intro{flex-direction:column;align-items:start}.v31-slide{min-height:580px}.v31-slide>img{object-position:65% center}.slide-copy{padding:75px 24px 50px;max-width:580px}.v31-slide h1,.v31-slide h2{font-size:38px}.v31-slide:after{background:linear-gradient(90deg,#07121de8,#07121d55)}.v31-slide.light:after{background:linear-gradient(90deg,#f3f1e9f2,#f3f1e966)}.carousel-controls{padding:14px 24px;gap:12px;flex-wrap:wrap}.carousel-dots{order:3;width:100%;justify-content:space-between}.carousel-dots button{padding:8px;font-size:12px}.v31-video{grid-template-columns:1fr;gap:28px}.parameter-heading{flex-direction:row}.parameter-price{margin:0}.unified-config-form .parameter-card{margin:12px}.parameter-grid .parameter-card{margin:0}}
@media(max-width:480px){.v31-slide{min-height:580px}.slide-copy{padding:50px 20px}.v31-slide h1,.v31-slide h2{font-size:33px}.v31-slide p{font-size:16px;line-height:1.75}.slide-copy .v3-actions{margin-top:26px}.slide-copy .v3-actions a{width:auto;font-size:14px}.carousel-controls{padding:12px 20px}.carousel-dots{gap:8px}.carousel-dots button{font-size:0;min-width:70px}.carousel-dots span{font-size:15px;margin:0}.v31-video{margin-top:20px;margin-bottom:45px}.video-poster>img{min-height:250px}.video-poster strong{font-size:21px}.unified-config-intro h3{font-size:25px}.platform-chooser{padding:16px}.platform-chooser>div{grid-template-columns:1fr;gap:12px}.platform-choice>strong{font-size:25px}.unified-group>summary{padding:16px;font-size:16px;gap:10px;flex-wrap:wrap}.unified-group>summary .group-selection{max-width:100%;width:100%;padding-left:26px;margin-left:0;font-size:13px}.parameter-grid{padding:12px}.parameter-card,.parameter-card.is-selected{padding:14px}.parameter-heading{flex-direction:column;gap:12px}.parameter-card h4{font-size:15px}.parameter-price{margin-left:38px;font-size:21px}.parameter-price small{font-size:13px}.parameter-specs span{font-size:13px;padding:5px 8px}.parameter-actions{gap:8px;justify-content:space-between}.parameter-actions>[data-pick]{padding:8px 10px;font-size:13px}.quantity-stepper{margin-left:0}.quantity-stepper button{width:34px}.quantity-stepper input{width:46px}.unified-summary{padding:22px}.selected-component button{min-height:44px}.unified-config-form .config-layout{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.v31-carousel *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Five-theme navigation; keep all targets reachable at 390 px. */
.carousel-dots{flex:1;min-width:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.carousel-dots button{min-width:0;padding:10px 8px;line-height:1.5}.carousel-dots span{display:block;margin:0 0 3px}.carousel-controls{gap:16px}
.product-gallery{width:100%;min-width:0;text-align:left;overflow-wrap:anywhere}.gallery-stage{position:relative;background:#f0f4f6;aspect-ratio:4/3;touch-action:pan-y}.gallery-main{display:block;width:100%;height:100%;border:0;background:transparent;padding:0;position:relative;cursor:zoom-in}.gallery-main img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;aspect-ratio:4/3}.gallery-main>span{position:absolute;right:12px;bottom:12px;background:#102e43e8;color:#fff;padding:8px 12px;border-radius:3px;font-size:13px}.gallery-thumbnails{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.gallery-thumbnails button{padding:4px;border:2px solid transparent;background:#edf2f5;min-width:0;color:#284b61;min-height:44px}.gallery-thumbnails button[aria-pressed=true]{border-color:#166b9d;background:#e7f3fa}.gallery-thumbnails img{display:block!important;width:100%!important;height:auto!important;aspect-ratio:4/3;object-fit:cover!important}.gallery-thumbnails span{display:block;font-size:13px;line-height:1.5;padding:6px 0}.gallery-caption,.gallery-disclosure{font-size:14px!important;line-height:1.7!important;margin:8px 0!important;color:#4b6476!important}.gallery-disclosure{border-top:1px solid #d7e1e7;padding-top:10px}.gallery-error{display:none;position:absolute;inset:0;background:#edf2f5;align-items:center;justify-content:center;flex-direction:column;padding:24px;text-align:center}.image-failed .gallery-error{display:flex}.gallery-error button,.gallery-dialog button{min-height:44px;padding:10px 16px;border:1px solid #91adbf;background:white;color:#1b4b6a}.gallery-dialog{padding:20px;border:0;max-width:min(1100px,calc(100vw - 32px));width:100%;max-height:calc(100dvh - 32px);background:#f7fafc;color:#1b3e55}.gallery-dialog::backdrop{background:#07151dd9}.gallery-dialog>div{position:relative;display:flex;flex-direction:column;gap:12px}.gallery-dialog [data-gallery-close]{align-self:flex-end}.gallery-dialog img{width:100%!important;height:auto!important;max-height:65dvh;object-fit:contain!important;aspect-ratio:4/3}.gallery-dialog nav{display:flex;gap:12px;justify-content:center}.gallery-dialog p{margin:0;text-align:center;font-size:15px}.detail-device:has(.product-gallery){display:block;padding:0;height:auto;min-height:0;background:transparent}.ex-device:has(.product-gallery){padding:0;background:transparent}.detail-visual:has(.product-gallery){min-width:0}.product-gallery button:focus-visible{outline:3px solid #176da1;outline-offset:3px}
@media(max-width:1100px){.carousel-controls{flex-wrap:wrap}.carousel-dots{order:3;flex-basis:100%}.carousel-dots span{display:inline;margin-right:8px}}
@media(max-width:480px){.carousel-dots button{min-width:0;font-size:0;padding:10px 4px}.carousel-dots span{font-size:15px;margin:0}.gallery-thumbnails span{font-size:12px}.gallery-dialog{padding:12px}.gallery-main>span{right:8px;bottom:8px;font-size:12px}.gallery-caption,.gallery-disclosure{font-size:14px!important}.product-gallery .gallery-thumbnails{gap:8px}}

/* ==== R760-only configurator layout (phase 2 alignment) ==================
   Scope: #v3-config exists only on /products/servers/dell/poweredge-r760/,
   verified unique in content/pages.json.
   Why needed: the R760 page is the only document that loads exemplar.css instead
   of v2.css (src/components/ServerDocument.tsx), so the mature configurator
   vocabulary shared by R760xs / R770 / R470 is not available to it. Every value
   below is copied from the stylesheets those mature pages do load:
   v2.css (.config-*, .cost-row, .field, .grand-total, .full), base.css (.btn)
   and pages.css (.eyebrow, .footnote, .text-button). Colours are literal copies
   because base.css is not loaded on the R760 page and --blue resolves
   differently there (v3/site.css). Nothing outside #v3-config is affected and no
   existing rule is modified. ============================================== */
#v3-config .config-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:start}#v3-config .config-summary{position:sticky;top:110px;border:1px solid #d4e2ee;background:#f5f9fd;padding:25px;border-radius:7px;align-self:start}
#v3-config .config-summary h3{font-size:22px;margin:13px 0 22px}
#v3-config .config-summary .btn.outline{background:#fff}
#v3-config .cost-row{display:flex;justify-content:space-between;gap:10px;font-size:12px;border-bottom:1px solid #dfe8f1;padding:11px 0;color:#637c91}
#v3-config .cost-row strong{color:#1d4262}
#v3-config .field{display:block;font-size:13px;color:#57728a;margin-top:20px}
#v3-config .field input,#v3-config .field textarea{display:block;width:100%;padding:12px;border:1px solid #cddde9;border-radius:4px;margin-top:8px;font-family:inherit;background:#fff}
#v3-config .field textarea{resize:vertical}
#v3-config .grand-total{display:flex;flex-direction:column;margin:22px 0;color:#516d86;font-size:12px;gap:4px}
#v3-config .grand-total strong{font-size:30px;line-height:1.5;color:#0877c9}
#v3-config .eyebrow{font-size:11px;font-weight:700;letter-spacing:.13em;color:#2676b1}
#v3-config .footnote{font-size:12px;color:#788ba0;line-height:1.8}
#v3-config .more{font-size:13px;color:#0866c6;font-weight:700;white-space:nowrap}
#v3-config .btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#0866c6;color:#fff;padding:12px 20px;border-radius:4px;font-size:14px;font-weight:700;border:0;cursor:pointer;transition:.2s}
#v3-config .btn:hover{background:#0755a3;transform:translateY(-1px)}
#v3-config .btn.outline{color:#0866c6;background:#fff;border:1px solid #9fc4e7}
#v3-config .full{display:block;width:100%;margin-top:10px;text-align:center;justify-content:center}
#v3-config .text-button{border:0;background:none;padding:7px 0;color:#0873c6;font-size:13px;cursor:pointer;margin-bottom:18px}
#v3-config .r760-actions{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0 4px}
#v3-config .r760-actions .text-button{margin:0}
@media(max-width:1200px){
#v3-config .config-layout{grid-template-columns:minmax(0,1fr) 285px;gap:24px}
#v3-config .config-summary{padding:20px}
}
@media(max-width:960px){
#v3-config .config-layout{grid-template-columns:minmax(0,1fr);gap:20px}
#v3-config .config-summary{position:static;padding:20px}
#v3-config .config-summary .grand-total{margin:18px 0}
#v3-config .config-summary .cost-row{font-size:14px}}
@media(max-width:600px){#v3-config .config-summary{padding:22px}
}
/* ==== R760-only phase 3: compact cards, real group state, quote wording ====
   Still exclusively scoped to #v3-config (unique to the R760 page).
   Two things this block settles that phase 2 left open:
   1. The global .unified-group>summary carries min-height:70px, which the phase-2
      block never reset, so every group header was at least 70px tall.
   2. Any property that a global media query sets for the same element is
      re-declared here with the #v3-config prefix, otherwise the ID selector in the
      base rules would outrank those media queries at every width.
   Nothing outside #v3-config is affected and no existing rule is edited. ===== */
#v3-config .config-group>summary{padding:13px 18px;min-height:0;line-height:1.4}#v3-config .config-group.is-selected>summary{box-shadow:inset 3px 0 0 #176da1}#v3-config .parameter-card.is-selected{padding:10px 13px}#v3-config .config-summary h3{font-size:20px;margin:10px 0 14px}
#v3-config .cost-row{padding:9px 0}
#v3-config .grand-total{margin:14px 0 10px}
#v3-config .grand-total strong{font-size:26px}
#v3-config .grand-total strong.is-placeholder{font-size:16px;line-height:1.6;color:#8a6410}
#v3-config .r760-quote-note{display:block;font-size:11.5px;line-height:1.6;color:#7a6a3a;background:#fdf8ec;border:1px solid #f0e2c0;border-radius:3px;padding:6px 8px;margin-top:8px}
@media(max-width:1100px){}
@media(max-width:960px){#v3-config .parameter-card.is-selected{padding:11px}
#v3-config .config-summary h3{font-size:19px}
#v3-config .grand-total strong{font-size:24px}
}
@media(max-width:800px){}
@media(max-width:600px){#v3-config .parameter-card,#v3-config .parameter-card.is-selected{padding:13px}#v3-config .grand-total strong{font-size:23px}
#v3-config .grand-total strong.is-placeholder{font-size:15px}
}
/* ==== R760-only phase 4: chassis platform inside the normal group list =====
   The two platforms are radio cards in the "R760-机箱与背板" group instead of a
   separate boxed fieldset. They reuse .parameter-card, so only the control needs
   styling: it is [data-platform] and not [data-pick], because the shared
   bindParameterCards() must never treat a chassis as a repeatable accessory.
   Still scoped to #v3-config only; no existing rule is edited. ============= */
#v3-config .parameter-actions>[data-platform]{min-height:32px;padding:5px 12px;border:1px solid #8aa9bf;border-radius:3px;background:white;color:#1b5478;font-weight:600;font-size:13px;cursor:pointer}@media(max-width:600px){}
/* ==== R760-only phase 5: enterprise parameter-form layout =================
   Three columns: category navigation | concise parameter rows | live summary.
   Only chassis / CPU / memory currently use the row markup; the remaining
   categories still render the shared parameterCard markup above, so those rules
   stay in use. Scoped to #v3-config only; no existing rule is edited. ====== */
#v3-config .config-layout{grid-template-columns:186px minmax(0,1fr) 330px;gap:18px}
#v3-config .r760-nav{min-width:0}
#v3-config .r760-nav-title{display:block;font-size:11px;letter-spacing:.12em;color:#5c8097;margin-bottom:8px}
#v3-config .r760-nav-list{display:flex;flex-direction:column;gap:4px;position:sticky;top:16px}
#v3-config .r760-nav-item{text-align:left;min-height:34px;padding:7px 10px;border:1px solid #d4dfe6;background:#fff;color:#1c3a50;font-size:13px;border-radius:3px;cursor:pointer}
#v3-config .r760-nav-item:hover{border-color:#8aa9bf}#v3-config .r760-panel{min-width:0}
#v3-config .r760-group{margin-bottom:14px;border:1px solid #d9e4ed;border-radius:6px;background:#fff;overflow:hidden}
#v3-config .r760-group>h3{display:flex;align-items:center;gap:10px;margin:0;padding:10px 14px;font-size:15px;line-height:1.4;background:#f1f6fb;color:#183a59;border-bottom:1px solid #e2ecf3}
#v3-config .r760-group>h3>span{flex:1;font-weight:600}
#v3-config .r760-group>h3 .r760-state{margin-left:auto;font-size:11.5px;font-weight:400;color:#637c91;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#v3-config .r760-group.is-empty>h3 .r760-state{color:#8a9aa8}
#v3-config .r760-group.is-selected>h3{box-shadow:inset 3px 0 0 #176da1}#v3-config .r760-option{display:grid;grid-template-columns:22px minmax(0,1fr) 188px;gap:10px;align-items:start;padding:9px 12px;border-bottom:1px solid #eaeff4}
#v3-config .r760-option:last-child{border-bottom:0}
#v3-config .r760-option.is-selected{background:#f5fafd;box-shadow:inset 2px 0 0 #176da1}
#v3-config .r760-option-pick input{width:17px;height:17px;margin:1px 0 0;accent-color:#176da1}
#v3-config .r760-option-body{min-width:0}
#v3-config .r760-option-body>strong{display:block;font-size:13.5px;line-height:1.45;color:#1c3a50;font-weight:600}
#v3-config .r760-specs{display:block;font-size:12px;line-height:1.5;color:#5c7485;margin-top:2px}
#v3-config .r760-hint{display:block;font-size:11.5px;line-height:1.5;color:#8a6410;margin-top:2px}
#v3-config .r760-option-side{display:flex;align-items:center;justify-content:flex-end;gap:10px}
#v3-config .r760-option-price{text-align:right;white-space:nowrap}
#v3-config .r760-option-price>strong{display:block;font-size:14px;color:#125c87}
#v3-config .r760-option-price>small{display:block;font-size:11px;color:#5c7485;white-space:normal}
#v3-config .r760-option-qty input{width:58px;height:30px;padding:2px 4px;border:1px solid #b6c9d6;border-radius:3px;font-size:13px}
#v3-config .r760-option-qty input:disabled{opacity:.45;background:#f1f4f6}
#v3-config .r760-fixed{font-size:12px;color:#8a9aa8}
#v3-config .r760-sum-group{margin-bottom:10px}
#v3-config .r760-sum-label{display:block;font-size:11px;letter-spacing:.08em;color:#5c8097;margin-bottom:2px}
#v3-config .r760-compat{font-size:12px;line-height:1.6;color:#5c7485;margin:12px 0 0}
#v3-config .r760-demand{margin-top:14px}
@media(max-width:1200px){
#v3-config .config-layout{grid-template-columns:158px minmax(0,1fr) 300px;gap:14px}
#v3-config .r760-option{grid-template-columns:22px minmax(0,1fr) 168px}
}
@media(max-width:960px){
#v3-config .config-layout{grid-template-columns:minmax(0,1fr);gap:16px}
#v3-config .r760-nav-title{margin-bottom:6px}
#v3-config .r760-nav-list{flex-direction:row;overflow-x:auto;position:static;padding-bottom:4px}
#v3-config .r760-nav-item{flex:0 0 auto;white-space:nowrap;min-height:38px}
}
@media(max-width:600px){
#v3-config .r760-option{grid-template-columns:20px minmax(0,1fr);padding:10px}
#v3-config .r760-option-side{grid-column:2;justify-content:flex-start;margin-top:6px}
#v3-config .r760-option-price{text-align:left}
#v3-config .r760-option-qty input{height:44px;width:64px}
#v3-config .r760-group>h3{flex-wrap:wrap}
#v3-config .r760-group>h3 .r760-state{max-width:100%;white-space:normal}
}
/* ==== R760-only phase 6: every category uses rows ========================
   All nine categories render the concise parameter rows, so the shared
   parameterCard markup is no longer produced by this page (it remains in use for
   R760xs / R770 / R470 through configuration-ui.mjs). Scoped to #v3-config only.
   Phase 12 removed the collapsed "更多操作" disclosure; the .r760-actions row now
   holds only 保存配置 / 读取已保存配置 / 清空重新配置. ================ */
#v3-config .r760-actions{margin:6px 0 2px;gap:4px 16px}
/* ==== R760-only phase 12: customer action area ============================
   The collapsed "更多操作" disclosure was removed from the interface, so its
   five rules were dropped here (they had no other consumer; verified against
   both the live markup and the whole repository). The destructive reset action
   gets its own colour. Scoped to #v3-config only. ======================= */
#v3-config .r760-danger{color:#a5563f}
#v3-config .r760-danger:hover{color:#8a3f2a}
/* ==== R760-only phase 7: finer category tree ==============================
   The left navigation now lists 16 sections derived from real catalog entries
   (BOSS 卡 / HBA 卡 / 启动设备 / 电源 / 散热 / 软件 / 服务 / 导轨 are split out;
   GPU is intentionally empty and renders an explanatory note). Scoped to
   #v3-config only; no existing rule is edited. =========================== */
#v3-config .r760-nav-list{max-height:calc(100vh - 40px);overflow-y:auto;padding-right:2px}
#v3-config .r760-empty{margin:0;padding:12px 14px;font-size:12.5px;line-height:1.6;color:#60788a;background:#fafcfd}
@media(max-width:960px){
#v3-config .r760-nav-list{max-height:none;overflow-y:visible;overflow-x:auto;padding-right:0}
}
/* ==== R760-only phase 8: navigation follows scrolling =====================
   Two fixes:
   1. The sticky host must be the grid item (.r760-nav). The phase-5 rule put
      position:sticky on the inner list, but with .config-layout's
      align-items:start that grid item is only content-height, so the list had
      no room to travel and never actually stuck.
   2. Every navigation entry now carries a compact selected-count badge that is
      filled by groupStatus(), so a category and its chosen configuration are
      visible together while scrolling. The active entry is driven by the scroll
      spy in r760-unified.mjs (aria-current), not only by clicks.
   Scoped to #v3-config only; no existing rule is edited. ================== */
#v3-config .r760-nav{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;min-width:0}
#v3-config .r760-nav-list{position:static;top:auto;max-height:none;overflow:visible;padding-right:0}
#v3-config .r760-nav-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}
#v3-config .r760-nav-item[aria-current=true]{background:#176da1;border-color:#176da1;color:#fff;font-weight:600}

#v3-config .r760-nav-item>span{flex:1;min-width:0}
#v3-config .r760-nav-count{flex:none;min-width:17px;padding:1px 5px;border-radius:9px;background:#dcebf4;color:#1c5a80;font-size:11px;line-height:1.5;text-align:center}
#v3-config .r760-nav-count:empty{display:none}
#v3-config .r760-nav-item[aria-current=true] .r760-nav-count{background:#ffffff2e;color:#fff}
@media(max-width:960px){
#v3-config .r760-nav{position:static;max-height:none;overflow:visible}
#v3-config .r760-nav-item{width:auto}
}
/* ==== R760-only phase 9: CPU radio + navigation polish ====================
   · CPU rows switch to a radio group (one model) with quantity 1–2; the section
     carries a one-line note stating that rule.
   · Navigation: per-category state badge (count / 待核验 / 已选已核验), hover
     title, slightly roomier desktop entries, and a horizontally scrollable
     strip on narrow screens whose active entry is scrolled into view by
     setActive() in r760-unified.mjs.
   Scoped to #v3-config only; no existing rule is edited. =============== */
#v3-config .r760-sec-note{margin:0;padding:8px 14px;font-size:12px;line-height:1.6;color:#5c7485;background:#f7fafc;border-bottom:1px solid #e7eef4}
#v3-config .r760-nav-item{min-height:36px;font-size:13.5px}
#v3-config .r760-nav-count.is-done{background:#d8eede;color:#1f6b3a}
#v3-config .r760-option-pick input[type=radio]{border-radius:50%}
@media(max-width:960px){
#v3-config .r760-nav-item{min-height:40px;font-size:13px}
#v3-config .r760-sec-note{padding:7px 12px}
}
/* ==== R760-only phase 11: cancel affordance for radio rows =================
   A radio group cannot be unchecked by clicking it again, so the selected CPU
   row gets an explicit 取消 button. Checkbox rows need none (clicking the box
   already clears them). Scoped to #v3-config only. ====================== */
#v3-config .r760-clear{flex:none;min-height:30px;padding:4px 10px;border:1px solid #c9b3b3;border-radius:3px;background:#fff;color:#8a4b4b;font-size:12px;cursor:pointer}
#v3-config .r760-clear:hover{border-color:#a97171;background:#fdf6f6}
@media(max-width:600px){
#v3-config .r760-clear{min-height:44px;padding:8px 12px;font-size:13px}
}

#v3-config .r760-portability{margin:16px 0}#v3-config .r760-portability summary{min-height:44px;cursor:pointer;padding:10px 0}

/* ==== 产品技术资料入口（仅指向真实存在的锚点/页面/文件）==== */
.gallery-resources{display:flex;flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;font-size:13.5px;line-height:1.6}
.gallery-resources a{color:#0b5f8f;text-decoration:none;border-bottom:1px solid rgba(11,95,143,.35);padding-bottom:1px}
.gallery-resources a:hover,.gallery-resources a:focus-visible{color:#083f5e;border-bottom-color:#083f5e}
@media (max-width:760px){.gallery-resources{gap:8px 14px;font-size:13px}}

/* ==== 解决方案页视觉（方案卡配图 + 总览图）==== */
.solutions-hero{margin:6px auto 10px;max-width:1240px;padding:0 24px}
.solutions-hero img{display:block;width:100%;height:auto;border-radius:6px;border:1px solid rgba(16,43,64,.12)}
.solutions-hero figcaption{font-size:12.5px;line-height:1.6;color:#6a7c89;padding:8px 2px 0}
.resource-card-media{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:6px;margin:0 0 14px;border:1px solid rgba(16,43,64,.10);background:#eef3f6}
@media (max-width:760px){.solutions-hero{padding:0 16px}.resource-card-media{aspect-ratio:16/9}}

[data-v32-legacy]{display:none!important}.product-video{margin-top:24px;border-top:1px solid #ccd7e0;padding-top:20px}.product-video img,.product-video video{width:100%;max-width:700px;height:auto;aspect-ratio:4/3;object-fit:contain;background:#edf3f7}.product-video p{font-size:14px;color:#43566a}#v3-config{max-width:100%;min-width:0}#v3-config .r760-option-body{overflow-wrap:anywhere}

/* V3.3: presentation-only mobile refinements. Pricing and selection rules unchanged. */
#v3-config .r760-scroll-hint{display:none}
#v3-config .r760-qty-label{display:block;font-size:12px;color:#43566a;margin-bottom:4px}
.product-video:not(:has(video)){padding:20px;background:#f4f7fa;border:1px solid #d4dfe7;border-radius:6px}
.product-video h3{margin-top:0}.product-video [data-video-status]:empty{display:none}
@media(max-width:760px){
 .gallery-resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .gallery-resources a{display:flex;align-items:center;min-height:44px;padding:8px 10px;border:1px solid #cfdae3;border-radius:4px;font-size:14px;overflow-wrap:anywhere}
 .gallery-caption,.gallery-disclosure{font-size:14px;line-height:1.65}
 .gallery-thumbnails{gap:8px}.gallery-thumbnails button{min-height:44px;min-width:0}
 .gallery-thumbnails span{font-size:12px;white-space:normal;line-height:1.5}
 .gallery-dialog{max-width:calc(100vw - 24px)}.gallery-dialog button{min-height:44px}
 #v3-config .config-layout{grid-template-columns:minmax(0,1fr);gap:20px}
 #v3-config .r760-nav{position:static;max-height:none;overflow:visible}
 #v3-config .r760-nav-title{font-size:15px;font-weight:600;letter-spacing:0}
 #v3-config .r760-scroll-hint{display:block;margin:6px 0 10px;font-size:14px;line-height:1.5;color:#435d72}
 #v3-config .r760-nav-list{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;max-width:100%;gap:8px;padding:0 0 12px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#829fb6 #e9eff4;-webkit-overflow-scrolling:touch}
 #v3-config .r760-nav-list::-webkit-scrollbar{height:5px}#v3-config .r760-nav-list::-webkit-scrollbar-thumb{background:#829fb6;border-radius:4px}
 #v3-config .r760-nav-item{flex:0 0 auto;width:auto;min-height:44px;padding:10px 14px;font-size:14px;scroll-snap-align:start}
 #v3-config .r760-nav-list:focus-visible{outline:2px solid #176da1;outline-offset:3px}
 #v3-config .r760-option{grid-template-columns:44px minmax(0,1fr);gap:8px;padding:14px 10px}
 #v3-config .r760-option-pick{display:flex;align-items:flex-start;justify-content:center;min-width:44px;min-height:44px;padding-top:3px;cursor:pointer}
 #v3-config .r760-option-pick input{width:22px;height:22px;flex:none}
 #v3-config .r760-option-body>strong{font-size:15px;line-height:1.6}
 #v3-config .r760-specs{font-size:14px;line-height:1.65;margin-top:6px}
 #v3-config .r760-hint{font-size:13px;line-height:1.65;margin-top:6px}
 #v3-config .r760-option-side{grid-column:2;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:4px;padding-top:12px;border-top:1px solid #dce5ed;min-width:0}
 #v3-config .r760-option-price{text-align:left;white-space:normal;overflow-wrap:anywhere}
 #v3-config .r760-option-price>strong{font-size:18px;line-height:1.4}
 #v3-config .r760-option-price>small{font-size:13px;line-height:1.6}
 #v3-config .r760-option-qty input{width:80px;max-width:100%;height:44px;min-height:44px;font-size:16px;text-align:center;background:#fff}
 #v3-config .r760-option-qty input:disabled{opacity:1;color:#6d7d8a;background:#eef2f5}
 #v3-config .r760-qty-label{font-size:13px}
 #v3-config .r760-option.is-selected{box-shadow:inset 4px 0 0 #176da1;background:#eff7fc}
 #v3-config .r760-group>h3{gap:8px;font-size:17px;line-height:1.5;padding:12px}
 #v3-config .r760-group>h3 .r760-state{flex-basis:100%;font-size:13px;line-height:1.6;white-space:normal;max-width:100%;overflow-wrap:anywhere}
 #v3-config .r760-sec-note,#v3-config .r760-compat,#v3-config .r760-quote-note,#v3-config .v3-config-warning,#v3-config .footnote{font-size:14px;line-height:1.7}
 #v3-config .r760-summary{position:static!important;top:auto;bottom:auto;max-height:none;overflow:visible;padding:18px;min-width:0}
 #v3-config .r760-summary>.btn{min-height:48px;display:flex;align-items:center;justify-content:center;margin:12px 0;white-space:normal}
 #v3-config .r760-actions{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
 #v3-config .r760-actions .text-button{min-height:44px;padding:10px 12px;border:1px solid #bdceda;border-radius:4px;background:white;font-size:14px;line-height:1.5}
 #v3-config .r760-danger{flex-basis:100%;margin-top:4px}
 #v3-config .r760-clear,#v3-config .r760-summary>a{min-height:44px}
 #v3-config .r760-summary>a{display:flex;align-items:center;margin-top:8px}
 #v3-config .r760-summary input,#v3-config textarea{font-size:16px;min-height:44px;max-width:100%}
 #v3-config .cost-row{gap:12px;flex-wrap:wrap}#v3-config .grand-total strong{overflow-wrap:anywhere}
 .product-video p{font-size:15px;line-height:1.7}.product-video{margin-top:20px}
}
