:root { --spike-physical-bg:#e9f1fb; --spike-physical-card:#fff; --spike-physical-text:#202631; --spike-physical-muted:#727c8d; --spike-physical-border:#e0e5ed; --spike-physical-primary:#3169dc; --spike-physical-soft:#edf2fb; --spike-physical-price:#dc533b; }
.spike-physical-page { min-height:100vh; padding-top:65px; color:var(--spike-physical-text); background:var(--spike-physical-bg); font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
.spike-physical-shell { width:100%; max-width:1152px; margin:0 auto; padding:39px 24px 126px; }
.spike-physical-breadcrumb { display:flex; align-items:center; gap:8px; margin:0; color:var(--spike-physical-muted); font-size:12px; line-height:18px; }
.spike-physical-breadcrumb a { color:inherit; }
.spike-physical-shell h1 { margin:3px 0 0; font-size:30px; line-height:38px; letter-spacing:0; }
.spike-physical-lead { margin:3px 0 0; color:var(--spike-physical-muted); font-size:14px; line-height:22px; }
.spike-physical-state { margin:12px 0 0; color:var(--spike-physical-muted); font-size:13px; line-height:20px; }
.spike-physical-state.is-error { color:#c24132; }
.spike-physical-card { margin-top:26px; padding:24px; border:1px solid var(--spike-physical-border); border-radius:20px; background:var(--spike-physical-card); box-shadow:0 2px 5px rgba(45,64,96,.1),0 1px 2px rgba(45,64,96,.05); }
.spike-card-heading { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.spike-card-heading > span { width:4px; height:16px; border-radius:4px; background:var(--spike-physical-primary); }
.spike-card-heading h2 { margin:0; font-size:16px; line-height:24px; }
.spike-physical-row { display:grid; grid-template-columns:112px minmax(0,1fr); gap:24px; align-items:start; padding:16px 0; }
.spike-physical-label { display:flex; align-items:center; gap:10px; min-height:40px; font-size:14px; }
.spike-icon { width:18px; height:18px; flex:0 0 18px; display:inline-block; background:center/contain no-repeat; opacity:.72; }
.spike-icon-cpu { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23687181' stroke-width='1.8'%3E%3Crect x='6' y='6' width='12' height='12' rx='2'/%3E%3Cpath d='M9 1v3m6-3v3M9 20v3m6-3v3M20 9h3m-3 5h3M1 9h3m-3 5h3'/%3E%3Crect x='9' y='9' width='6' height='6'/%3E%3C/svg%3E"); }
.spike-icon-image { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23687181' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M12 3a9 9 0 0 0-9 9m9 9a9 9 0 0 0 9-9'/%3E%3C/svg%3E"); }
.spike-icon-speed { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23687181' stroke-width='1.8'%3E%3Cpath d='M20.4 15a9 9 0 1 0-16.8 0M12 12l4-4M6.7 17h10.6'/%3E%3C/svg%3E"); }
.spike-icon-network { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23687181' stroke-width='1.8'%3E%3Crect x='9' y='2' width='6' height='6' rx='1'/%3E%3Crect x='3' y='16' width='6' height='6' rx='1'/%3E%3Crect x='15' y='16' width='6' height='6' rx='1'/%3E%3Cpath d='M12 8v4m-6 4v-2h12v2'/%3E%3C/svg%3E"); }
.spike-icon-shield { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23687181' stroke-width='1.8'%3E%3Cpath d='M12 3 19 6v5.5c0 4.25-2.7 7.75-7 9.5-4.3-1.75-7-5.25-7-9.5V6l7-3Z'/%3E%3Cpath d='m8.5 12 2.2 2.2 4.8-5'/%3E%3C/svg%3E"); }
.spike-physical-control { min-width:0; }
.spike-filter-row { display:flex; flex-wrap:wrap; gap:12px; }
.spike-filter-row select,.spike-version-field select,.spike-summary-field select { width:230px; height:44px; padding:0 38px 0 16px; appearance:none; border:1px solid var(--spike-physical-border); border-radius:12px; color:var(--spike-physical-text); background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23727c8d' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center/14px no-repeat; font:inherit; font-size:14px; }
.spike-package-table-wrap { margin-top:16px; overflow:hidden; border:1px solid var(--spike-physical-border); border-radius:16px; }
.spike-package-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:14px; }
.spike-package-table th { height:42px; padding:0 16px; color:#737d8f; background:#f6f8fc; font-size:12px; font-weight:500; text-align:left; }
.spike-package-table th:nth-child(1) { width:38%; }.spike-package-table th:nth-child(2) { width:10%; }.spike-package-table th:nth-child(3) { width:11%; }.spike-package-table th:nth-child(4) { width:18%; }.spike-package-table th:nth-child(5) { width:11%; }.spike-package-table th:nth-child(6) { width:12%; text-align:right; }
.spike-package-table td { height:51px; padding:0 16px; border-top:1px solid var(--spike-physical-border); color:#707989; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.spike-package-table td:last-child { overflow:visible; text-overflow:clip; }
.spike-package-table td:first-child { color:var(--spike-physical-text); font-weight:500; }
.spike-package-table td:last-child { text-align:right; }.spike-package-table tr { cursor:pointer; transition:background .16s ease; }.spike-package-table tr:hover { background:#f8faff; }.spike-package-table tr.active { background:#edf3ff; }
.spike-radio { display:inline-flex; width:17px; height:17px; margin-right:10px; vertical-align:-3px; align-items:center; justify-content:center; border:1px solid #cbd1dc; border-radius:50%; }.spike-radio.active { border:5px solid var(--spike-physical-primary); }
.spike-price { color:var(--spike-physical-price) !important; font-weight:700; }
.spike-package-load-state { margin:0; padding:11px 16px 12px; border-top:1px solid var(--spike-physical-border); color:var(--spike-physical-muted); background:#fbfcff; font-size:12px; line-height:18px; text-align:center; }
.spike-package-load-state.is-complete { color:#8a93a2; }
.spike-package-mobile-list { display:none; }
.spike-package-mobile-item { display:block; width:100%; padding:14px; border:1px solid var(--spike-physical-border); border-radius:13px; color:var(--spike-physical-text); background:#fff; font:inherit; text-align:left; cursor:pointer; }.spike-package-mobile-item + .spike-package-mobile-item { margin-top:8px; }.spike-package-mobile-item.active { border-color:var(--spike-physical-primary); background:#edf3ff; }.spike-package-mobile-title { display:flex; min-width:0; align-items:center; gap:8px; }.spike-package-mobile-title strong { min-width:0; overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }.spike-package-mobile-title b { margin-left:auto; color:var(--spike-physical-price); font-size:13px; white-space:nowrap; }.spike-package-mobile-specs { display:block; margin-top:8px; padding-left:27px; color:var(--spike-physical-muted); font-size:12px; }.spike-package-mobile-empty { margin:0; padding:24px 12px; color:var(--spike-physical-muted); font-size:13px; text-align:center; }
.spike-physical-divider { height:1px; margin:0; background:var(--spike-physical-border); }
.spike-image-row { padding-bottom:18px; }.spike-os-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.spike-os-option { display:flex; min-width:0; height:54px; align-items:center; gap:10px; padding:0 14px; border:1px solid transparent; border-radius:14px; color:var(--spike-physical-text); background:#eaf0f9; font:inherit; font-size:14px; font-weight:600; text-align:left; cursor:pointer; }.spike-os-option img { width:24px; height:24px; object-fit:contain; }.spike-os-option.active { border-color:var(--spike-physical-primary); background:#f1f6ff; box-shadow:0 0 0 2px rgba(49,105,220,.16); }.spike-version-field { display:flex; flex-direction:column; gap:7px; max-width:468px; margin-top:12px; color:#737d8f; font-size:12px; }.spike-version-field select { width:100%; }
.spike-os-empty { margin:0; color:var(--spike-physical-muted); font-size:13px; line-height:22px; }
.spike-network-card { padding-bottom:8px; }.spike-network-card .spike-card-heading { margin-bottom:0; }.spike-network-card .spike-physical-row { padding:13px 0; border-top:1px solid var(--spike-physical-border); align-items:center; }.spike-stepper-wrap { display:flex; width:178px; height:40px; align-items:center; gap:8px; }.spike-stepper-wrap > span { display:inline-flex; width:40px; height:20px; align-items:center; color:#737d8f; font-size:14px; }.spike-stepper-field,.spike-qty-stepper { display:flex; width:max-content; height:40px; align-items:center; overflow:hidden; border:1px solid var(--spike-physical-border); border-radius:12px; background:#fff; }.spike-stepper-field { width:130px; }.spike-stepper-field button,.spike-qty-stepper button { width:36px; height:100%; border:0; color:#687181; background:#edf1f9; font-size:21px; cursor:pointer; }.spike-stepper-field output,.spike-qty-stepper output { display:inline-flex; width:56px; height:100%; align-items:center; justify-content:center; font-size:14px; font-weight:600; }.spike-qty-stepper { width:136px; }.spike-qty-stepper button { width:40px; }.spike-stepper-field button:first-child,.spike-stepper-field button:last-child { flex:0 0 36px; }.spike-stepper-field output { flex:0 0 56px; }
.spike-physical-summary { position:sticky; bottom:16px; z-index:30; display:flex; min-height:84px; align-items:center; gap:28px; margin-top:24px; padding:16px 24px; border:1px solid var(--spike-physical-border); border-radius:20px; background:rgba(255,255,255,.96); box-shadow:0 8px 24px rgba(32,52,88,.14); backdrop-filter:blur(12px); }
.spike-summary-field { display:flex; align-items:center; gap:12px; color:#737d8f; font-size:14px; white-space:nowrap; }.spike-summary-field select { width:136px; height:42px; }.spike-qty-stepper { width:136px; }.spike-qty-stepper output { width:56px; }.spike-summary-config { min-width:0; flex:1; margin:0; overflow:hidden; color:#737d8f; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.spike-summary-total { min-width:138px; text-align:right; }.spike-summary-total span { display:block; color:#737d8f; font-size:12px; white-space:nowrap; }.spike-summary-total strong { display:block; color:var(--spike-physical-price); font-size:26px; line-height:31px; }.spike-summary-total small { font-size:14px; }.spike-summary-actions { display:flex; gap:12px; }.spike-summary-actions button { display:inline-flex; height:44px; align-items:center; justify-content:center; gap:7px; padding:0 20px; border-radius:14px; font:inherit; font-size:14px; font-weight:600; white-space:nowrap; cursor:pointer; }.spike-summary-actions svg { width:17px; height:17px; flex:0 0 17px; }.spike-outline-button { border:1px solid rgba(49,105,220,.35); color:var(--spike-physical-primary); background:#fff; }.spike-primary-button { min-width:134px; border:1px solid var(--spike-physical-primary); color:#fff; background:var(--spike-physical-primary); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:900px) { .spike-physical-summary { flex-wrap:wrap; gap:12px 20px; }.spike-summary-config { order:3; flex-basis:100%; }.spike-summary-total { margin-left:auto; }.spike-summary-actions { margin-left:auto; } }
@media (max-width:639px) { .spike-physical-shell { padding:30px 16px 112px; }.spike-physical-shell h1 { font-size:26px; }.spike-physical-card { margin-top:20px; padding:18px 16px; border-radius:16px; }.spike-physical-row { grid-template-columns:1fr; gap:10px; padding:14px 0; }.spike-physical-label { min-height:22px; }.spike-filter-row select { width:100%; }.spike-package-table-wrap { overflow-x:auto; }.spike-package-table { min-width:760px; }.spike-os-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.spike-physical-summary { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:14px; border-radius:16px; }.spike-summary-field { justify-content:space-between; }.spike-summary-field select,.spike-qty-stepper { width:100%; }.spike-summary-config { display:none; }.spike-summary-total { grid-column:1 / -1; text-align:left; }.spike-summary-total strong { font-size:24px; }.spike-summary-actions { grid-column:1 / -1; display:grid; grid-template-columns:1fr 1fr; margin:0; }.spike-summary-actions button { width:100%; padding:0 8px; }.spike-primary-button { min-width:0; } }
