.ip-wrap{font-family:-apple-system,Segoe UI,Roboto,sans-serif;max-width:480px;color:#333}
.ip-q{font-size:20px;font-weight:700;color:var(--ipq,#111);margin:0 0 14px}

.ip-opt{display:flex;align-items:center;gap:10px;margin:8px 0;cursor:pointer;font-size:16px;position:relative;line-height:1.4}
.ip-opt input[type=radio]{
    position:absolute; left:0; top:50%; transform:translateY(-50%);
    width:20px; height:20px; margin:0; padding:0;
    opacity:0; z-index:2; cursor:pointer;
    -webkit-appearance:none; appearance:none;
}
.ip-radio{
    width:20px; height:20px; border:2px solid #bbb; border-radius:50%;
    display:inline-block; position:relative; flex:0 0 auto;
    transition:border-color .15s ease; pointer-events:none;
}
.ip-opt:has(input[type=radio]:checked) .ip-radio{border-color:var(--ipbar,#d9261c)}
.ip-opt:has(input[type=radio]:checked) .ip-radio::after{
    content:""; position:absolute; top:3px; left:3px; right:3px; bottom:3px;
    border-radius:50%; background:var(--ipbar,#d9261c);
}
.ip-opt input[type=radio]:checked ~ .ip-radio{border-color:var(--ipbar,#d9261c)}
.ip-opt input[type=radio]:checked ~ .ip-radio::after{
    content:""; position:absolute; top:3px; left:3px; right:3px; bottom:3px;
    border-radius:50%; background:var(--ipbar,#d9261c);
}
.ip-opt input[type=radio]:focus-visible ~ .ip-radio{
    outline:2px solid var(--ipbar,#d9261c); outline-offset:2px;
}

.ip-actions{margin-top:14px;display:flex;align-items:center;gap:18px}
.ip-btn{background:var(--ipbtn,#d9261c);color:var(--ipbtnt,#fff);border:0;padding:10px 28px;border-radius:24px;font-weight:700;cursor:pointer;font-size:16px}
.ip-btn:hover{filter:brightness(.95)}
.ip-btn[disabled]{opacity:.6;cursor:not-allowed}
.ip-view,.ip-back{color:#222;text-decoration:underline;font-size:14px;cursor:pointer;background:none;border:0;padding:0;font-family:inherit}

.ip-row{margin:10px 0}
.ip-row .lbl{display:flex;justify-content:space-between;margin-bottom:4px;font-size:14px}
.ip-bar{background:var(--iptrack,#eee);border-radius:4px;overflow:hidden;height:14px}
.ip-fill{background:var(--ipbar,#d9261c);height:100%;transition:width .4s ease}
.ip-total{margin-top:10px;font-size:13px;color:#666}
.ip-msg{margin:10px 0;color:#2a7}