/* Shared configuration components follow the captured KK purchase-page geometry. */
.kk-configuration{font-size:14px;line-height:1.5;color:#333;background:#fff;min-width:0}
.kk-config-section{margin:0 30px;padding:26px 0 30px;border-bottom:1px solid #e9edf2}
.kk-config-section>h2{margin:0 0 26px;padding:0;font-size:16px;line-height:26px;font-weight:600;color:#1c1d1f}
.kk-config-row{display:flex;align-items:flex-start;margin-top:24px;gap:0}
.kk-config-row>label{flex:0 0 118px;width:118px;padding:10px 8px 0 0;font-size:14px;font-weight:400;line-height:22px;color:#333;white-space:nowrap;box-sizing:border-box}
.kk-config-control{flex:1;min-width:0}
.kk-config-control p{margin:0;line-height:24px}
.kk-config-choices{display:flex;gap:10px;flex-wrap:wrap}
.kk-config-choices>button{position:relative;min-height:44px;min-width:108px;padding:10px 24px;border:1px solid #dce2eb;background:#fff;color:#333;border-radius:0;text-align:center;font:inherit;cursor:pointer}
.kk-config-choices>button strong{font-size:14px;line-height:22px;font-weight:400}
.kk-config-choices>button small{display:block;margin-top:4px;font-size:12px;line-height:20px;color:#999}
.kk-config-choices>button:hover:not(:disabled){border-color:#2676ff;color:#2676ff}
.kk-config-choices>button.active{background:#2879ff;border-color:#2879ff;color:#fff}.kk-config-choices>button.active:hover:not(:disabled){color:#fff}
.kk-config-choices>button:disabled{cursor:not-allowed;color:#999;background-color:#f7f8fa}
.kk-config-choices>button.is-sold-out{padding-right:76px;filter:grayscale(1)}
.kk-config-choices>button img{position:absolute;right:5px;top:50%;width:56px;transform:translateY(-50%)}
.kk-config-control .el-select,.kk-config-control>.el-input{width:320px;max-width:100%}
.kk-config-select-line{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap}.kk-config-select-line>.kk-config-action{padding:9px 0;white-space:nowrap}
.kk-config-control .el-input__inner{height:40px;line-height:40px;border-radius:0;font-size:14px}
.kk-config-control .el-input-number{width:160px;line-height:38px;border:1px solid #dce2eb;box-sizing:border-box;border-radius:0;overflow:hidden}
.kk-config-control .el-input-number .el-input__inner{height:38px;line-height:38px;border:0;padding-left:40px;padding-right:40px}
.kk-config-control .el-input-number__decrease,.kk-config-control .el-input-number__increase{top:0;bottom:0;height:38px;width:40px;line-height:38px;border-radius:0;background:#f7f8fa;box-sizing:border-box}.kk-config-control .el-input-number__decrease{left:0;border-right:1px solid #dce2eb}.kk-config-control .el-input-number__increase{right:0;border-left:1px solid #dce2eb}
.kk-config-range{display:flex;align-items:center;gap:18px;max-width:780px}
.kk-config-range>.el-slider{flex:1;min-width:80px;padding:0 10px}
.kk-config-range .el-slider__runway{height:8px;background:#f4f5f7}
.kk-config-range .el-slider__bar{height:8px;background:#2879fa}
.kk-config-range .el-slider__button-wrapper{top:-14px}
.kk-config-range>.el-input-number{flex:0 0 160px}
.kk-config-unit{display:inline-block;margin-left:12px;color:#666;vertical-align:middle}
.kk-configuration .el-input-number{vertical-align:middle}
.kk-config-control .kk-config-help{margin-top:10px;font-size:12px;line-height:22px;color:#999}
.kk-config-action{border:0;background:transparent;padding:10px 0;font:inherit;color:#2676ff;cursor:pointer}
.kk-config-action:disabled{color:#bbb;cursor:not-allowed}
.kk-config-errors{margin:20px 30px;padding:12px 16px;background:#fff3f0;color:#c74a31}
.kk-dock-anchor{position:relative}
.kk-config-dock{position:relative;left:50%;transform:translateX(-50%);background:#fff;width:var(--sixcart-viewport-width,100%);box-shadow:0 -6px 18px rgba(56,87,126,.035);z-index:41}
.kk-config-dock.is-fixed{position:fixed;left:0;bottom:0;transform:none}
.kk-dock-inner{max-width:1400px;width:calc(100% - 80px);margin:0 auto;padding:0 30px;box-sizing:border-box}
.kk-config-summary{padding:24px 0 26px;border-bottom:1px solid #e8ebef}
.kk-config-summary{max-height:calc(100vh - 190px);overflow:auto;overscroll-behavior:contain}
.kk-config-summary h3{border-left:4px solid #2879ff;padding-left:11px;margin:0 0 16px;font-size:14px;font-weight:600;line-height:16px}
.kk-config-summary dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 28px;margin:0;padding-left:15px}
.kk-config-summary dl>div{display:flex;min-width:0;font-size:13px;line-height:18px;white-space:nowrap}
.kk-config-summary dt{flex:none;color:#666}.kk-config-summary dd{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#444}
.kk-dock-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap;min-height:94px;padding:20px 0;box-sizing:border-box}
.kk-config-price{display:flex;align-items:center;flex:1;gap:12px;flex-wrap:wrap;color:#666}
.kk-config-price>strong{font-size:16px;color:#f33e3e;font-weight:700;white-space:nowrap}
.kk-config-price b{font-size:24px;line-height:30px}
.kk-price-discount{font-size:13px;color:#ff8019}
.kk-price-detail{color:#ff8b26;background:#fff2e8;border:1px solid #ffd6b6;font-size:12px;padding:3px 6px;cursor:pointer}
.kk-summary-toggle{background:transparent;border:0;font:inherit;font-size:14px;color:#999;cursor:pointer;padding:8px 10px;white-space:nowrap}
.kk-summary-toggle i{color:#b6bdc7}
.kk-purchase-buttons{display:flex;gap:20px;flex:none}
.kk-purchase-buttons button{width:144px;height:46px;border-radius:0;font-size:14px;font-family:inherit;cursor:pointer}
.kk-purchase-buttons .kk-buy{background:#ff8d1d;border:1px solid #ff8d1d;color:#fff}
.kk-purchase-buttons .kk-add-cart{width:120px;border:1px solid #c8d1e1;background:#fff;color:#333}
.kk-purchase-buttons button:disabled{opacity:.55;cursor:not-allowed}
.kk-quote-error{width:100%;font-size:13px;color:#c74a31;line-height:20px}
.kk-quote-error button{border:0;background:transparent;color:#2676ff;cursor:pointer}
.kk-cart-link{display:inline-block;margin-left:10px;padding:10px 18px;background:#2676ff;color:#fff}
.kk-price-preview{min-width:220px}.kk-price-preview p{display:flex;justify-content:space-between;gap:24px;font-size:13px}
.kk-configuration button:focus-visible{outline:2px solid #2676ff;outline-offset:3px}
@media(max-width:1359px){.kk-config-summary dl{gap:16px}.kk-dock-actions{gap:12px}.kk-purchase-buttons{gap:12px}.kk-config-price{gap:8px}}
@media(max-width:1023px){
 .kk-config-section{margin:0;border:0;padding:0 15px 24px}.kk-config-section>h2{margin:0 -15px 20px;padding:12px 15px;font-size:16px;line-height:24px;background:#f5f7fa;border-left:4px solid #487ff3}
 .kk-config-row{display:block;margin-top:20px}.kk-config-row>label{display:block;width:auto;padding:0;margin-bottom:12px;font-size:14px}
 .kk-config-choices{gap:8px}.kk-config-choices>button{min-width:100px;padding:9px 16px}.kk-config-control .el-select,.kk-config-control>.el-input{width:100%}
 .kk-config-range{flex-wrap:wrap;gap:12px}.kk-config-range>.el-slider{flex-basis:100%}.kk-config-summary{padding:20px 0}.kk-config-summary h3{font-size:14px}
 .kk-dock-inner{width:100%;padding:0 15px}.kk-config-summary dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;padding-left:0}.kk-config-summary dl>div{font-size:12px;line-height:18px}
 .kk-dock-actions{position:relative;gap:10px;padding:12px 0;min-height:104px}.kk-config-price{flex-basis:100%;padding-right:60px;font-size:12px;gap:4px 8px}.kk-config-price>strong{font-size:14px}.kk-config-price b{font-size:18px;line-height:24px}
 .kk-summary-toggle{position:absolute;right:0;top:10px;font-size:12px;padding:3px 0}.kk-purchase-buttons{width:100%;gap:10px}.kk-purchase-buttons button,.kk-purchase-buttons .kk-add-cart{flex:1;width:auto;height:45px}.kk-purchase-buttons .kk-buy{background:#2676ff;border-color:#2676ff}
 .kk-configuration .el-dialog{max-width:calc(100% - 30px)}.kk-config-errors{margin:12px 15px}
}
@media(min-width:1024px) and (max-height:760px){.kk-config-summary{max-height:28vh;box-sizing:border-box;padding:14px 0}}
.kk-spec-filters{display:flex;gap:16px;margin-bottom:18px}.kk-spec-filters .el-select{width:194px}.kk-selected-spec{margin-bottom:16px;font-size:14px;color:#666}.kk-selected-spec strong{color:#2676ff;font-weight:400}.kk-spec-scroll{max-height:416px;overflow:auto;border:1px solid #e7eaf0;background:linear-gradient(to bottom,#e9edf3 0 48px,#fff 48px)}.kk-spec-scroll table{width:100%;border-collapse:collapse;min-width:650px;text-align:center;font-size:14px}.kk-spec-scroll th{position:sticky;top:0;background:#e9edf3;color:#333;font-weight:600;height:48px;padding:12px 18px;z-index:1}.kk-spec-scroll td{height:46px;padding:12px 18px;border-top:1px solid #edf0f4;color:#333}.kk-spec-scroll td:first-child{width:50px}.kk-spec-scroll input{accent-color:#2676ff;width:16px;height:16px;cursor:pointer}.kk-spec-scroll tr.active{background:#fff}.kk-spec-scroll tr.is-sold-out{background:#fafafa;filter:grayscale(1)}.kk-spec-scroll tr.is-sold-out td{color:#aaa}.kk-spec-scroll td img{width:40px;vertical-align:middle;margin-left:8px}.kk-spec-scroll tbody tr:hover:not(.is-sold-out){background:#f3f8ff}@media(max-width:1023px){.kk-spec-filters .el-select{width:calc(50% - 8px)}.kk-spec-scroll{max-height:365px}.kk-spec-scroll table{min-width:700px}}
.kk-image-groups{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.kk-image-groups button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:160px;min-height:86px;padding:12px;overflow:hidden;border:1px solid #dce2eb;background:#fff;font:inherit;cursor:pointer}.kk-image-groups button.active{border-color:#2676ff;color:#2676ff;background:#f4f8ff}.kk-image-groups img{width:26px;height:26px;object-fit:contain}.kk-image-groups button:disabled{cursor:not-allowed;opacity:.6}@media(max-width:1023px){.kk-image-groups button{width:calc(50% - 5px)}}

.kk-config-cards>button{width:auto;min-width:330px;max-width:100%;min-height:70px;text-align:left;padding:14px 16px;background:#fff url('../assets/line_bg.jpg') center/cover}
.kk-config-cards>button strong{font-weight:600;font-size:14px;line-height:16px}.kk-config-cards>button.active{background:#2676f5 url('../assets/line_bg_active.png') center/cover;color:#fff}
.kk-config-cards>button.active small{color:#deebff}.kk-config-cards>button.active:hover{color:#fff}
@media(max-width:1023px){.kk-config-cards>button{width:100%;min-height:60px}.kk-spec-scroll th,.kk-spec-scroll td{padding-left:14px;padding-right:14px}.kk-spec-scroll th:first-child,.kk-spec-scroll td:first-child{width:34px}.kk-spec-scroll table{min-width:620px}}

@media(max-width:1023px){.kk-purchase-buttons .kk-buy{order:2}.kk-purchase-buttons .kk-add-cart{order:1}}

/* Shared disk controls: type, capacity, limits and removal stay on one line. */
.kk-label-spacer{visibility:hidden}
.kk-disk-row{margin-top:10px}.kk-disk-row>label{padding-top:9px}
.kk-disk-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:40px}
.kk-disk-line .kk-disk-type{width:194px;flex:0 0 194px}.kk-disk-line .el-input-number{flex:0 0 160px}
.kk-disk-line .kk-disk-size-select{width:160px;flex:0 0 160px}
.kk-disk-unit,.kk-disk-range{font-size:12px;color:#999;white-space:nowrap}.kk-disk-unit{margin-left:4px}.kk-disk-range{margin-left:4px}
.kk-disk-remove{padding:0 10px;font-size:12px}
.kk-disk-add-row{margin-top:24px}.kk-disk-add-row>label{padding-top:0}
.kk-disk-add-control{display:flex;align-items:center;flex-wrap:wrap;gap:10px 40px;min-height:22px}
.kk-disk-add-control>.kk-config-action{padding:0;white-space:nowrap}.kk-disk-add-control>.kk-config-action i{font-size:18px;vertical-align:-1px;margin-right:8px}
.kk-disk-add-control>.kk-config-help{margin:0;color:#666}
@media(max-width:1023px){.kk-disk-row>.kk-label-spacer{display:none}.kk-disk-add-row>label{margin-bottom:10px}.kk-disk-add-control{gap:8px}.kk-disk-add-control>.kk-config-help{width:100%}.kk-disk-line .kk-disk-type{flex-basis:100%;width:100%}.kk-disk-line .el-input-number,.kk-disk-line .kk-disk-size-select{flex:0 0 144px;width:144px}.kk-disk-range{margin-left:0}.kk-disk-remove{padding-left:0}.kk-disk-row{margin-top:14px}}

/* Checkbox baselines and number borders are shared across all module fields. */
.kk-toggle-row{align-items:center;min-height:40px}.kk-toggle-row>label{padding-top:0}.kk-toggle-row .el-checkbox{display:inline-flex;align-items:center;min-height:40px;margin:0;font-weight:400}.kk-toggle-row .el-checkbox__label{line-height:22px;padding-left:10px}
.kk-config-protocols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;align-items:flex-start;min-height:40px;padding:9px 0}.kk-config-protocols .el-checkbox{max-width:100%;min-width:0;display:inline-flex;align-items:flex-start;min-height:22px;margin:0;white-space:normal}.kk-config-protocols .el-checkbox__label{min-width:0;line-height:22px;white-space:normal;overflow-wrap:anywhere}
.kk-config-control .el-input-number{isolation:isolate}.kk-config-control .el-input-number__increase,.kk-config-control .el-input-number__decrease{z-index:1}.kk-config-control .el-input-number .el-input{display:block}
.kk-selected-spec{display:flex;align-items:center;position:relative;gap:0}.kk-selected-spec>span{position:absolute;right:100%;width:118px;padding-right:8px;box-sizing:border-box}.kk-selected-spec strong,.kk-instance-label{display:inline-flex;align-items:center;min-width:180px;min-height:40px;padding:8px 20px;background:#2879ff;color:#fff;box-sizing:border-box;font-weight:400}
.kk-config-cards>button strong{display:flex;align-items:center;gap:8px}.kk-config-cards>button small{line-height:12px;margin-top:12px;white-space:normal;overflow-wrap:anywhere}.kk-config-cards>button{min-height:70px}.kk-config-choices>button .kk-recommend{color:#fff;font-weight:400}
.kk-gift{display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-size:12px}.kk-gift>span{display:inline-flex;align-items:center;gap:5px;background:#ffe5e5;color:#ff4448;padding:4px 10px;line-height:20px}.kk-gift i{font-size:18px}.kk-gift small{color:#999;font-size:12px}.kk-config-range{max-width:1100px;flex-wrap:wrap}.kk-config-range>.el-slider{flex:1 1 240px}.kk-config-range>span:not(.kk-gift){font-size:12px;color:#999}
.kk-config-control>.el-input .el-input__suffix{right:10px}.kk-spec-scroll td{color:#666;font-size:13px}.kk-spec-scroll th{font-size:13px}.kk-config-help{max-width:100%}
@media(max-width:1023px){.kk-toggle-row{display:flex;flex-wrap:wrap}.kk-toggle-row>label{width:100%;flex-basis:100%;margin-bottom:4px}.kk-toggle-row>.kk-config-control{flex-basis:100%;width:100%}.kk-selected-spec{gap:10px}.kk-config-range>.el-slider{flex-basis:100%}.kk-gift{gap:6px}.kk-gift>span{padding:3px 7px}.kk-config-cards>button{min-height:70px}}
@media(max-width:1023px){.kk-config-protocols{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:0}.kk-config-protocols .el-checkbox{min-height:30px}}

.sixcart-catalog:has(.kk-configuration .kk-dock-anchor) > .el-container > .el-container > .el-main{padding-bottom:0!important}

.kk-config-cards .el-icon-cpu{width:16px;height:16px;flex:none;background:currentColor;mask:url('../assets/icon_jx_active.png') center/contain no-repeat;-webkit-mask:url('../assets/icon_jx_active.png') center/contain no-repeat}.kk-config-cards .el-icon-cpu:before{content:none}
@media(max-width:1023px){.kk-selected-spec{gap:10px;flex-wrap:wrap}.kk-selected-spec>span{position:static;width:auto}.kk-config-cards>button{min-width:0;width:100%}.kk-config-cards>button small{line-height:18px}}

/* Match the reference instance table rhythm while retaining native values. */
.kk-spec-scroll th{height:48px;padding:0 18px;line-height:20px;font-size:14px}
.kk-spec-scroll td{height:60px;padding:0 18px;line-height:20px;font-size:14px}

/* r11 shared control layout: fixed ranges retain their real business limits. */
.kk-config-range .el-slider__runway,.kk-config-range .el-slider__bar{height:6px}
.kk-config-range .el-slider__button{width:16px;height:28px;border:1px solid #8eb9ff;border-radius:2px;background:repeating-linear-gradient(to bottom,transparent 0 4px,#5095ff 4px 5px,transparent 5px 7px) center/8px 19px no-repeat #edf4ff}
.kk-config-range .el-slider__button-wrapper{top:-15px}
.kk-config-range.is-fixed-range .el-slider__bar{background:#2879ff}
.kk-config-range.is-fixed-range .el-slider__button{border-color:#8eb9ff}
.kk-config-range>.el-slider{flex:1 1 300px;max-width:620px}
.kk-config-range .kk-fixed-caption{white-space:nowrap}
[data-section="网络带宽"] .kk-config-choices>button:not(.is-sold-out){min-width:180px;min-height:40px;padding:8px 20px}
.kk-config-choices{align-items:center}
.kk-traffic-gift{align-self:center}
.kk-image-groups button>span{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.kk-image-groups button.active:after{content:'✓';position:absolute;right:0;bottom:0;background:#2879ff;color:white;font-size:12px;line-height:18px;width:20px;clip-path:polygon(100% 0,100% 100%,0 100%);text-align:right;padding-right:2px}
.kk-image-picker>.el-select{width:370px}
.kk-disk-details-link{border:0;background:none;padding:0 3px;color:#2879ff;font:inherit;cursor:pointer}
.kk-disk-details{padding-left:20px;line-height:28px}
@media(max-width:1023px){
 .kk-config-row>label{width:auto;white-space:nowrap}
 .kk-config-range>.el-slider{max-width:none;flex-basis:100%}
 [data-section="网络带宽"] .kk-config-choices>button:not(.is-sold-out){min-width:130px;max-width:100%}
 .kk-image-picker>.el-select{width:100%}
 .kk-selected-spec>span{width:auto}
}

/* Override the official table row minimum through its actual selector scope. */
.kk-configuration .kk-spec-scroll thead tr{height:48px}
.kk-configuration .kk-spec-scroll thead th{height:48px;padding:0 18px}
.kk-configuration .kk-spec-scroll tbody tr{height:60px}

/* Instance selection keeps native radio semantics and a complete, fixed-size circle. */
.kk-spec-scroll tbody tr:not(.is-disabled){cursor:pointer}
.kk-spec-scroll tbody tr.active,.kk-spec-scroll tbody tr.active:hover{background:#eef5ff}
.kk-spec-scroll tbody tr.is-disabled{cursor:not-allowed}
.kk-spec-scroll td:first-child,.kk-spec-scroll th:first-child{min-width:52px;width:52px;padding-left:18px;padding-right:18px;text-align:center}
.kk-spec-scroll input[type="radio"]{appearance:none;-webkit-appearance:none;display:inline-block;vertical-align:middle;flex:none;box-sizing:border-box;width:16px;min-width:16px;height:16px;min-height:16px;margin:0;padding:0;border:1px solid #8a94a6;border-radius:50%;background:#fff;box-shadow:none;cursor:pointer}
.kk-spec-scroll input[type="radio"]:checked{border-color:#2676ff;background:radial-gradient(circle at center,#2676ff 0 4px,#fff 4.5px)}
.kk-spec-scroll input[type="radio"]:focus-visible{outline:2px solid #2676ff;outline-offset:3px}
.kk-spec-scroll input[type="radio"]:disabled{opacity:.45;cursor:not-allowed}
@media(forced-colors:active){.kk-spec-scroll input[type="radio"]{appearance:auto;-webkit-appearance:auto;forced-color-adjust:auto}}
