.ps-confirm-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.45);z-index:2147483647}.ps-confirm{background:#fff;border:1px solid #e5e7eb;border-radius:16px;width:clamp(320px,92vw,720px);max-height:92vh;overflow:auto;padding:18px;box-shadow:0 12px 26px rgba(0,0,0,.12)}.ps-confirm.ps-wide{width:min(720px,92vw)}.ps-row{display:flex;gap:8px;align-items:center;justify-content:space-between}.ps-btn{padding:10px 14px;border-radius:10px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;font-weight:700}.ps-btn.primary{border:none;background:#2154ee;color:#fff;box-shadow:0 4px 20px rgba(33,84,238,.18)}.ps-btn.ghost{background:#fff;color:#334155}.ps-btn:disabled{opacity:.5;cursor:not-allowed}.ps-chip{display:inline-block;font-size:14px;padding:8px 16px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;color:#3b4455;font-weight:500}.ps-chip.on{background:#f0f4ff;border-color:#cddaff;color:#2154ee;font-weight:500}.ps-spec-set{margin-top:10px}.ps-spec-title{font-weight:500;font-size:14px;color:#4f4f4f;margin-bottom:6px}.ps-spec-grid{display:flex;gap:6px;flex-wrap:wrap}.ps-muted{color:#64748b;font-size:13px}.po-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.45);z-index:2147483647}.po-modal{background:#fff;border:1px solid #e5e7eb;border-radius:16px;width:min(720px,92vw);max-height:92vh;overflow:auto;padding:18px;box-shadow:0 12px 26px rgba(0,0,0,.12)}.po-title{font-weight:800;font-size:18px;margin:2px 0 10px}.po-set{margin-top:10px}.po-label{font-weight:600;font-size:14px;margin-bottom:6px;color:#374151}.po-grid{display:flex;gap:6px;flex-wrap:wrap}.po-chip{display:inline-block;font-size:14px;padding:8px 14px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;color:#3b4455}.po-chip.on{background:#f0f4ff;border-color:#cddaff;color:#2154ee}.po-badge{display:inline-block;font-size:13px;padding:6px 10px;border-radius:10px;background:#f8fafc;border:1px solid #e5e7eb;color:#334155}.po-note{margin-top:6px;font-size:12px;color:#64748b}.po-empty{padding:10px 0;color:#475569}.po-row{margin-top:14px;display:flex;gap:8px;justify-content:flex-end}.po-btn{padding:10px 14px;border-radius:10px;border:1px solid #e5e7eb;background:#fff;font-weight:700}.po-btn.primary{border:none;background:#2154ee;color:#fff;box-shadow:0 4px 20px rgba(33,84,238,.18)}.po-btn.ghost{background:#fff;color:#334155}