.px-page { min-height:calc(100vh - 112px); padding:25px 18px 22px; color:#0b1635; }
.px-page > header { height:120px; text-align:center; }
.px-page > header h1 { margin:0; font-size:42px; line-height:1.25; }
.px-page > header p { margin:12px 0 0; color:#64779c; font-size:16px; }
.px-layout { display:grid; grid-template-columns:minmax(0,1fr) 510px; gap:24px; align-items:start; }
.px-layout > main { min-width:0; }
.px-visual { position:relative; height:520px; overflow:hidden; }
.px-visual > img { width:100%; height:100%; object-fit:contain; }
.px-progress { position:absolute; left:55.6%; top:52%; width:250px; height:150px; transform:translate(-50%,-50%); display:grid; place-items:center; align-content:center; background:#fff; text-align:center; }
.px-progress strong { font-size:64px; line-height:1; }
.px-progress small { font-size:28px; }
.px-progress span { margin-top:15px; color:#344b75; font-size:14px; }
.px-steps,.px-info,.px-after,.px-recovery { border:1px solid #dfe8f7; border-radius:17px; background:#fff; }
.px-steps { min-height:330px; padding:22px 30px; }
.px-steps h2,.px-info h2,.px-after h2 { margin:0 0 20px; font-size:20px; }
.px-steps > div { position:relative; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; }
.px-steps > div::before { content:""; position:absolute; left:8%; right:8%; top:54px; border-top:2px dashed #c9d7ec; }
.px-steps article { position:relative; z-index:1; display:grid; grid-template-rows:95px 28px 24px 22px; justify-items:center; text-align:center; }
.px-steps article img { width:90px; height:90px; object-fit:contain; }
.px-steps article strong { font-size:13px; }
.px-steps article span,.px-steps article small { color:#7182a6; font-size:11px; }
.px-steps article.active span { color:#2670e9; }
.px-steps > p { margin:20px 0 0; padding:13px 18px; border-radius:20px; color:#64779c; background:#f5f8fd; font-size:12px; }
.px-layout > aside { display:grid; gap:18px; }
.px-info { min-height:470px; padding:25px 28px; }
.px-info dl { margin:0; padding:10px 0; border:1px solid #e5ecf7; border-radius:14px; }
.px-info dl > div { min-height:75px; padding:10px 24px; display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; }
.px-info dt { color:#5e7197; font-size:14px; }
.px-info dd { margin:0; display:flex; align-items:center; gap:10px; font-size:14px; font-weight:700; }
.px-info dd > img { width:54px; height:54px; border-radius:50%; object-fit:cover; }
.px-info .px-materials img { width:32px; height:32px; border-radius:6px; object-fit:contain; }
.px-info .px-materials span { color:#697b9f; font-weight:400; }
.px-after { min-height:490px; padding:25px 28px; }
.px-after > div { min-height:63px; display:grid; grid-template-columns:42px 140px minmax(0,1fr); align-items:center; gap:10px; }
.px-after > div img { width:38px; height:38px; object-fit:contain; }
.px-after > div strong { font-size:14px; }
.px-after > div span { color:#7182a6; font-size:11px; }
.px-after footer { display:grid; grid-template-columns:1fr 1.2fr; gap:16px; margin-top:25px; }
.px-after footer button,.px-recovery button { height:52px; border:1px solid #cddcf5; border-radius:9px; color:#2b3e65; background:#fff; font-weight:750; }
.px-after footer .primary { color:#fff; border-color:#2868f5; background:#2868f5; }
.px-recovery { padding:18px; }
.px-recovery strong { font-size:14px; }
.px-recovery p { color:#687b9f; font-size:12px; }
.px-recovery button { width:100%; }
@media (max-width:1500px) {
  .px-page { padding:16px 10px; }
  .px-page > header { height:96px; }
  .px-page > header h1 { font-size:34px; }
  .px-layout { grid-template-columns:minmax(0,1fr) 410px; gap:12px; }
  .px-visual { height:430px; }
  .px-progress { left:55.6%; width:210px; height:125px; }
  .px-progress strong { font-size:52px; }
  .px-steps { padding-inline:18px; }
  .px-steps > div { gap:12px; }
  .px-info,.px-after { padding:18px; }
  .px-info dl > div { grid-template-columns:120px minmax(0,1fr); padding-inline:15px; }
}
.px-recovery-actions { display:grid; gap:8px; margin-top:12px; }
.px-recovery-actions button { min-height:38px; border:1px solid #d9e5f6; border-radius:8px; color:#2458a6; background:#fff; font-weight:700; }
.px-recovery-actions button:first-child { border-color:#2f6cf4; color:#fff; background:#2f6cf4; }
